createWallet
createWallet 関数は、埋め込みウォレットを初期化し、web3 プロバイダを Web ページに公開します。
例
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(/* ... */)リファレンス
appId
あなたのアプリケーションの識別子です。これにより、統合ごとに独自の設定 — 許可される親オリジン、機能フラグ、dApp ごとの分析スコープ — を持つことが できます。
INFO
これは本番環境でのみ必須です。登録については App ID ガイド を 参照してください。ローカル開発中は省略できます。ウォレットは localhost のみを 許可するリストで読み込まれます。
walletUrl
Drop ウォレット iframe のオリジンです。デフォルトは https://dropwallet.app です。
プレビューデプロイメントやローカルのウォレットインスタンスを指すためだけに これをオーバーライドしてください — 本番の dApp は常にデフォルトのままにして ください。
signerUrl
passkey フローに使用される Drop 署名者ポップアップのオリジンです。デフォルトは 正規の署名者です。walletUrl と同じルールが適用されます。
providers
dApp に公開したい web3 プロバイダのリストと、その任意の設定です。
Ethereum および EVM 互換チェーン
デフォルトでは、EIP-1193 プロバイダが 返されます。
例
const wallet = createWallet({
providers: {
ethereum: true,
},
})
const ethereumProvider = await wallet.getProvider('ethereum')
ethereumProvider.request(/* ... */)さらに、プロバイダは EIP-6963 に 従って Web ページにアナウンスされます。この動作を無効にするには、eip6963 オプションを渡します。
例
const wallet = createWallet({
providers: {
ethereum: {
eip6963: false,
},
},
})dApp がプロバイダが window.ethereum で利用可能であることを前提としている 場合、dangerouslyInjectWindow オプションを渡すことでそこに注入することも できます。
例
const wallet = createWallet({
providers: {
ethereum: {
dangerouslyInjectWindow: true,
},
},
})
window.ethereum.request(/* ... */)Solana
デフォルトでは、Phantom に似た プロバイダが返されます。
例
const wallet = createWallet({
providers: {
solana: true,
},
})
const solanaProvider = await wallet.getProvider('solana')
solanaProvider.connect()さらに、プロバイダは Wallet Standard に 従って Web ページにアナウンスされます。この動作を無効にするには、 walletStandard オプションを渡します。
例
const wallet = createWallet({
providers: {
solana: {
walletStandard: false,
},
},
})dApp がプロバイダが window.solana で利用可能であることを前提としている 場合、dangerouslyInjectWindow オプションを渡すことでそこに注入することも できます。
例
const wallet = createWallet({
providers: {
solana: {
dangerouslyInjectWindow: true,
},
},
})
window.solana.connect()Bitcoin
デフォルトでは、 Sats Connect v1 プロバイダが返されます。
例
const wallet = createWallet({
providers: {
bitcoin: true,
},
})
const bitcoinProvider = await wallet.getProvider('bitcoin')
bitcoinProvider.connect(/* ... */)さらに、プロバイダは Wallet Standard に 従って Web ページにアナウンスされます。この動作を無効にするには、 walletStandard オプションを渡します。
例
const wallet = createWallet({
providers: {
bitcoin: {
walletStandard: false,
},
},
})Universal
Drop には、マルチチェーン dApp で単一の接続フローを使えるユニバーサル プロバイダが付属しています。このプロバイダとのやり取りは Wallet Standard 経由で 行うことを推奨します。ユニバーサルプロバイダは Drop Universal という名前で 自身を登録します。
例
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()ユニバーサルプロバイダが接続されると、他のプロバイダをいつも通り使用でき ます。
INFO
ユニバーサルプロバイダは、config で有効にされている他のプロバイダのみを 接続します。
さらに、プロバイダはウォレットインスタンスからアクセスできます。
例
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()戻り値
createWallet は、次のメソッドを持つ Wallet インスタンスを返します。
getProvider(chain)
指定されたチェーン('bitcoin'、'ethereum'、'solana'、または 'universal')の web3 プロバイダに解決する promise を返します。プロバイダが providers config で有効になっていなかった場合は null に解決します。
renderWidget(element)
ウォレット iframe を特定の DOM 要素にアタッチして、ユーザーがウォレット UI を 見られるようにします。iframe を document.body に戻してデタッチするには null を渡します。React バインディングでは <WalletWidget> 経由でこれを自動的に処理します。
setWidgetConfig(config)
ウィジェットの設定(theme、size、shape、compact)を埋め込みウォレットに 転送します。React バインディングでは <WalletWidget> 経由でこれを自動的に処理します。
disconnect()
iframe に wallet:disconnect メッセージを転送します。ユーザーがウィジェット 内の切断ボタンをクリックするのを待たずに、プログラム的にログアウトさせたい 場合に便利です。