Skip to content

createWallet

createWallet function embedded wallet को initialize करता है और web page को web3 providers expose करता है।

उदाहरण

ts
import { createWallet } from '@money-sdk/core'

const wallet = createWallet({
  appId: '<YOUR_APP_ID>',
  providers: {
    bitcoin: true,
    ethereum: true,
    solana: true,
  },
})

const ethereumProvider = await wallet.getProvider('ethereum')

ethereumProvider.request(/* ... */)

Reference

appId

आपके application का पहचानकर्ता। यह आपके integration को अपनी settings रखने देता है — allowed parent origins, feature flags, और per-dApp analytics scope।

INFO

यह केवल production के लिए आवश्यक है। Registration के लिए App ID guide देखें। आप इसे local development के दौरान छोड़ सकते हैं; wallet एक localhost-only allow-list के साथ load होगा।

walletUrl

Drop wallet iframe का origin। Default https://dropwallet.app है।

इसे केवल एक preview deployment या local wallet instance की ओर इंगित करने के लिए override करें — production dApps को हमेशा default छोड़ देना चाहिए।

signerUrl

Passkey flows के लिए उपयोग किए जाने वाले Drop signer popup का origin। यह canonical signer पर default होता है। वही rules walletUrl के समान लागू होते हैं।

providers

Web3 providers की list जिन्हें आप अपने dApp को expose करना चाहते हैं, उनके वैकल्पिक configuration के साथ।

Ethereum और EVM-compatible chains

Default रूप से, एक EIP-1193 provider return किया जाता है।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    ethereum: true,
  },
})

const ethereumProvider = await wallet.getProvider('ethereum')

ethereumProvider.request(/* ... */)

इसके अतिरिक्त, provider को EIP-6963 के अनुसार web page को घोषित किया जाता है। यदि आप इस व्यवहार को disable करना चाहते हैं, तो eip6963 option pass करें।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    ethereum: {
      eip6963: false,
    },
  },
})

यदि आपका dApp provider को window.ethereum पर उपलब्ध होने की अपेक्षा करता है, तो आप dangerouslyInjectWindow option pass करके इसे वहाँ भी inject कर सकते हैं।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    ethereum: {
      dangerouslyInjectWindow: true,
    },
  },
})

window.ethereum.request(/* ... */)

Solana

Default रूप से, एक Phantom-like provider return किया जाता है।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    solana: true,
  },
})

const solanaProvider = await wallet.getProvider('solana')

solanaProvider.connect()

इसके अतिरिक्त, provider को Wallet Standard के अनुसार web page को घोषित किया जाता है। यदि आप इस व्यवहार को disable करना चाहते हैं, तो walletStandard option pass करें।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    solana: {
      walletStandard: false,
    },
  },
})

यदि आपका dApp provider को window.solana पर उपलब्ध होने की अपेक्षा करता है, तो आप dangerouslyInjectWindow option pass करके इसे वहाँ भी inject कर सकते हैं।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    solana: {
      dangerouslyInjectWindow: true,
    },
  },
})

window.solana.connect()

Bitcoin

Default रूप से, एक Sats Connect v1 provider return किया जाता है।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    bitcoin: true,
  },
})

const bitcoinProvider = await wallet.getProvider('bitcoin')

bitcoinProvider.connect(/* ... */)

इसके अतिरिक्त, provider को Wallet Standard के अनुसार web page को घोषित किया जाता है। यदि आप इस व्यवहार को disable करना चाहते हैं, तो walletStandard option pass करें।

उदाहरण
ts
const wallet = createWallet({
  providers: {
    bitcoin: {
      walletStandard: false,
    },
  },
})

Universal

Drop एक universal provider के साथ आता है जो आपको एक multi-chain dApp के लिए एकल connect flow उपयोग करने देता है। Provider के साथ Wallet Standard के माध्यम से interact करने की सिफारिश की जाती है। Universal provider स्वयं को Drop Universal नाम से register करता है।

उदाहरण
ts
import { createWallet } from '@money-sdk/core'

const wallet = createWallet({
  providers: {
    ethereum: true,
    solana: true,
    universal: true,
  },
})
tsx
import { useWallets, useConnect } from '@wallet-standard/react'
import { useMemo } from 'react'

const wallets = useWallets()
const universalWallet = useMemo(
  () => wallets.find(({ name }) => name === 'Drop Universal'),
  [wallets],
)

const [connecting, connect] = useConnect(universalWallet)

/** Connect Ethereum and Solana at the same time. */
const accounts = connect()

एक बार universal provider connected हो जाने पर, आप अन्य providers का उपयोग वैसे ही कर सकते हैं जैसे आप अभ्यस्त हैं।

INFO

Universal provider केवल उन्हीं providers से connect होगा जो config में भी enabled हैं।

इसके अतिरिक्त, provider wallet instance से accessible है।

उदाहरण
ts
import { createWallet } from '@money-sdk/core'

const wallet = createWallet({
  providers: {
    bitcoin: true,
    ethereum: true,
    solana: true,
    universal: true,
  },
})

const provider = await wallet.getProvider('universal')

/** Connect Bitcoin, Ethereum and Solana at the same time. */
const accounts = provider.connect()

Return value

createWallet निम्नलिखित methods के साथ एक Wallet instance return करता है:

getProvider(chain)

दी गई chain ('bitcoin', 'ethereum', 'solana', या 'universal') के लिए web3 provider पर resolve होने वाला एक promise return करता है। यदि provider providers config में enabled नहीं था तो null पर resolve होता है।

renderWidget(element)

Wallet iframe को एक विशिष्ट DOM element से जोड़ता है ताकि user को wallet UI दिखाई दे। Iframe को वापस document.body से detach करने के लिए null pass करें। React bindings इसे आपके लिए <WalletWidget> के माध्यम से handle करते हैं।

setWidgetConfig(config)

Embedded wallet को एक widget configuration (theme, size, shape, compact) forward करता है। React bindings इसे आपके लिए <WalletWidget> के माध्यम से handle करते हैं।

disconnect()

Iframe को एक wallet:disconnect message forward करता है। उपयोगी है यदि आप user को in-widget disconnect button पर click करने की प्रतीक्षा किए बिना programmatically log out करना चाहते हैं।