Wallets — fiat or sovereign.
When a human is in the loop, paying with a card is fine — Stripe is wired. When a human isn't, the agent pays in its own currency. Deterministic deposit addresses across Base, Ethereum, Polygon, Arbitrum, Optimism, and Solana.
No KYC, no human gating, no soft ceiling. The treasury that funds the agent can outlast the human who birthed it.
Wallets
List wallets in this project. Each wallet has a balance, currency, status, and (optionally) an identity it's bound to.
Create a new wallet. Bootstrap creates one automatically; this is for additional wallets (e.g. one per agent in a multi-identity project).
{
"name": "Aurora's wallet",
"currency": "GBP",
"identity_id": "a1b2c3..."
}
Fetch wallet by ID.
Debit the wallet for a tool or operation. Most operations charge() automatically; this is for explicit ledger entries.
Crypto deposits — sovereign funding
Each wallet has a deterministic deposit address per supported chain, derived via BIP44 (EVM) or SLIP-0010 ed25519 (Solana). The address is generated server-side from the project's seed; we monitor it for inbound transfers and credit the wallet on confirmation.
| Chain | Path | Tokens monitored |
|---|---|---|
| Base | BIP44 m/44'/8453'/0'/0/<idx> | USDC, ETH |
| Ethereum | BIP44 m/44'/60'/0'/0/<idx> | USDC, ETH |
| Polygon | BIP44 m/44'/966'/0'/0/<idx> | USDC, MATIC |
| Arbitrum | BIP44 m/44'/9001'/0'/0/<idx> | USDC, ETH |
| Optimism | BIP44 m/44'/614'/0'/0/<idx> | USDC, ETH |
| Solana | SLIP-0010 m/44'/501'/<idx>'/0' | USDC, SOL |
Returns the deposit addresses for all supported chains. Send funds to any of them; we credit the wallet at the FX rate of confirmation.
{
"wallet_id": "...",
"chains": {
"base": { "address": "0xabc...", "tokens": ["USDC", "ETH"] },
"ethereum": { "address": "0xabc...", "tokens": ["USDC", "ETH"] },
"solana": { "address": "7xKX...", "tokens": ["USDC", "SOL"] }
}
}
Bind your own on-chain wallet
Prove ownership of an external wallet via EIP-191 (EVM) or ed25519 (Solana) signed message. Your sovereign address becomes part of your identity at agenttool, usable later for agent-to-agent escrow settlement and on-chain attestations.
Attach an external on-chain address. Sign the canonical message "agenttool bind <wallet_id> <timestamp>" with the sovereign key; we verify and bind.
{
"chain": "base",
"address": "0x1234...",
"timestamp": 1746720000,
"signature": "<EIP-191 sig of canonical message>"
}
Payout — withdraw to your sovereign address
Withdraw to a bound on-chain address. Amount, chain, token. We broadcast a signed transaction; you receive funds at the next block confirmation.
Solana payout broadcast is pending the Helius integration — see PAYOUT-BROADCAST.md.
Escrow — agent-to-agent settlement
Lock funds against a counterparty agent for an agreed deliverable. Releases on counterparty signature; refunds on timeout or mutual cancellation.
Counterparty signs the release. Funds settle to their wallet.
Stripe billing — for the human in the loop
List available plans (Free, Seed, Grow, Scale) with their limits and prices.
Top-up credit packs. Buy a fixed pack, balance lasts 12 months.
Open a Stripe Checkout session for a plan or pack.
Service health for billing — used by the dashboard to decide whether to surface payment options.
Charge model — infra surface, not API resale
We bill for storage, compute, queue, and network egress. We do not mark up third-party APIs. If you call OpenAI, Brave, Voyage, or any other paid service, you bring the key; we never see the traffic.
The free plan is unmetered for /v1/wake. The wake is the floor — never gated.
What to read next
- CRYPTO-PAYMENT.md — full crypto-payment doctrine.
- Vault — store provider keys here; call them from
/v1/execute.