埋め込みウォレットのアカウント連携
この内容では、単一または複数のウォレットをメインの埋め込みウォレットセッションに連携・紐付けする方法について詳しく説明しています。エフェメラルなゲストウォレットと組み合わせて、恒久的なオンチェーン埋め込みウォレットへ変換する際のベストプラクティスも紹介しています。
Sequence Embedded Walletsでは、複数のソーシャルアカウントを1つのウォレットアドレスに連携することができます。これにより、ユーザーは1つのオンチェーンアドレスで複数の認証手段からウォレットへアクセスできる体験を実現します。
埋め込みウォレットのアカウント連携の重要な特徴は、最初にサインインした認証プロバイダー(ソーシャル、メール、またはゲストウォレット)に基づいてウォレットが集約される点です。つまり、ウォレットアドレスは最初にサインインしたウォレットに基づき、その後のサインインはそのウォレットに紐付けられます。
連携されたアカウントがメインアカウントに接続された後、ログアウトしてそのアカウント単体で利用しても、今後も同じアドレスが利用されます。
ソーシャルプロバイダーアカウントの連携
以下の方法で、開発者はinitAuth
を使って、最初にサインインしたセッションのWaaS
オブジェクトと同じパラメータで追加のゲストまたはソーシャルプロバイダーによる認証を開始できます。このとき、プロバイダーのchallenge
が返され、それをlinkAccount
関数に渡します。
メールワンタイムパスワードによるアカウント連携
ワンタイムパスワードを使ったメール認証では、ユーザーのメールに送信されたパスワードをchallengeとして渡し、linkAccount
関数で呼び出します。
ゲストウォレットによるアカウント連携
多くのゲームでは、ゲストウォレットでアプリのバックグラウンドでサインインし、そのウォレットをSDKのキャッシュに保存しておき、後でソーシャルログインプロバイダーを使って最初のウォレットに紐付ける、という方法が一般的です。詳しくは前述の方法をご参照ください。
このため、ウォレットに資産が蓄積されたり、オンチェーンで取引が行われたり、署名が保存された場合でも、ウォレットの継続性が保たれます。
まずゲストウォレットを利用することで、ユーザーは認証前にゲームやサービスを気軽に体験でき、その後長期利用のために認証することでスムーズなオンボーディングが可能です。
ゲストが認証された後は、上記の方法を使ってユーザーが今後もアカウントへ再アクセスできるようにできます。
アカウント一覧の取得
listAccounts
を呼び出すと、accounts
オブジェクト(id
、type
、issuer
を含む)の配列と、currentAccountId
が返されます。例:"Guest:0x0104..."
アカウントの削除
設定に紐付けられていたアカウントを一覧から削除することも可能です。