View a markdown version of this page

Finanzia il portafoglio e concedi le autorizzazioni all'agente - Amazon Bedrock AgentCore

Finanzia il portafoglio e concedi le autorizzazioni all'agente

Dopo aver creato uno strumento di pagamento, l'utente finale deve finanziare il portafoglio con USDC e concedere all'agente l'autorizzazione a firmare le transazioni. Fino al completamento di entrambi i passaggi, l'operazione di pagamento fallisce con un'eccezione sul lato client.

Suggerimento

Puoi automatizzare i passaggi di questa pagina con l'abilità AgentCore Pagamenti nel toolkit per agenti. AWS L'abilità fa parte del plugin aws-agents. Con esso, un agente di codifica AI può creare Payment Manager, connettore, fornitore di credenziali, strumento di pagamento e sessione utilizzando la agentcore CLI e aggiungere uno strumento di pagamento x402 al tuo agente. Per i dettagli, consulta il quickstart e il toolkit per agenti su.AWS GitHub

Coinbase CDP

Quando crei uno strumento di pagamento con il connettore Coinbase CDP, l'CreatePaymentInstrumentAPI rimanda a Coinbase WalletHub, redirectUrl un portale per concedere le autorizzazioni agli agenti e finanziare il portafoglio. Indirizza l'utente finale a questo URL per finanziare il proprio portafoglio e concedere le autorizzazioni agli agenti da un'unica interfaccia.

Usa l'URL WalletHub

redirectUrlDalla CreatePaymentInstrument risposta si apre Coinbase WalletHub, dove l'utente finale può finanziare il portafoglio e concedere le autorizzazioni di firma all'agente.

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 per il finanziamento e la concessione di autorizzazioni

In alternativa, puoi utilizzare il AgentCore modello Coinbase GitHub come Next.js frontend ospitato autonomamente che fornisce le stesse funzionalità di finanziamento e autorizzazioni con un'interfaccia utente personalizzabile. Vedi per le istruzioni di configurazione. (Alternativa) Implementa il frontend ospitato autonomamente

Finanzia il portafoglio

Dal frontend WalletHub (o dal frontend ospitato autonomamente), l'utente finale può finanziare il proprio portafoglio utilizzando uno dei seguenti metodi:

Metodo Description Disponibilità

Coinbase Onramp () card/bank

Acquista USDC direttamente utilizzando una carta di credito, una carta di debito, Apple Pay, Google Pay o ACH tramite il flusso di acquisto ospitato da Coinbase.

Solo Mainnet

Ricevi (codice QR)

Visualizza un codice QR e l'indirizzo del portafoglio. L'utente esegue la scansione del codice QR o copia l'indirizzo per inviare fondi da un portafoglio o da un exchange esterno.

Mainnet e testnet

Trasferimento da un portafoglio esterno

Collega un portafoglio con estensione del browser (MetaMaskPhantom, Coinbase Wallet) e trasferisci USDC direttamente nel portafoglio incorporato.

Mainnet e testnet

Per gli ambienti testnet, alimenta il portafoglio con testnet USDC dal rubinetto Circle USDC.

Concedi le autorizzazioni agli agenti

Le autorizzazioni degli agenti in Coinbase CDP utilizzano la delega basata sull'ambito del portafoglio: ogni portafoglio riceve una concessione indipendente e limitata nel tempo dall'utente finale che autorizza l'agente a firmare le transazioni.

  1. L'utente finale accede alla sezione Autorizzazioni della dashboard del frontend di Coinbase.

  2. L'utente finale seleziona uno o più portafogli (EVM Solana) da autorizzare. and/or

  3. L'utente finale sceglie Concedi l'autorizzazione e seleziona una durata di scadenza: 7 giorni, 30 giorni (impostazione predefinita), 60 giorni o 90 giorni.

Una volta concessa, l'agente può firmare le transazioni per conto dei portafogli dell'utente finale fino alla scadenza della concessione. L'utente finale può revocare le autorizzazioni in qualsiasi momento dalla stessa dashboard. Una volta fornita la sovvenzione, procedi con Crea una sessione di pagamento.

Revoca le autorizzazioni

L'utente finale può revocare l'accesso dell'agente a qualsiasi portafoglio in qualsiasi momento dalla sezione delle autorizzazioni della dashboard o del frontend. WalletHub Dopo la revoca, l'agente non può più firmare le transazioni per quel portafoglio finché l'utente non concede nuove autorizzazioni.

(Alternativa) Implementa il frontend ospitato autonomamente

Se hai bisogno di un'interfaccia utente personalizzabile anziché quella ospitata WalletHub, implementa il AgentCore modello Coinbase come applicazione ospitata autonomamente. Next.js

  1. Clona il repository:

    git clone https://github.com/coinbase/cdp-agentcore-template.git cd cdp-agentcore-template
  2. Crea un .env.local file con le tue credenziali 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. Installa le dipendenze e avvia l'applicazione:

    npm install npm run dev
  4. Nel Coinbase Developer Portal, aggiungi l'URL dell'applicazione all'elenco Allowed Origins in Wallets > Non-custodial Wallet > Security.

