

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Financia el monedero y concede permisos a los agentes
<a name="payments-fund-wallet"></a>

Tras crear un instrumento de pago, el usuario final debe depositar fondos en el monedero con USD Coin (USDC) y conceder al agente permiso para firmar las transacciones. Hasta que el usuario final complete ambos pasos, la operación de pago del proceso fallará con una excepción del lado del cliente.

El uso que hagas de proveedores de monederos externos se rige por sus condiciones. AWS no tiene la custodia ni el control de las carteras, los fondos, los activos digitales o las claves privadas asociadas, ni es responsable de ellos. Eres el único responsable de cualquier transacción, disputa o responsabilidad relacionada con el pago que surja del uso de AgentCore Payments, y de implementar las medidas de seguridad adecuadas (como la supervisión continua), según corresponda en cada caso de uso. Para obtener más información, consulta la sección 50.15 (Amazon Bedrock AgentCore Payments) de las Condiciones de servicio. AWS 

**sugerencia**  
Puedes automatizar los pasos de esta página con la habilidad AgentCore Pagos del kit de herramientas para AWS agentes. Esta habilidad forma parte del complemento ** aws-agents**. Con él, un agente de codificación de IA puede crear su gestor de pagos, conector, proveedor de credenciales, instrumento de pago y sesión mediante la `agentcore` CLI, y añadir una herramienta de procesamiento de pagos a su agente. Para obtener más información, consulte la guía de [ inicio rápido ](payments-getting-started.md) y el kit de herramientas para [AWS agentes en. GitHub ](https://github.com/aws/agent-toolkit-for-aws/tree/main)

## Coinbase CDP
<a name="payments-fund-wallet-coinbase"></a>

Cuando creas un instrumento de pago con el conector CDP de Coinbase, la `CreatePaymentInstrument` API muestra un enlace a Coinbase WalletHub, un portal `redirectUrl` que permite conceder permisos a los agentes y depositar fondos en el monedero. Dirige al usuario final a esta URL para que deposite fondos en su monedero y conceda permisos a los agentes desde una única interfaz.

### Usa la WalletHub URL
<a name="payments-fund-wallet-coinbase-wallethub"></a>

La `redirectUrl` `CreatePaymentInstrument` respuesta abre Coinbase WalletHub, donde el usuario final puede financiar el monedero y conceder permisos de firma al 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 para financiar y conceder permisos](https://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/images/payments/grant-permission.png)


Como alternativa, puedes implementar la AgentCore plantilla de [ Coinbase GitHub ](https://github.com/coinbase/cdp-agentcore-template) como una Next.js interfaz autohospedada que proporcione la misma funcionalidad de financiación y permisos con una interfaz de usuario personalizable. Consulte [(Alternativa) Implemente la interfaz autohospedada](#payments-fund-wallet-coinbase-self-hosted) para obtener instrucciones de configuración.

### Financia el monedero
<a name="payments-fund-wallet-coinbase-funding"></a>

Desde la interfaz WalletHub (o desde la interfaz autohospedada), el usuario final puede depositar fondos en su billetera mediante cualquiera de los siguientes métodos:


| Método | Description (Descripción) | Disponibilidad. | 
| --- | --- | --- | 
|  **Coinbase Onramp () card/bank **  | Compra USDC directamente con una tarjeta de crédito, débito, Apple Pay, Google Pay o ACH a través del flujo de compras alojado en Coinbase. | Solo Mainnet | 
|  **Recibir (código QR) **  | Muestra un código QR y la dirección del monedero. El usuario escanea el QR o copia la dirección para enviar fondos desde una cartera o bolsa externa. | Mainnet y testnet | 
|  **Transferencia desde una billetera externa **  | Conecta una billetera con extensión de navegador (MetaMaskPhantom, Coinbase Wallet) y transfiere el USDC directamente a la billetera integrada. | Mainnet y testnet | 

Para entornos de redes de prueba, financie el monedero con testnet USDC de Circle USDC. [https://faucet.circle.com/](https://faucet.circle.com/)

### Otorga permisos a los agentes
<a name="payments-fund-wallet-coinbase-permissions"></a>

Los permisos de agente en el CDP de Coinbase utilizan una delegación ** por monedero**: cada monedero recibe su propia concesión independiente y temporal del usuario final, que autoriza al agente a firmar las transacciones.

1. El usuario final accede a la sección de permisos del panel de control de la interfaz de usuario de Coinbase. ** **

1. El usuario final selecciona una o más carteras (EVM and/or Solana) para autorizarlas.

1. El usuario final elige ** Conceder el permiso ** y selecciona una duración de caducidad: ** 7 días**, ** 30 días ** (predeterminado), ** 60 días o ** 90 días**. **

Una vez otorgado, el agente puede firmar las transacciones en nombre de los monederos del usuario final hasta que caduque la concesión. El usuario final puede revocar los permisos en cualquier momento desde el mismo panel. Una vez concedida la subvención, proceda a [ crear una sesión ](payments-create-session.md) de pago.

#### Revoca los permisos
<a name="payments-fund-wallet-coinbase-permissions-revoke"></a>

El usuario final puede revocar el acceso de un agente a cualquier monedero en cualquier momento desde la sección de permisos del panel de control WalletHub o de la interfaz de usuario. Tras la revocación, el agente ya no podrá firmar las transacciones de esa cartera hasta que el usuario conceda nuevos permisos.

### (Alternativa) Implemente la interfaz autohospedada
<a name="payments-fund-wallet-coinbase-self-hosted"></a>

Si necesitas una interfaz de usuario personalizable en lugar de la alojada WalletHub, implementa la AgentCore plantilla de [ Coinbase ](https://github.com/coinbase/cdp-agentcore-template) como una aplicación autohospedada. Next.js 

1. Clona el repositorio:

   ```
   git clone https://github.com/coinbase/cdp-agentcore-template.git
   cd cdp-agentcore-template
   ```

1. Cree un `.env.local` archivo con sus credenciales de 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
   ```

1. Instale las dependencias e inicie la aplicación:

   ```
   npm install
   npm run dev
   ```

1. En el portal para desarrolladores de [ Coinbase](https://portal.cdp.coinbase.com/), agrega la URL de tu aplicación a la ** lista de orígenes ** permitidos, en ** Monederos ** > ** Non-custodial ** Monederos > Seguridad. ** **

La interfaz autohospedada proporciona los mismos flujos de financiación y concesión de permisos descritos anteriormente, con un control total sobre el estilo y la experiencia del usuario.

## Stripe (privado)
<a name="payments-fund-wallet-privy"></a>

El [ Privy AgentCore SDK on GitHub ](https://github.com/privy-io/aws-agentcore-sdk) es una interfaz de Next.js referencia que permite a los usuarios finales autenticarse, depositar fondos en carteras y conceder permisos a los agentes mediante un flujo de configuración guiado.

### Implementa la interfaz
<a name="payments-fund-wallet-privy-deploy"></a>

1. Incluya el punto final localhost en el panel de control privado, en Configuración ** de la ** aplicación > Conceptos básicos > Dominios ** ** ** ** 

![Panel de control privado que muestra el campo Dominios en la configuración de la aplicación, donde localhost se añade a la lista de orígenes permitidos](https://docs.aws.amazon.com/es_es/bedrock-agentcore/latest/devguide/images/payments/privy-allowlist.png)


1. Clona el repositorio:

   ```
   git clone https://github.com/privy-io/aws-agentcore-sdk.git
   cd aws-agentcore-sdk
   ```

1. Crea un `.env.local` archivo con tus credenciales de 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
   ```

   El `NEXT_PUBLIC_PRIVY_SIGNER_ID` valor es el ID de autorización (ID de clave) que aparece en tu panel de control privado, en ** Wallet Infrastructure ** > ** Authorization. ** Se trata de un identificador público y es seguro exponerlo desde el lado del cliente.

1. Instale las dependencias e inicie la aplicación:

   ```
   pnpm install
   pnpm dev
   ```

### Financia el monedero
<a name="payments-fund-wallet-privy-funding"></a>

Cuando el usuario final se autentica a través de la interfaz Privy, las carteras integradas se crean automáticamente para las redes Base (EVM) y Solana. El usuario final puede depositar fondos en su billetera mediante cualquiera de los siguientes métodos:


| Método | Description (Descripción) | Disponibilidad. | 
| --- | --- | --- | 
|  **Pague con tarjeta (Stripe) **  | Compra USDC con una tarjeta de crédito o débito a través de la plataforma de acceso criptográfico alojada por Stripe en. `crypto.link.com` | Solo Mainnet | 
|  **Recibir (código QR) **  | Muestre un código QR y la dirección de la billetera utilizando el formato URI EIP-681 (EVM) o Solana Pay. El usuario escanea el QR o copia la dirección para enviar fondos desde una cartera o bolsa externa. | Mainnet y testnet | 
|  **Transferencia desde una billetera externa **  | Conecta una billetera con extensión de navegador (MetaMask para Base, Phantom para Solana) y transfiere el USDC directamente a la billetera integrada. | Mainnet y testnet | 

Para entornos de redes de prueba, financie el monedero con testnet USDC de Circle USDC. [https://faucet.circle.com/](https://faucet.circle.com/)

### Otorga permisos a los agentes
<a name="payments-fund-wallet-privy-permissions"></a>

Los permisos de agente en Privy utilizan firmantes de ** sesión ** (también denominados claves de autorización): el usuario final registra la clave de autorización del agente en cada monedero integrado, lo que le otorga al agente permiso para firmar transacciones sin la aprobación de cada transacción.

1. En la interfaz de Privy, el usuario final inicia sesión y se crean carteras integradas automáticas (una EVM, una Solana).

1. La pantalla de inicio muestra una ** tarjeta de configuración del agente de Connect. **

1. El usuario final elige el agente ** de ** Connect y aparece un modal que dice: «Permita que su agente acceda a sus carteras».

1. El usuario final elige ** Dar acceso**.

La interfaz llama `addSessionSigners` desde el Privy SDK para registrar la clave de autorización del agente en cada cartera integrada. La operación es idempotente: si el firmante ya está registrado, no se devuelve ningún error.

Una vez conectado, el agente puede firmar las transacciones en nombre de las carteras del usuario. Los permisos persisten hasta que se revoquen explícitamente.

#### (Opcional) Verifique la conexión del agente
<a name="payments-fund-wallet-privy-permissions-verify"></a>

La interfaz verifica que los permisos estén activos llamando a la API Privy:

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

La respuesta incluye una matriz. `additional_signers` Si el identificador de autorización configurado aparece en esta matriz, el agente está conectado.

Una vez concedida la concesión, proceda a [ crear una sesión de pago](payments-create-session.md).

## Probando con testnet USDC
<a name="payments-fund-wallet-testnet"></a>

Para el desarrollo y las pruebas, usa redes de testnet y financia carteras con el USDC de prueba:

1. Definido `NEXT_PUBLIC_NETWORK_MODE=testnet` en el archivo de la interfaz. `.env.local`

1. Obtenga el USDC de Testnet en la llave [ Circle USDC: ](https://faucet.circle.com/)
   + Selecciona ** Base Sepolia para carteras EVM **
   + Seleccione ** Solana Devnet para las carteras Solana **

1. Pegue la dirección de la billetera integrada (que se muestra en el panel de control de la interfaz o en la pantalla del código QR) en el grifo.

1. El grifo envía el USDC de prueba a tu billetera en cuestión de segundos.

**nota**  
La tarjeta Stripe Onramp (Privy) y la Coinbase Onramp no están disponibles en testnet. Utiliza Circle Faucet, una transferencia externa mediante monedero o una transferencia directa de dirección para obtener fondos en Testnet.