createWallet
Fungsi createWallet menginisialisasi embedded wallet dan mengekspos web3 provider ke halaman web.
Contoh
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(/* ... */)Referensi
appId
Pengidentifikasi aplikasi Anda. Ini memungkinkan integrasi Anda memiliki pengaturan sendiri — origin parent yang diizinkan, feature flag, dan cakupan analitik per-dApp.
INFO
Ini hanya wajib untuk production. Lihat panduan App ID untuk registrasi. Anda dapat mengabaikannya selama pengembangan lokal; wallet akan dimuat dengan allow-list khusus localhost.
walletUrl
Origin dari iframe Drop wallet. Default-nya https://dropwallet.app.
Hanya override ini untuk mengarahkan ke deployment preview atau instance wallet lokal — dApp production harus selalu membiarkan default.
signerUrl
Origin dari popup Drop signer yang digunakan untuk alur passkey. Default-nya mengarah ke signer kanonikal. Aturan yang sama dengan walletUrl berlaku.
providers
Daftar web3 provider yang ingin Anda ekspos ke dApp Anda, beserta konfigurasi opsionalnya.
Ethereum & chain yang kompatibel dengan EVM
Secara default, sebuah provider EIP-1193 dikembalikan.
Contoh
const wallet = createWallet({
providers: {
ethereum: true,
},
})
const ethereumProvider = await wallet.getProvider('ethereum')
ethereumProvider.request(/* ... */)Selain itu, provider diumumkan ke halaman web mengikuti EIP-6963. Jika Anda ingin menonaktifkan perilaku ini, oper opsi eip6963.
Contoh
const wallet = createWallet({
providers: {
ethereum: {
eip6963: false,
},
},
})Jika dApp Anda berharap provider tersedia di window.ethereum, Anda juga dapat menyuntikkannya di sana dengan mengoper opsi dangerouslyInjectWindow.
Contoh
const wallet = createWallet({
providers: {
ethereum: {
dangerouslyInjectWindow: true,
},
},
})
window.ethereum.request(/* ... */)Solana
Secara default, sebuah provider mirip Phantom dikembalikan.
Contoh
const wallet = createWallet({
providers: {
solana: true,
},
})
const solanaProvider = await wallet.getProvider('solana')
solanaProvider.connect()Selain itu, provider diumumkan ke halaman web mengikuti Wallet Standard. Jika Anda ingin menonaktifkan perilaku ini, oper opsi walletStandard.
Contoh
const wallet = createWallet({
providers: {
solana: {
walletStandard: false,
},
},
})Jika dApp Anda berharap provider tersedia di window.solana, Anda juga dapat menyuntikkannya di sana dengan mengoper opsi dangerouslyInjectWindow.
Contoh
const wallet = createWallet({
providers: {
solana: {
dangerouslyInjectWindow: true,
},
},
})
window.solana.connect()Bitcoin
Secara default, sebuah provider Sats Connect v1 dikembalikan.
Contoh
const wallet = createWallet({
providers: {
bitcoin: true,
},
})
const bitcoinProvider = await wallet.getProvider('bitcoin')
bitcoinProvider.connect(/* ... */)Selain itu, provider diumumkan ke halaman web mengikuti Wallet Standard. Jika Anda ingin menonaktifkan perilaku ini, oper opsi walletStandard.
Contoh
const wallet = createWallet({
providers: {
bitcoin: {
walletStandard: false,
},
},
})Universal
Drop menyertakan provider universal yang memungkinkan Anda menggunakan satu alur connect untuk dApp multi-chain. Disarankan untuk berinteraksi dengan provider ini melalui Wallet Standard. Provider universal mendaftarkan dirinya dengan nama Drop Universal.
Contoh
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()Setelah provider universal terhubung, Anda dapat menggunakan provider lainnya seperti biasa.
INFO
Provider universal hanya akan menghubungkan provider lain yang juga diaktifkan di config.
Selain itu, provider juga dapat diakses dari instance wallet.
Contoh
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()Nilai kembalian
createWallet mengembalikan sebuah instance Wallet dengan method berikut:
getProvider(chain)
Mengembalikan promise yang resolve ke web3 provider untuk chain yang diberikan ('bitcoin', 'ethereum', 'solana', atau 'universal'). Resolve ke null jika provider tidak diaktifkan di config providers.
renderWidget(element)
Meng-attach iframe wallet ke elemen DOM tertentu sehingga pengguna melihat UI wallet. Oper null untuk meng-attach kembali iframe ke document.body. Binding React menangani ini untuk Anda melalui <WalletWidget>.
setWidgetConfig(config)
Meneruskan konfigurasi widget (theme, size, shape, compact) ke embedded wallet. Binding React menangani ini untuk Anda melalui <WalletWidget>.
disconnect()
Meneruskan pesan wallet:disconnect ke iframe. Berguna jika Anda ingin secara programatis membuat pengguna logout tanpa menunggu mereka mengklik tombol disconnect di dalam widget.