createWallet
A função createWallet inicializa a carteira embutida e expõe os providers web3 à página web.
Exemplo
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(/* ... */)Referência
appId
Identificador da sua aplicação. Ele permite que sua integração tenha suas próprias configurações — origens pai permitidas, feature flags e escopo de analytics por dApp.
INFO
Isso só é obrigatório para produção. Consulte o guia do App ID para o registro. Você pode omiti-lo durante o desenvolvimento local; a carteira será carregada com uma lista de permissões restrita a localhost.
walletUrl
Origem do iframe da carteira Drop. O padrão é https://dropwallet.app.
Só sobrescreva isso para apontar para um deployment de preview ou uma instância local da carteira — dApps em produção sempre devem manter o padrão.
signerUrl
Origem do popup do signer Drop usado para fluxos de passkey. O padrão é o signer canônico. As mesmas regras de walletUrl se aplicam.
providers
Lista dos providers web3 que você deseja expor ao seu dApp, com sua configuração opcional.
Ethereum e redes compatíveis com EVM
Por padrão, um provider EIP-1193 é retornado.
Exemplo
const wallet = createWallet({
providers: {
ethereum: true,
},
})
const ethereumProvider = await wallet.getProvider('ethereum')
ethereumProvider.request(/* ... */)Além disso, o provider é anunciado à página web seguindo o EIP-6963. Se quiser desativar esse comportamento, passe a opção eip6963.
Exemplo
const wallet = createWallet({
providers: {
ethereum: {
eip6963: false,
},
},
})Se seu dApp espera que o provider esteja disponível em window.ethereum, você também pode injetá-lo ali passando a opção dangerouslyInjectWindow.
Exemplo
const wallet = createWallet({
providers: {
ethereum: {
dangerouslyInjectWindow: true,
},
},
})
window.ethereum.request(/* ... */)Solana
Por padrão, um provider no estilo Phantom é retornado.
Exemplo
const wallet = createWallet({
providers: {
solana: true,
},
})
const solanaProvider = await wallet.getProvider('solana')
solanaProvider.connect()Além disso, o provider é anunciado à página web seguindo o Wallet Standard. Se quiser desativar esse comportamento, passe a opção walletStandard.
Exemplo
const wallet = createWallet({
providers: {
solana: {
walletStandard: false,
},
},
})Se seu dApp espera que o provider esteja disponível em window.solana, você também pode injetá-lo ali passando a opção dangerouslyInjectWindow.
Exemplo
const wallet = createWallet({
providers: {
solana: {
dangerouslyInjectWindow: true,
},
},
})
window.solana.connect()Bitcoin
Por padrão, um provider Sats Connect v1 é retornado.
Exemplo
const wallet = createWallet({
providers: {
bitcoin: true,
},
})
const bitcoinProvider = await wallet.getProvider('bitcoin')
bitcoinProvider.connect(/* ... */)Além disso, o provider é anunciado à página web seguindo o Wallet Standard. Se quiser desativar esse comportamento, passe a opção walletStandard.
Exemplo
const wallet = createWallet({
providers: {
bitcoin: {
walletStandard: false,
},
},
})Universal
O Drop vem com um provider universal que permite usar um único fluxo de conexão para um dApp multi-rede. É recomendado interagir com o provider via Wallet Standard. O provider universal se registra com o nome Drop Universal.
Exemplo
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()Uma vez que o provider universal esteja conectado, você pode usar os demais providers como de costume.
INFO
O provider universal só conectará outros providers que também estejam habilitados na configuração.
Além disso, o provider fica acessível a partir da instância da carteira.
Exemplo
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()Valor de retorno
createWallet retorna uma instância Wallet com os seguintes métodos:
getProvider(chain)
Retorna uma promise que resolve para o provider web3 da rede informada ('bitcoin', 'ethereum', 'solana' ou 'universal'). Resolve para null se o provider não foi habilitado na configuração providers.
renderWidget(element)
Anexa o iframe da carteira a um elemento DOM específico para que o usuário veja a UI da carteira. Passe null para desanexar o iframe de volta para o document.body. Os bindings React cuidam disso para você via <WalletWidget>.
setWidgetConfig(config)
Encaminha uma configuração de widget (tema, tamanho, formato, compact) para a carteira embutida. Os bindings React cuidam disso para você via <WalletWidget>.
disconnect()
Encaminha uma mensagem wallet:disconnect para o iframe. Útil se você quiser desconectar o usuário de forma programática sem esperar que ele clique no botão de desconectar dentro do widget.