向钱包注资并授予代理权限
创建支付工具后,最终用户必须使用 USDC 为钱包注资,并授予代理签署交易的权限。在两个步骤都完成之前,流程付款操作将失败,并出现客户端异常。
提示
您可以使用 AWS 代理工具包中的 “ AgentCore 付款” 技能自动执行此页面上的步骤。该技能是 aws-agen ts 插件的一部分。借助它,AI 编码代理可以使用 agentcore CLI 创建您的支付管理器、连接器、凭证提供商、支付工具和会话,并向您的代理添加 x402 支付工具。有关详细信息,请参阅上的快速入门和AWS 代理工具包。 GitHub
Coinbase CDP
当您使用Coinbase CDP连接器创建支付工具时,CreatePaymentInstrumentAPI会返回指向Coinbase的redirectUrl指向 WalletHub,Coinbase是一个用于授予代理权限和为钱包注资的门户。将最终用户引导至此 URL,为其钱包注资,并通过单一界面授予代理权限。
使用网 WalletHub 址
redirectUrl来自CreatePaymentInstrument响应的内容会打开 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}")
或者,您可以将 Coinbase AgentCore 模板
为钱包注资
在 WalletHub (或自托管前端),最终用户可以使用以下任何一种方法为钱包注资:
| 方法 | 说明 | 可用性 |
|---|---|---|
|
Coinbase Onramp () card/bank |
通过Coinbase的托管购买流程,使用信用卡、借记卡、Apple Pay、Google Pay或ACH直接购买USDC。 |
仅限主网 |
|
接收(二维码) |
显示二维码和钱包地址。用户扫描二维码或复制地址以从外部钱包或交易所发送资金。 |
主网和测试网 |
|
从外部钱包转账 |
连接浏览器扩展钱包(Phantom MetaMask、Coinbase 钱包),然后将 USDC 直接转入嵌入式钱包。 |
主网和测试网 |
对于测试网环境,使用C ircle
授予代理权限
Coinbase CDP 中的代理权限使用钱包范围的委托 ——每个钱包都从授权代理签署交易的最终用户那里获得自己的独立、有时限的授权。
-
最终用户导航到 Coinbase 前端仪表板的 “权限” 部分。
-
最终用户选择一个或多个钱包 (EVM and/or Solana) 进行授权。
-
最终用户选择授予权限并选择到期时间:7 天、30 天(默认)、60 天或 90 天。
一旦获得授权,代理就可以代表最终用户的钱包签署交易,直到授权到期。最终用户可以随时从同一个仪表板撤消权限。提供赠款后,继续创建付款会话。
撤销权限
最终用户可以随时从 WalletHub 或前端仪表板的权限部分撤消代理对任何钱包的访问权限。撤销后,在用户授予新权限之前,代理无法再签署该钱包的交易。
(备选)部署自托管前端
如果您需要可自定义的用户界面而不是托管的用户界面 WalletHub,请将 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 开发者门户
中,将应用程序的网址添加到 “钱包” > “钱包” > Non-custodial “安全” 下的 “允许来源” 列表中。
自托管的前端提供与上述相同的资金和许可授予流程,并且可以完全控制样式和用户体验。
Stripe(Privy)
Privy AgentCore SDK GitHub
部署前端
-
在 Privy 控制面板的 “应用程序设置” > “基础知识” > “域” 下将本地主机端点列入许可名单
-
克隆存储库:
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值是 Privy 控制面板中钱包基础架构 > 授权下的授权 ID(密钥 ID)。这是一个公共标识符,可以安全地在客户端公开。 -
安装依赖关系并启动应用程序:
pnpm install pnpm dev
为钱包注资
当最终用户通过 Privy 前端进行身份验证时,会自动为 Base (EVM) 和 Solana 网络创建嵌入式钱包。最终用户可以使用以下任何一种方法为钱包注资:
| 方法 | 说明 | 可用性 |
|---|---|---|
|
使用信用卡付款(Stripe) |
通过 Stripe 托管的加密货币入口,使用信用卡或借记卡购买 USDC,网址为。 |
仅限主网 |
|
接收(二维码) |
使用 EIP-681 (EVM) 或 Solana Pay URI 格式显示二维码和钱包地址。用户扫描二维码或复制地址以从外部钱包或交易所发送资金。 |
主网和测试网 |
|
从外部钱包转账 |
连接浏览器扩展钱包(MetaMask 适用于 Base,Phantom 适用于 Solana),然后将 USDC 直接转入嵌入式钱包。 |
主网和测试网 |
对于测试网环境,使用C ircle
授予代理权限
Privy 中的代理权限使用会话签名者(也称为授权密钥)——最终用户在每个嵌入式钱包上注册代理的授权密钥,授予代理无需每笔交易批准即可签署交易的权限。
-
在 Privy 前端中,最终用户登录并创建自动嵌入式钱包(一个 EVM,一个 Solana)。
-
主屏幕显示 Connect 代理安装卡。
-
最终用户选择 Connect 代理,然后显示一个模态:“让您的代理访问您的钱包。”
-
最终用户选择 “授予访问权限”。
前端addSessionSigners从 Privy SDK 调用,在每个嵌入式钱包上注册代理的授权密钥。该操作是等效的,如果签名者已经注册,则不会返回任何错误。
连接后,代理可以代表用户的钱包签署交易。在明确撤销之前,这些权限将一直有效。
(可选)验证代理连接
前端通过调用 Privy API 来验证权限是否处于活动状态:
GET https://auth.privy.io/api/v1/wallets/{walletId} Authorization: Basic <base64(appId:appSecret)>
响应包含一个additional_signers数组。如果配置的授权 ID 出现在此阵列中,则表示代理已连接。
提供赠款后,继续创建付款会话。
使用测试网 USDC 进行测试
要进行开发和测试,请使用测试网网络和带有测试 USDC 的资金钱包:
-
NEXT_PUBLIC_NETWORK_MODE=testnet在前端.env.local文件中设置。 -
从 C ircle USDC 水龙头获取测试网 US
DC: -
为 EVM 钱包选择 Base Sepolia
-
选择 Solana Devnet 获取 Solana 钱包
-
-
将嵌入式钱包地址(显示在前端仪表板或二维码屏幕中)粘贴到水龙头中。
-
水龙头会在几秒钟内将测试USDC分配到您的钱包中。
注意
Stripe 卡入口(Privy)和 Coinbase Onramp 在测试网上不可用。使用Circle水龙头、外部钱包转账或直接地址转账进行测试网融资。