

# Finanzieren Sie das Wallet und gewähren Sie Agentenberechtigungen
<a name="payments-fund-wallet"></a>

Nachdem Sie ein Zahlungsinstrument erstellt haben, muss der Endbenutzer die Wallet mit USDC finanzieren und dem Agenten die Erlaubnis erteilen, Transaktionen zu signieren. Bis beide Schritte abgeschlossen sind, schlägt der Zahlungsvorgang mit einer clientseitigen Ausnahme fehl.

**Tipp**  
Sie können die Schritte auf dieser Seite mit dem Skill „ AgentCore Zahlungen“ im AWS Agenten-Toolkit automatisieren. Der Skill ist Teil des **aws-agents-Plugins**. Damit kann ein KI-Codierungsagent Ihren Zahlungsmanager, Connector, Anmeldeinformationsanbieter, Zahlungsinstrument und Sitzung mithilfe der `agentcore` CLI erstellen und Ihrem Agenten ein x402-Zahlungstool hinzufügen. Einzelheiten finden Sie im [Schnellstart](payments-getting-started.md) und im [AWS Agenten-Toolkit](https://github.com/aws/agent-toolkit-for-aws/tree/main) unter. GitHub

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

Wenn Sie ein Zahlungsinstrument mit dem Coinbase CDP-Connector erstellen, gibt die `CreatePaymentInstrument` API einen Verweis auf Coinbase zurück, ein `redirectUrl` Portal WalletHub, über das Agentenberechtigungen erteilt und die Wallet finanziert werden können. Leiten Sie den Endbenutzer zu dieser URL weiter, um seine Wallet zu finanzieren und Agentenberechtigungen von einer einzigen Oberfläche aus zu gewähren.

### Verwenden Sie die WalletHub URL
<a name="payments-fund-wallet-coinbase-wallethub"></a>

`redirectUrl`Von der `CreatePaymentInstrument` Antwort aus wird die Coinbase geöffnet WalletHub, wo der Endbenutzer die Wallet finanzieren und dem Agenten Signierberechtigungen erteilen kann.

```
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 für die Finanzierung und Erteilung von Genehmigungen](http://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/payments/grant-permission.png)


Alternativ können Sie die [ AgentCore Coinbase-Vorlage GitHub](https://github.com/coinbase/cdp-agentcore-template) als selbst gehostetes Next.js Frontend bereitstellen, das dieselben Finanzierungs- und Berechtigungsfunktionen mit einer anpassbaren Benutzeroberfläche bietet. Anweisungen [(Alternative) Stellen Sie das selbst gehostete Frontend bereit](#payments-fund-wallet-coinbase-self-hosted) zur Einrichtung finden Sie unter.

### Finanzieren Sie die Brieftasche
<a name="payments-fund-wallet-coinbase-funding"></a>

Über das WalletHub (oder das selbst gehostete Frontend) kann der Endbenutzer sein Wallet mit einer der folgenden Methoden aufladen:


| Methode | Description | Verfügbarkeit | 
| --- | --- | --- | 
|  **Coinbase Onramp () card/bank**  | Kaufe USDC direkt mit einer Kreditkarte, Debitkarte, Apple Pay, Google Pay oder ACH über den von Coinbase gehosteten Kaufablauf. | Nur Mainnet | 
|  **Empfangen (QR-Code)**  | Zeigen Sie einen QR-Code und eine Brieftaschenadresse an. Der Benutzer scannt den QR oder kopiert die Adresse, um Geld aus einer externen Brieftasche oder Börse zu senden. | Mainnet und Testnet | 
|  **Übertragung von einer externen Brieftasche**  | Connect eine Wallet mit Browsererweiterungen (MetaMask, Phantom, Coinbase Wallet) und überweise USDC direkt auf die eingebettete Wallet. | Mainnet und Testnet | 

[Für Testnet-Umgebungen finanzieren Sie das Wallet mit Testnet USDC aus dem Circle USDC-Faucet.](https://faucet.circle.com/)

### Gewähren Sie Agentenberechtigungen
<a name="payments-fund-wallet-coinbase-permissions"></a>

Agentenberechtigungen in Coinbase CDP verwenden **Delegierung im Wallet-Bereich** — jedes Wallet erhält seinen eigenen unabhängigen, zeitlich begrenzten Zuschuss vom Endbenutzer, der den Agenten autorisiert, Transaktionen zu signieren.

1. **Der Endbenutzer navigiert zum Bereich „Berechtigungen“ des Coinbase-Frontend-Dashboards.**

1. Der Endbenutzer wählt eine oder mehrere Wallets (EVM and/or Solana) zur Autorisierung aus.

1. **Der Endbenutzer wählt **Erlaubnis erteilen** und wählt eine Ablaufdauer aus: **7 Tage**, **30 Tage** (Standard), **60 Tage oder 90 Tage**.**

Nach der Erteilung kann der Agent Transaktionen im Namen der Wallets des Endbenutzers unterzeichnen, bis die Genehmigung abläuft. Der Endbenutzer kann Berechtigungen jederzeit über dasselbe Dashboard widerrufen. Sobald der Zuschuss gewährt wurde, fahren Sie mit „[Zahlungssitzung erstellen](payments-create-session.md)“ fort.

#### Widerrufen Sie die Berechtigungen
<a name="payments-fund-wallet-coinbase-permissions-revoke"></a>

Der Endbenutzer kann den Agentenzugriff auf jedes Wallet jederzeit über den Berechtigungsbereich des Frontend-Dashboards WalletHub oder des Frontend-Dashboards widerrufen. Nach dem Widerruf kann der Agent keine Transaktionen mehr für dieses Wallet signieren, bis der Benutzer neue Berechtigungen erteilt.

### (Alternative) Stellen Sie das selbst gehostete Frontend bereit
<a name="payments-fund-wallet-coinbase-self-hosted"></a>

Wenn Sie anstelle der gehosteten eine anpassbare Benutzeroberfläche benötigen WalletHub, stellen Sie die [ AgentCore Coinbase-Vorlage](https://github.com/coinbase/cdp-agentcore-template) als selbst gehostete Anwendung bereit. Next.js 

1. Klonen Sie das Repository:

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

1. Erstellen Sie eine `.env.local` Datei mit Ihren CDP-Anmeldeinformationen:

   ```
   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. Installieren Sie Abhängigkeiten und starten Sie die Anwendung:

   ```
   npm install
   npm run dev
   ```

1. **Fügen Sie im [Coinbase Developer Portal](https://portal.cdp.coinbase.com/) die URL Ihrer Anwendung zur Liste der **erlaubten Ursprünge** unter **Wallets** > **Non-custodial Wallet** > Security hinzu.**

Das selbst gehostete Frontend bietet dieselben Finanzierungs- und Genehmigungsabläufe wie oben beschrieben, mit voller Kontrolle über das Design und die Benutzererfahrung.

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

Das [Privy AgentCore SDK on GitHub](https://github.com/privy-io/aws-agentcore-sdk) ist ein Next.js Referenz-Frontend, das es Endbenutzern ermöglicht, sich über einen geführten Einrichtungsablauf zu authentifizieren, Wallets zu finanzieren und Agentenberechtigungen zu erteilen.

### Stellen Sie das Frontend bereit
<a name="payments-fund-wallet-privy-deploy"></a>

1. ****Setzen Sie den Localhost-Endpunkt im Privy-Dashboard unter **App-Einstellungen** > Grundlagen > Domains auf die Zulassungsliste**** 

![Das Privy-Dashboard zeigt das Feld Domains unter App-Einstellungen, in dem localhost zur Liste der zulässigen Ursprünge hinzugefügt wird](http://docs.aws.amazon.com/de_de/bedrock-agentcore/latest/devguide/images/payments/privy-allowlist.png)


1. Klonen Sie das Repository:

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

1. Erstellen Sie eine `.env.local` Datei mit Ihren Privy-Anmeldeinformationen:

   ```
   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
   ```

   **Der `NEXT_PUBLIC_PRIVY_SIGNER_ID` Wert ist die Autorisierungs-ID (Schlüssel-ID) aus Ihrem Privy-Dashboard unter **Wallet Infrastructure** > Authorization.** Dies ist eine öffentliche Kennung, die auf der Clientseite sicher offengelegt werden kann.

1. Installieren Sie Abhängigkeiten und starten Sie die Anwendung:

   ```
   pnpm install
   pnpm dev
   ```

### Finanzieren Sie die Brieftasche
<a name="payments-fund-wallet-privy-funding"></a>

Wenn sich der Endbenutzer über das Privy-Frontend authentifiziert, werden automatisch eingebettete Wallets sowohl für Base- (EVM) als auch für Solana-Netzwerke erstellt. Der Endbenutzer kann seine Brieftasche mit einer der folgenden Methoden aufladen:


| Methode | Description | Verfügbarkeit | 
| --- | --- | --- | 
|  **Zahlen Sie mit Karte (Stripe)**  | Kaufe USDC mit einer Kredit- oder Debitkarte über den von Stripe gehosteten Krypto-Onramp unter. `crypto.link.com` | Nur Mainnet | 
|  **Empfangen (QR-Code)**  | Zeigen Sie einen QR-Code und eine Wallet-Adresse im URI-Format EIP-681 (EVM) oder Solana Pay an. Der Benutzer scannt den QR oder kopiert die Adresse, um Geld aus einer externen Brieftasche oder Börse zu senden. | Mainnet und Testnet | 
|  **Übertragung von einer externen Brieftasche**  | Connect eine Wallet mit Browsererweiterungen (MetaMask für Base, Phantom für Solana) und überweise USDC direkt auf die eingebettete Wallet. | Mainnet und Testnet | 

[Für Testnet-Umgebungen finanzieren Sie das Wallet mit Testnet USDC aus dem Circle USDC-Faucet.](https://faucet.circle.com/)

### Gewähren Sie Agentenberechtigungen
<a name="payments-fund-wallet-privy-permissions"></a>

Agentenberechtigungen in Privy verwenden **Sitzungssignierer** (auch Autorisierungsschlüssel genannt). Der Endbenutzer registriert den Autorisierungsschlüssel des Agenten in jedem eingebetteten Wallet und erteilt dem Agenten so die Erlaubnis, Transaktionen ohne Genehmigung pro Transaktion zu signieren.

1. Im Privy-Frontend meldet sich der Endbenutzer an und es werden automatisch eingebettete Wallets erstellt (eine EVM, eine Solana).

1. Auf dem Startbildschirm wird eine **Connect Agent-Setup-Karte** angezeigt.

1. Der Endbenutzer wählt den **Connect-Agenten** aus, und in einem Modalfenster wird angezeigt: „Geben Sie Ihrem Agenten Zugriff auf Ihre Wallets.“

1. Der Endbenutzer wählt **Zugriff gewähren**.

Das Frontend ruft `addSessionSigners` vom Privy SDK aus auf, um den Autorisierungsschlüssel des Agenten in jeder eingebetteten Wallet zu registrieren. Der Vorgang ist idempotent — wenn der Unterzeichner bereits registriert ist, wird kein Fehler zurückgegeben.

Sobald die Verbindung hergestellt ist, kann der Agent Transaktionen im Namen der Wallets des Benutzers signieren. Die Berechtigungen bleiben bestehen, bis sie ausdrücklich widerrufen werden.

#### (Optional) Überprüfen Sie die Agentenverbindung
<a name="payments-fund-wallet-privy-permissions-verify"></a>

Das Frontend überprüft, ob die Berechtigungen aktiv sind, indem es die Privy-API aufruft:

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

Die Antwort enthält ein Array. `additional_signers` Wenn die konfigurierte Autorisierungs-ID in diesem Array erscheint, ist der Agent verbunden.

Sobald der Zuschuss gewährt wurde, fahren Sie mit „[Zahlungssitzung erstellen](payments-create-session.md)“ fort.

## Testen mit Testnet USDC
<a name="payments-fund-wallet-testnet"></a>

Verwenden Sie für Entwicklung und Tests Testnet-Netzwerke und finanzieren Sie Wallets mit Test USDC:

1. In der `NEXT_PUBLIC_NETWORK_MODE=testnet` Frontend-Datei festgelegt. `.env.local`

1. Rufen Sie Testnet USDC aus dem [Circle](https://faucet.circle.com/) USDC-Wasserhahn ab:
   + Wählen Sie **Base** Sepolia für EVM-Wallets
   + Wählen Sie **Solana Devnet für Solana-Wallets**

1. Fügen Sie die eingebettete Wallet-Adresse (im Frontend-Dashboard oder auf dem QR-Code-Bildschirm angezeigt) in den Wasserhahn ein.

1. Der Wasserhahn gibt innerhalb von Sekunden Test-USDC an Ihre Brieftasche aus.

**Anmerkung**  
Die Stripe-Karte Onramp (Privy) und Coinbase Onramp sind im Testnet nicht verfügbar. Verwenden Sie den Circle-Faucet, die externe Wallet-Übertragung oder die direkte Adressübertragung für die Testnet-Finanzierung.