createWallet
La fonction createWallet initialise le portefeuille intégré et expose les providers web3 à la page web.
Exemple
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(/* ... */)Référence
appId
Identifiant de votre application. Cela permet à votre intégration d'avoir ses propres paramètres — origines parentes autorisées, feature flags et portée analytique par dApp.
INFO
Requis uniquement en production. Consultez le guide App ID pour l'enregistrement. Vous pouvez l'omettre pendant le développement local ; le portefeuille se chargera avec une liste d'autorisation limitée à localhost.
walletUrl
Origine de l'iframe du portefeuille Drop. Par défaut https://dropwallet.app.
Ne surchargez cette valeur que pour pointer vers un déploiement de prévisualisation ou une instance de portefeuille locale — les dApps en production devraient toujours laisser la valeur par défaut.
signerUrl
Origine du popup de signature Drop utilisé pour les flux de passkey. Par défaut, le signer canonique. Les mêmes règles que walletUrl s'appliquent.
providers
Liste des providers web3 que vous souhaitez exposer à votre dApp, avec leur configuration optionnelle.
Ethereum et chaînes compatibles EVM
Par défaut, un provider EIP-1193 est renvoyé.
Exemple
const wallet = createWallet({
providers: {
ethereum: true,
},
})
const ethereumProvider = await wallet.getProvider('ethereum')
ethereumProvider.request(/* ... */)De plus, le provider est annoncé à la page web conformément à EIP-6963. Pour désactiver ce comportement, passez l'option eip6963.
Exemple
const wallet = createWallet({
providers: {
ethereum: {
eip6963: false,
},
},
})Si votre dApp s'attend à ce que le provider soit disponible sur window.ethereum, vous pouvez aussi l'y injecter en passant l'option dangerouslyInjectWindow.
Exemple
const wallet = createWallet({
providers: {
ethereum: {
dangerouslyInjectWindow: true,
},
},
})
window.ethereum.request(/* ... */)Solana
Par défaut, un provider de type Phantom est renvoyé.
Exemple
const wallet = createWallet({
providers: {
solana: true,
},
})
const solanaProvider = await wallet.getProvider('solana')
solanaProvider.connect()De plus, le provider est annoncé à la page web conformément au Wallet Standard. Pour désactiver ce comportement, passez l'option walletStandard.
Exemple
const wallet = createWallet({
providers: {
solana: {
walletStandard: false,
},
},
})Si votre dApp s'attend à ce que le provider soit disponible sur window.solana, vous pouvez aussi l'y injecter en passant l'option dangerouslyInjectWindow.
Exemple
const wallet = createWallet({
providers: {
solana: {
dangerouslyInjectWindow: true,
},
},
})
window.solana.connect()Bitcoin
Par défaut, un provider Sats Connect v1 est renvoyé.
Exemple
const wallet = createWallet({
providers: {
bitcoin: true,
},
})
const bitcoinProvider = await wallet.getProvider('bitcoin')
bitcoinProvider.connect(/* ... */)De plus, le provider est annoncé à la page web conformément au Wallet Standard. Pour désactiver ce comportement, passez l'option walletStandard.
Exemple
const wallet = createWallet({
providers: {
bitcoin: {
walletStandard: false,
},
},
})Universal
Drop est livré avec un provider universel qui vous permet d'utiliser un seul flux de connexion pour une dApp multi-chaînes. Il est recommandé d'interagir avec ce provider via le Wallet Standard. Le provider universel s'enregistre sous le nom Drop Universal.
Exemple
import { createWallet } from '@money-sdk/core'
const wallet = createWallet({
providers: {
ethereum: true,
solana: true,
universal: true,
},
})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()Une fois le provider universel connecté, vous pouvez utiliser les autres providers comme vous en avez l'habitude.
INFO
Le provider universel ne connectera que les autres providers qui sont également activés dans la configuration.
De plus, le provider est accessible depuis l'instance du portefeuille.
Exemple
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()Valeur de retour
createWallet retourne une instance Wallet avec les méthodes suivantes :
getProvider(chain)
Renvoie une promesse qui se résout avec le provider web3 pour la chaîne donnée ('bitcoin', 'ethereum', 'solana' ou 'universal'). Se résout à null si le provider n'a pas été activé dans la configuration providers.
renderWidget(element)
Attache l'iframe du portefeuille à un élément DOM spécifique afin que l'utilisateur voie l'UI du portefeuille. Passez null pour détacher l'iframe et le réattacher à document.body. Les bindings React s'en chargent pour vous via <WalletWidget>.
setWidgetConfig(config)
Transmet une configuration du widget (theme, size, shape, compact) au portefeuille intégré. Les bindings React s'en chargent pour vous via <WalletWidget>.
disconnect()
Transmet un message wallet:disconnect à l'iframe. Utile si vous souhaitez déconnecter l'utilisateur par programmation sans attendre qu'il clique sur le bouton de déconnexion dans le widget.