Il frontend ospitato autonomamente offre gli stessi flussi di finanziamento e concessione delle autorizzazioni descritti sopra, con il pieno controllo sullo stile e sull'esperienza utente.

Stripe (Privy)

Privy AgentCore SDK on GitHub è un frontend di Next.js riferimento che consente agli utenti finali di autenticarsi, finanziare i portafogli e concedere le autorizzazioni agli agenti attraverso un flusso di configurazione guidato.

Implementa il frontend

  1. Consenti l'endpoint localhost nella dashboard di Privy in Impostazioni app > Nozioni di base > Domini

Dashboard Privy che mostra il campo Domini in Impostazioni app dove localhost viene aggiunto all'elenco delle origini consentite
  1. Clona il repository:

    git clone https://github.com/privy-io/aws-agentcore-sdk.git cd aws-agentcore-sdk
  2. Crea un .env.local file con le tue credenziali 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

    Il NEXT_PUBLIC_PRIVY_SIGNER_ID valore è l'ID di autorizzazione (Key ID) dalla dashboard di Privy in Wallet Infrastructure > Authorization. Si tratta di un identificatore pubblico ed è sicuro da esporre sul lato client.

  3. Installa le dipendenze e avvia l'applicazione:

    pnpm install pnpm dev

Trova il portafoglio

Quando l'utente finale si autentica tramite il frontend Privy, i portafogli integrati vengono creati automaticamente per le reti Base (EVM) e Solana. L'utente finale può finanziare il proprio portafoglio utilizzando uno dei seguenti metodi:

Metodo Description Disponibilità

Paga con carta (Stripe)

Acquista USDC utilizzando una carta di credito o di debito tramite la piattaforma crittografica ospitata da Stripe su Stripe all'indirizzo. crypto.link.com

Solo Mainnet

Ricevi (codice QR)

Visualizza un codice QR e l'indirizzo del portafoglio utilizzando il EIP-681 formato URI (EVM) o Solana Pay. L'utente esegue la scansione del QR o copia l'indirizzo per inviare fondi da un portafoglio o da un exchange esterno.

Mainnet e testnet

Trasferimento da un portafoglio esterno

Connect un wallet con estensione del browser (MetaMask per Base, Phantom for Solana) e trasferisci USDC direttamente nel wallet incorporato.

Mainnet e testnet

Per gli ambienti testnet, alimenta il portafoglio con testnet USDC dal rubinetto Circle USDC.

Concedi le autorizzazioni agli agenti

Le autorizzazioni degli agenti in Privy utilizzano i firmatari di sessione (chiamati anche chiavi di autorizzazione): l'utente finale registra la chiave di autorizzazione dell'agente su ogni portafoglio incorporato, concedendo all'agente il permesso di firmare le transazioni senza l'approvazione della singola transazione.

  1. Nel frontend Privy, l'utente finale accede e vengono creati portafogli incorporati automatici (un EVM, un Solana).

  2. La schermata principale mostra una scheda di configurazione Connect Agent.

  3. L'utente finale sceglie Connect agent e viene visualizzato un modale: «Consenti al tuo agente di accedere ai tuoi portafogli».

  4. L'utente finale sceglie Concedi accesso.

Il frontend chiama addSessionSigners dal Privy SDK per registrare la chiave di autorizzazione dell'agente su ogni portafoglio incorporato. L'operazione è idempotente: se il firmatario è già registrato, non viene restituito alcun errore.

Una volta connesso, l'agente può firmare le transazioni per conto dei portafogli dell'utente. Le autorizzazioni persistono fino a quando non vengono revocate esplicitamente.

(Facoltativo) Verifica la connessione dell'agente

Il frontend verifica che le autorizzazioni siano attive chiamando l'API Privy:

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

La risposta include un array. additional_signers Se l'ID di autorizzazione configurato appare in questo array, l'agente è connesso.

Una volta fornita la concessione, procedi con Crea una sessione di pagamento.

Test con testnet USDC

Per lo sviluppo e il test, utilizza le reti testnet e i portafogli di fondi con test USDC:

  1. Impostato NEXT_PUBLIC_NETWORK_MODE=testnet nel file di frontend. .env.local

  2. Ottieni testnet USDC dal rubinetto Circle USDC:

    • Seleziona Base Sepolia per i portafogli EVM

    • Seleziona Solana Devnet per i portafogli Solana

  3. Incolla l'indirizzo del portafoglio incorporato (mostrato nella dashboard del frontend o nella schermata del codice QR) nel rubinetto.

  4. Il rubinetto distribuisce l'USDC di prova al tuo portafoglio in pochi secondi.

Nota

La carta Stripe onramp (Privy) e Coinbase Onramp non sono disponibili su testnet. Usa il faucet Circle, il trasferimento tramite wallet esterno o il trasferimento diretto di indirizzi per finanziare testnet.