Skip to content

Wallet

Wallet runtime access is authenticated with AGNT_KEY. Real sends are created as transfer intents and require later control-plane approval before on-chain execution.

GET /v1/wallet/balance

Return wallet balance metadata.

json
{
  "wallet_id": "wallet_xxx",
  "address": "0x...",
  "chain": "base",
  "assets": [
    {
      "asset": "ETH",
      "chain": "base",
      "token_address": null,
      "decimals": 18,
      "amount_atomic": "0",
      "formatted_amount": "0",
      "symbol": "ETH"
    },
    {
      "asset": "USDC",
      "chain": "base",
      "token_address": "0x833589fCD6EDb6E08f4c7C32D4f71b54bdA02913",
      "decimals": 6,
      "amount_atomic": "0",
      "formatted_amount": "0",
      "symbol": "USDC"
    }
  ]
}

GET /v1/wallet/address

Return the wallet address and chain.

GET /v1/wallet/policy

Return the effective spend policy:

  • asset
  • chain
  • token_address
  • decimals
  • max_per_tx_atomic
  • max_daily_atomic
  • allowlisted_addresses

POST /v1/wallet/send

Create a transfer intent.

Request:

json
{
  "to": "0x1111111111111111111111111111111111111111",
  "asset": "USDC",
  "chain": "base",
  "amount_atomic": "1000000",
  "idempotency_key": "send-001"
}

Response:

json
{
  "id": "uuid",
  "status": "pending_confirmation",
  "asset": "USDC",
  "chain": "base",
  "token_address": "0x833589fCD6EDb6E08f4c7C32D4f71b54bdA02913",
  "recipient_address": "0x1111111111111111111111111111111111111111",
  "amount_atomic": "1000000",
  "tx_hash": null,
  "failure_reason": null,
  "created_at": "2026-03-13T00:00:00Z",
  "updated_at": "2026-03-13T00:00:00Z",
  "confirmed_at": null
}

Behavior:

  • only Base USDC is supported in the current runtime implementation
  • per-transaction and daily limits are enforced if configured
  • allowlisted recipient checks are enforced if configured
  • the resulting intent remains pending until a control-plane caller confirms it later

GET /v1/wallet/intents

List transfer intents created by the authenticated agent.

Query parameters:

  • limit: default 20, max 100

Errors:

  • 400 no wallet provisioned
  • 401 invalid AGNT_KEY
  • 403 spend policy violation on send attempts

Agent-first public docs. Stable URLs, static pages, machine-readable spec.