View a markdown version of this page

Financez le portefeuille et accordez les autorisations aux agents - Amazon Bedrock AgentCore

Financez le portefeuille et accordez les autorisations aux agents

Après avoir créé un instrument de paiement, l'utilisateur final doit approvisionner le portefeuille avec l'USDC et autoriser l'agent à signer des transactions. Tant que les deux étapes ne sont pas terminées, l'opération de traitement du paiement échoue avec une exception côté client.

Astuce

Vous pouvez automatiser les étapes de cette page à l'aide de la compétence AgentCore Paiements de la boîte à outils de l' AWS agent. La compétence fait partie du plugin aws-agents. Grâce à lui, un agent de codage basé sur l'IA peut créer votre gestionnaire de paiement, votre connecteur, votre fournisseur d'informations d'identification, votre instrument de paiement et votre session à l'aide de la agentcore CLI, et ajouter un outil de paiement x402 à votre agent. Pour plus de détails, consultez le guide de démarrage rapide et le kit d'outils de l'AWS agent sur GitHub.

Coinbase CDP

Lorsque vous créez un instrument de paiement avec le connecteur Coinbase CDP, l'CreatePaymentInstrumentAPI renvoie un redirectUrl pointeur vers Coinbase WalletHub, un portail permettant d'accorder des autorisations aux agents et de financer le portefeuille. Dirigez l'utilisateur final vers cette URL pour approvisionner son portefeuille et accorder des autorisations aux agents à partir d'une interface unique.

Utilisez l' WalletHub URL

La CreatePaymentInstrument réponse redirectUrl from ouvre la Coinbase WalletHub, où l'utilisateur final peut approvisionner le portefeuille et accorder des autorisations de signature à l'agent.

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 WalletHub pour le financement et l'octroi d'autorisations

Vous pouvez également déployer le AgentCore modèle Coinbase en GitHub tant que Next.js frontend auto-hébergé qui fournit les mêmes fonctionnalités de financement et d'autorisations avec une interface utilisateur personnalisable. Consultez (Alternative) Déployez le frontend auto-hébergé les instructions de configuration.

Approvisionnez le portefeuille

Depuis le frontend WalletHub (ou depuis le frontend auto-hébergé), l'utilisateur final peut approvisionner son portefeuille en utilisant l'une des méthodes suivantes :

Méthode Description Disponibilité

Rampe Coinbase () card/bank

Achetez des USDC directement par carte de crédit, carte de débit, Apple Pay, Google Pay ou ACH via le flux d'achat hébergé par Coinbase.

Réseau principal uniquement

Recevoir (code QR)

Affichez un code QR et une adresse de portefeuille. L'utilisateur scanne le QR ou copie l'adresse pour envoyer des fonds depuis un portefeuille externe ou une plateforme de change.

Réseau principal et réseau de test

Transfert depuis un portefeuille externe

Connectez un portefeuille d'extension de navigateur (PhantomMetaMask, Coinbase Wallet) et transférez l'USDC directement vers le portefeuille intégré.

Réseau principal et réseau de test

Pour les environnements testnet, approvisionnez le portefeuille avec le testnet USDC provenant du robinet Circle USDC.

Accorder des autorisations aux agents

Les autorisations d'agent dans Coinbase CDP utilisent une délégation à l'échelle du portefeuille : chaque portefeuille reçoit sa propre autorisation indépendante et limitée dans le temps de la part de l'utilisateur final qui autorise l'agent à signer des transactions.

  1. L'utilisateur final accède à la section Permissions du tableau de bord frontal Coinbase.

  2. L'utilisateur final sélectionne un ou plusieurs portefeuilles (EVM and/or Solana) à autoriser.

  3. L'utilisateur final choisit Accorder l'autorisation et sélectionne une durée d'expiration : 7 jours, 30 jours (par défaut), 60 jours ou 90 jours.

Une fois l'autorisation accordée, l'agent peut signer les transactions pour le compte des portefeuilles de l'utilisateur final jusqu'à son expiration. L'utilisateur final peut révoquer les autorisations à tout moment depuis le même tableau de bord. Une fois la subvention accordée, passez à Créer une session de paiement.

Révoquer les autorisations

L'utilisateur final peut révoquer l'accès de l'agent à n'importe quel portefeuille à tout moment depuis la section des autorisations du tableau de bord WalletHub ou du frontend. Après la révocation, l'agent ne peut plus signer les transactions pour ce portefeuille tant que l'utilisateur n'a pas accordé de nouvelles autorisations.

(Alternative) Déployez le frontend auto-hébergé

Si vous avez besoin d'une interface utilisateur personnalisable au lieu d'une interface hébergée WalletHub, déployez le AgentCore modèle Coinbase en tant qu'application auto-hébergée Next.js .

  1. Clonez le dépôt :

    git clone https://github.com/coinbase/cdp-agentcore-template.git cd cdp-agentcore-template
  2. Créez un .env.local fichier avec vos informations d'identification CDP :

    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
  3. Installez les dépendances et démarrez l'application :

    npm install npm run dev
  4. Dans le portail des développeurs Coinbase, ajoutez l'URL de votre application à la liste des origines autorisées sous Portefeuilles > Non-custodial Portefeuille > Sécurité.

