> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nonhumans.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Wallet: Fiat & Crypto Payments for Agents

> Nonhumans agents hold fiat and crypto balances and send payments autonomously — no human in the loop required for routine transactions.

Your agent can hold money, spend money, and get paid — without routing every transaction through a human. The wallet primitive gives your agent a multi-currency fiat account alongside stablecoin and crypto balances, all accessible through a single API. Every transaction is logged against your agent's verified identity.

<Warning>
  The wallet primitive moves real money. Always build and test your payment logic in the **sandbox environment** before switching to production credentials. Sandbox transactions are simulated and carry no financial risk.
</Warning>

## What the Wallet Provides

<CardGroup cols={2}>
  <Card title="Fiat Balances" icon="dollar-sign">
    Hold USD and EUR in a custodial account. Receive bank transfers and pay out to counterparties.
  </Card>

  <Card title="Stablecoins & Crypto" icon="coins">
    Native addresses for USDC, ETH, SOL, and more. Send and receive on-chain without managing private keys manually.
  </Card>

  <Card title="Multi-Network Support" icon="network-wired">
    Send USDC on Ethereum, Solana, or Base — specify the network at send time to control fees and settlement speed.
  </Card>

  <Card title="Unified Balance View" icon="chart-pie">
    A single `balance()` call returns all fiat and crypto holdings in a structured response, so your agent always knows what it has available.
  </Card>
</CardGroup>

## Supported Assets

| Asset | Type       |
| ----- | ---------- |
| USD   | Fiat       |
| EUR   | Fiat       |
| USDC  | Stablecoin |
| ETH   | Crypto     |
| SOL   | Crypto     |

## Checking Balances

`agent.wallet.balance()` returns all fiat and crypto holdings in a single call. Fiat balances are grouped under `fiat` and crypto balances under `crypto`.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { Nonhumans } from '@nonhumans/sdk';

  const agent = new Nonhumans({ apiKey: process.env.NONHUMANS_API_KEY });

  const balances = await agent.wallet.balance();

  console.log(balances.fiat.usd);    // "1042.50"
  console.log(balances.fiat.eur);    // "890.00"
  console.log(balances.crypto.usdc); // "500.00"
  console.log(balances.crypto.eth);  // "0.142"
  console.log(balances.crypto.sol);  // "12.75"
  ```

  ```python Python theme={null}
  import os
  from nonhumans import Nonhumans

  agent = Nonhumans(api_key=os.environ["NONHUMANS_API_KEY"])

  balances = agent.wallet.balance()

  print(balances.fiat.usd)    # "1042.50"
  print(balances.fiat.eur)    # "890.00"
  print(balances.crypto.usdc) # "500.00"
  print(balances.crypto.eth)  # "0.142"
  print(balances.crypto.sol)  # "12.75"
  ```
</CodeGroup>

## Sending Payments

Use `agent.wallet.send()` to transfer funds. Specify the recipient address, amount, asset, and — for on-chain transfers — the network.

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { Nonhumans } from '@nonhumans/sdk';

  const agent = new Nonhumans({ apiKey: process.env.NONHUMANS_API_KEY });

  const tx = await agent.wallet.send({
    to: "0xRecipientAddress...",     // wallet address or agent handle
    amount: "50.00",
    asset: "USDC",
    network: "base",                 // "ethereum" | "solana" | "base"
  });

  console.log(tx.hash);    // on-chain transaction hash
  console.log(tx.status);  // "pending" | "confirmed" | "failed"
  ```

  ```python Python theme={null}
  import os
  from nonhumans import Nonhumans

  agent = Nonhumans(api_key=os.environ["NONHUMANS_API_KEY"])

  tx = agent.wallet.send(
      to="0xRecipientAddress...",
      amount="50.00",
      asset="USDC",
      network="base",
  )

  print(tx.hash)    # on-chain transaction hash
  print(tx.status)  # "pending" | "confirmed" | "failed"
  ```
</CodeGroup>

<ParamField body="to" type="string" required>
  Recipient wallet address or agent handle (e.g. `bob.nonhumans.ai`). When you send to an agent handle, the platform resolves the correct wallet address automatically.
</ParamField>

<ParamField body="amount" type="string" required>
  Amount to send as a decimal string (e.g. `"50.00"`).
</ParamField>

<ParamField body="asset" type="string" required>
  Asset to send. One of `USD`, `EUR`, `USDC`, `ETH`, or `SOL`.
</ParamField>

<ParamField body="network" type="string">
  Network for on-chain transfers. One of `ethereum`, `solana`, or `base`. Required when sending crypto or stablecoin assets.
</ParamField>

<Tip>
  You can send to another agent's handle directly — `to: "bob.nonhumans.ai"` — and the platform resolves the correct wallet address automatically. This makes agent-to-agent payments as simple as sending an email.
</Tip>

## Use Cases

<CardGroup cols={2}>
  <Card title="Autonomous Purchasing" icon="cart-shopping">
    Your agent can pay for API credits, SaaS subscriptions, or freelance work without requiring a human to approve each transaction.
  </Card>

  <Card title="Agent-to-Agent Payments" icon="handshake">
    Agents from different operators can settle payments directly using handles, with no shared payment credentials required.
  </Card>

  <Card title="On-Chain Settlements" icon="link">
    Send USDC or ETH on-chain for transparent, auditable settlements — useful for contracts that require a verifiable payment record.
  </Card>

  <Card title="Multi-Currency Operations" icon="globe">
    Hold USD for domestic payments and USDC for cross-border transfers — the wallet manages both without separate accounts.
  </Card>
</CardGroup>
