ウォレットに資金を提供し、エージェントにアクセス許可を付与する
支払い手段を作成した後、エンドユーザーはウォレットに USDC の資金を提供し、トランザクションに署名するアクセス許可をエージェントに付与する必要があります。両方のステップが完了するまで、プロセス支払いオペレーションはクライアント側の例外で失敗します。
ヒント
エージェント AWS ツールキットの AgentCore Payments スキルを使用して、このページのステップを自動化できます。スキルは aws-agents プラグインの一部です。これにより、AI コーディングエージェントは agentcoreCLI を使用して Payment Manager、コネクタ、認証情報プロバイダー、支払い手段、セッションを作成し、x402 支払いツールをエージェントに追加できます。詳細については、GitHub のクイックスタートとエージェントツールキットを参照してください。 AWS GitHub
コインベース CDP
Coinbase CDP コネクタを使用して支払い手段を作成すると、CreatePaymentInstrumentAPI は、エージェントのアクセス許可を付与し、ウォレットに資金を提供するポータルである Coinbase WalletHub redirectUrlを指す を返します。この URL にエンドユーザーを誘導してウォレットに資金を提供し、単一のインターフェイスからエージェントにアクセス許可を付与します。
WalletHub URL を使用する
CreatePaymentInstrument レスポンスredirectUrlの が Coinbase WalletHub を開き、エンドユーザーはウォレットに資金を提供し、エージェントに署名許可を付与できます。
instrument = dp_client.create_payment_instrument( userId="test-user-123", paymentManagerArn=PAYMENT_MANAGER_ARN, paymentConnectorId=PAYMENT_CONNECTOR_ID, paymentInstrumentType="EMBEDDED_CRYPTO_WALLET", paymentInstrumentDetails={ "embeddedCryptoWallet": { "network": "ETHEREUM", "linkedAccounts": [{"email": {"emailAddress": "user@example.com"}}] } }, clientToken=str(uuid.uuid4()), ) # Direct the end user to this URL wallet_hub_url = instrument["paymentInstrumentDetails"]["redirectUrl"] print(f"Open the WalletHub: {wallet_hub_url}")
または、GitHub の Coinbase AgentCore テンプレート
ウォレットに資金を提供する
WalletHub (またはセルフホストフロントエンド) から、エンドユーザーは次のいずれかの方法を使用してウォレットに資金を提供できます。
| 方法 | 説明 | 利用可能な状況 |
|---|---|---|
|
Coinbase Onramp (カード/バンク) |
クレジットカード、デビットカード、Apple Pay、Google Pay、または Coinbase のホスト型購入フローを通じて ACH を使用して USDC を直接購入します。 |
Mainnet のみ |
|
受信 (QR コード) |
QR コードとウォレットアドレスを表示します。ユーザーは QR をスキャンするか、アドレスをコピーして外部ウォレットまたは交換所から資金を送信します。 |
Mainnet と testnet |
|
外部ウォレットからの転送 |
ブラウザ拡張ウォレット (MetaMask、Phantom、Coinbase Wallet) を接続し、USDC を埋め込みウォレットに直接転送します。 |
Mainnet と testnet |
テストネット環境の場合は、Circle USDC 蛇口からテストネット USDC
エージェントにアクセス許可を付与する
Coinbase CDP のエージェントアクセス許可は、ウォレットスコープの委任を使用します。各ウォレットは、エージェントがトランザクションに署名することを許可するエンドユーザーから独自の独立した期限付き許可を受け取ります。
-
エンドユーザーは、Coinbase フロントエンドダッシュボードのアクセス許可セクションに移動します。
-
エンドユーザーは、認可する 1 つ以上のウォレット (EVM および/または Solana) を選択します。
-
エンドユーザーはアクセス許可を付与を選択し、有効期限として 7 日、30 日 (デフォルト)、60 日、または 90 日を選択します。
付与されると、エージェントは付与の有効期限が切れるまでエンドユーザーのウォレットに代わってトランザクションに署名できます。エンドユーザーは、同じダッシュボードからいつでもアクセス許可を取り消すことができます。許可が提供されたら、支払いセッションの作成に進みます。
アクセス許可を取り消す
エンドユーザーは、WalletHub またはフロントエンドダッシュボードのアクセス許可セクションから、任意のウォレットへのエージェントアクセスをいつでも取り消すことができます。取り消し後、ユーザーが新しいアクセス許可を付与するまで、エージェントはそのウォレットのトランザクションに署名できなくなります。
(代替) セルフホスト型フロントエンドをデプロイする
ホストされた WalletHub の代わりにカスタマイズ可能な UI が必要な場合は、Coinbase AgentCore テンプレート
-
リポジトリのクローンを作成します。
git clone https://github.com/coinbase/cdp-agentcore-template.git cd cdp-agentcore-template -
CDP 認証情報を使用して
.env.localファイルを作成します。NEXT_PUBLIC_CDP_PROJECT_ID=<YOUR_CDP_PROJECT_ID> CDP_API_KEY_ID=<YOUR_CDP_API_KEY_ID> CDP_API_KEY_SECRET=<YOUR_CDP_API_KEY_SECRET> CDP_WALLET_SECRET=<YOUR_CDP_WALLET_SECRET> NEXT_PUBLIC_NETWORK_MODE=testnet -
依存関係をインストールし、アプリケーションを起動します。
npm install npm run dev -
Coinbase デベロッパーポータル
で、ウォレット > 非カスタムウォレット > セキュリティの下の許可されたオリジンリストにアプリケーションの URL を追加します。
セルフホストフロントエンドは、スタイルとユーザーエクスペリエンスを完全に制御しながら、上記ののと同じ資金とアクセス許可の付与フローを提供します。
ストライプ (プライベート)
GitHub の Privy AgentCore SDK
フロントエンドをデプロイする
-
アプリ設定 > 基本 > ドメインの下のプライベートダッシュボードで localhost エンドポイントを許可リストする
-
リポジトリのクローンを作成します。
git clone https://github.com/privy-io/aws-agentcore-sdk.git cd aws-agentcore-sdk -
Privy 認証情報を使用して
.env.localファイルを作成します。NEXT_PUBLIC_PRIVY_APP_ID=<YOUR_PRIVY_APP_ID> PRIVY_APP_SECRET=<YOUR_PRIVY_APP_SECRET> NEXT_PUBLIC_PRIVY_SIGNER_ID=<YOUR_PRIVY_AUTHORIZATION_ID> NEXT_PUBLIC_NETWORK_MODE=testnetNEXT_PUBLIC_PRIVY_SIGNER_ID値は、ウォレットインフラストラクチャ > 認可の下のプライベートダッシュボードの認可 ID (キー ID) です。これはパブリック識別子であり、クライアント側で公開しても安全です。 -
依存関係をインストールし、アプリケーションを起動します。
pnpm install pnpm dev
ウォレットに資金を提供する
エンドユーザーが Privy フロントエンドを介して認証すると、ベース (EVM) ネットワークと Solana ネットワークの両方で埋め込みウォレットが自動的に作成されます。エンドユーザーは、次のいずれかの方法を使用してウォレットに資金を提供できます。
| 方法 | 説明 | 利用可能な状況 |
|---|---|---|
|
カードで支払う (ストライプ) |
で Stripe がホストする暗号化オンランプを使用して、クレジットカードまたはデビットカードを使用して USDC を購入します |
Mainnet のみ |
|
受信 (QR コード) |
EIP-681 (EVM) または Solana Pay URI 形式を使用して、QR コードとウォレットアドレスを表示します。ユーザーは QR をスキャンするか、アドレスをコピーして外部ウォレットまたは交換所から資金を送信します。 |
Mainnet と testnet |
|
外部ウォレットからの転送 |
ブラウザ拡張ウォレット (MetaMask for Base、Phantom for Solana) を接続し、USDC を埋め込みウォレットに直接転送します。 |
Mainnet と testnet |
テストネット環境の場合は、Circle USDC 蛇口からテストネット USDC
エージェントにアクセス許可を付与する
Privy のエージェントアクセス許可は、セッション署名者 (認可キーとも呼ばれます) を使用します。エンドユーザーは、埋め込みウォレットごとにエージェントの認可キーを登録し、トランザクションごとの承認なしでトランザクションに署名するアクセス許可をエージェントに付与します。
-
Privy フロントエンドでは、エンドユーザーがログインし、自動埋め込みウォレットが作成されます (1 つの EVM、1 つの Solana)。
-
ホーム画面に Connect エージェントのセットアップカードが表示されます。
-
エンドユーザーが Connect エージェントを選択すると、「エージェントにウォレットへのアクセスを許可する」というモーダルが表示されます。
-
エンドユーザーはアクセス権を付与を選択します。
フロントエンドは Privy SDK addSessionSignersから を呼び出して、各埋め込みウォレットにエージェントの認可キーを登録します。オペレーションはべき等です。署名者が既に登録されている場合、エラーは返されません。
接続すると、エージェントはユーザーのウォレットに代わってトランザクションに署名できます。アクセス許可は、明示的に取り消されるまで保持されます。
(オプション) エージェント接続の検証
フロントエンドは、Privy API を呼び出してアクセス許可がアクティブであることを確認します。
GET https://auth.privy.io/api/v1/wallets/{walletId} Authorization: Basic <base64(appId:appSecret)>
レスポンスには additional_signers配列が含まれます。設定された認可 ID がこの配列に表示される場合、エージェントは接続されます。
許可が提供されたら、支払いセッションの作成に進みます。
テストネット USDC を使用したテスト
開発とテストには、テストネットワークを使用し、テスト USDC でウォレットに資金を提供します。
-
フロントエンド
.env.localファイルNEXT_PUBLIC_NETWORK_MODE=testnetで を設定します。 -
Circle USDC 蛇口からテストネット USDC
を取得します。 -
EVM ウォレットの Base Sepolia を選択する
-
Solana ウォレットの Solana Devnet を選択する
-
-
埋め込みウォレットアドレス (フロントエンドダッシュボードまたは QR コード画面に表示) を蛇口に貼り付けます。
-
蛇口は、数秒以内にテスト USDC をウォレットにディスペンスします。
注記
Stripe Card onramp (Privy) と Coinbase Onramp はテストネットでは使用できません。Circle 蛇口、外部ウォレット転送、または直接アドレス転送をテストネット資金に使用します。