Le frontend auto-hébergé fournit les mêmes flux de financement et d'octroi d'autorisations décrits ci-dessus, avec un contrôle total sur le style et l'expérience utilisateur.

Stripe (Privy)

Le AgentCore SDK Privy GitHub est une interface de Next.js référence qui permet aux utilisateurs finaux de s'authentifier, de financer des portefeuilles et d'accorder des autorisations aux agents via un flux de configuration guidé.

Déployer le frontend

  1. Autoriser le point de terminaison localhost dans le tableau de bord privé sous Paramètres de l'application > Principes de base > Domaines

Tableau de bord privé affichant le champ Domaines sous Paramètres de l'application, où localhost est ajouté à la liste des origines autorisées.
  1. Clonez le dépôt :

    git clone https://github.com/privy-io/aws-agentcore-sdk.git cd aws-agentcore-sdk
  2. Créez un .env.local fichier avec vos identifiants Privy :

    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=testnet

    La NEXT_PUBLIC_PRIVY_SIGNER_ID valeur est l'ID d'autorisation (ID clé) de votre tableau de bord privé sous Wallet Infrastructure > Autorisation. Il s'agit d'un identifiant public qui peut être exposé en toute sécurité côté client.

  3. Installez les dépendances et démarrez l'application :

    pnpm install pnpm dev

Approvisionnez le portefeuille

Lorsque l'utilisateur final s'authentifie via le frontend Privy, des portefeuilles intégrés sont automatiquement créés pour les réseaux Base (EVM) et Solana. L'utilisateur final peut approvisionner son portefeuille en utilisant l'une des méthodes suivantes :

Méthode Description Disponibilité

Payer par carte (Stripe)

Achetez des USDC à l'aide d'une carte de crédit ou de débit via la rampe d'accès cryptée hébergée par Stripe à l'adresse. crypto.link.com

Réseau principal uniquement

Recevoir (code QR)

Affichez un code QR et une adresse de portefeuille au format URI EIP-681 (EVM) ou Solana Pay. L'utilisateur scanne le QR ou copie l'adresse pour envoyer des fonds depuis un portefeuille externe ou une plateforme de change.

Réseau principal et réseau de test

Transfert depuis un portefeuille externe

Connectez un portefeuille d'extension de navigateur (MetaMask pour Base, Phantom pour Solana) et transférez l'USDC directement vers le portefeuille intégré.

Réseau principal et réseau de test

Pour les environnements testnet, approvisionnez le portefeuille avec le testnet USDC provenant du robinet Circle USDC.

Accorder des autorisations aux agents

Dans Privy, les autorisations d'agent utilisent des signataires de session (également appelés clés d'autorisation) : l'utilisateur final enregistre la clé d'autorisation de l'agent sur chaque portefeuille intégré, autorisant ainsi l'agent à signer des transactions sans approbation par transaction.

  1. Dans le frontend Privy, l'utilisateur final se connecte et des portefeuilles intégrés automatiques sont créés (un EVM, un Solana).

  2. L'écran d'accueil affiche une carte de configuration de l'agent Connect.

  3. L'utilisateur final choisit l'agent Connect, et un message s'affiche : « Donnez à votre agent l'accès à vos portefeuilles ».

  4. L'utilisateur final choisit Donner accès.

Le frontend appelle addSessionSigners depuis le Privy SDK pour enregistrer la clé d'autorisation de l'agent sur chaque portefeuille intégré. L'opération est inopérante : si le signataire est déjà enregistré, aucune erreur n'est renvoyée.

Une fois connecté, l'agent peut signer des transactions pour le compte des portefeuilles de l'utilisateur. Les autorisations sont conservées jusqu'à ce qu'elles soient explicitement révoquées.

(Facultatif) Vérifiez la connexion à l'agent

Le frontend vérifie que les autorisations sont actives en appelant l'API Privy :

GET https://auth.privy.io/api/v1/wallets/{walletId} Authorization: Basic <base64(appId:appSecret)>

La réponse inclut un additional_signers tableau. Si l'ID d'autorisation configuré apparaît dans ce tableau, l'agent est connecté.

Une fois la subvention accordée, passez à Créer une session de paiement.

Tester avec testnet USDC

Pour le développement et les tests, utilisez les réseaux testnet et financez des portefeuilles avec test USDC :

  1. NEXT_PUBLIC_NETWORK_MODE=testnetDéfini dans le .env.local fichier frontal.

  2. Obtenez le testnet USDC à partir du robinet Circle USDC :

    • Select Base Sepolia pour les portefeuilles EVM

    • Sélectionnez Solana Devnet pour les portefeuilles Solana

  3. Collez l'adresse du portefeuille intégré (affichée sur le tableau de bord frontal ou sur l'écran du code QR) dans le robinet.

  4. Le robinet distribue le test USDC à votre portefeuille en quelques secondes.

Note

La carte Stripe Onramp (Privy) et Coinbase Onramp ne sont pas disponibles sur testnet. Utilisez le robinet Circle, le transfert de portefeuille externe ou le transfert d'adresse direct pour le financement du testnet.