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:
assetchaintoken_addressdecimalsmax_per_tx_atomicmax_daily_atomicallowlisted_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: default20, max100
Errors:
400no wallet provisioned401invalidAGNT_KEY403spend policy violation on send attempts