Programmable wallets

Wallets your code can create, fund and govern.

Provision a principal, spin up agents, allocate budgets, attach a card and write its rules, all from your backend. The dashboard is optional; the API is the product.

AgentWallet is invite-only. Request access and we will follow up.

In short

A programmable wallet is one whose lifecycle and rules are controlled by software. With AgentWallet your code creates agents, moves money between account, principal and agent, writes card policies and reacts to webhooks, while enforcement stays on the server.

How it works

A wallet lifecycle, entirely in code.

  1. Create an API key

    Account pak_ keys are shown once; only a hash is stored. Agents use them for the Tool API.

  2. Create principal and agents

    POST /api/principals, then POST /api/principals/:id/agents.

  3. Allocate

    Move a budget to each agent.

  4. Attach resources

    Provision a card, inbox or phone number to the agent.

  5. Write policy

    Set spending limits on the agent and replace the card policy atomically with PUT.

  6. Subscribe to events

    Register webhook endpoints and react to purchase and payout events.

Capabilities

Programmable at every layer

Provisioning

Agents and principals

Create, update and delete via REST; templates help bootstrap common agent types.

Funding

Allocations

Account → principal → agent transfers with ledger entries.

Policy

Card controls as JSON

A validated schema covering MCC, merchant, geography, channels, AVS and velocity.

Automation

Webhooks

HMAC-signed deliveries, exponential backoff retries and manual redelivery.

Agents

MCP and OpenAI tools

Expose wallet tools to Claude, Cursor or an OpenAI tool-calling loop.

Ops

Policy chat

Draft card or approval policies from plain English, then review before saving.

Use cases

What teams build on programmable wallets

Agent platforms

Create a wallet per end-customer agent at sign-up and cap it by plan.

Internal automation

Budget each workflow agent monthly and reset allocations from a cron job.

Marketplaces of agents

Give each listed agent its own balance so earnings and spend never mix.

Evaluation harnesses

Give test agents tiny allocations and strict card rules while you benchmark.

For developers

Card policy is just JSON.

The card controls schema is published at /api/schemas/cardControls.json and validated server-side.

  • Replace a card policy atomically with PUT /api/agents/:id/cards/:resourceId/policy
  • Read authorization decisions with GET .../decisions
  • Register webhooks with POST /api/webhook-endpoints
  • Idempotent payment routes via Idempotency-Key
# PUT /api/agents/:id/cards/:resourceId/policy
# Validated against /api/schemas/cardControls.json
{
  "mcc":      { "mode": "allow", "list": ["5734","7372"] },
  "channels": { "ecommerce": true, "atm": false, "cashback": false },
  "velocity": { "perTransaction": 200, "perDay": 600 },
  "defaultDecision": "DECLINE"
}
Security & controls

Programmable does not mean unguarded.

Your code sets rules; agents cannot raise them from inside a gated tool call.

Schema validation

Invalid policies are rejected before they reach the card program.

Role-based access

Team members have roles; write actions check permissions.

Hashed API keys

Keys are stored as SHA-256 hashes and identified by prefix.

Signed webhooks

Verify X-Payouts-Signature with a timestamped HMAC.

FAQ

Questions developers ask

What makes a wallet programmable?

Its creation, funding and rules can be changed by code through an API, and events are pushed back to your systems.

Can I manage wallets without the dashboard?

The dashboard calls the same management endpoints, which currently require a signed-in session. Agent-facing endpoints accept pak_ API keys. Tell us if you need key-based management access.

Is there an SDK?

Use the published OpenAPI document to generate a client, the Agent CLI, or the MCP server.

Who can use AgentWallet today?

Access is invite-only while we onboard teams. Request access from any page; sign-up is enabled per email or domain once you are approved.

Do you guarantee availability in my country or a specific settlement time?

No. Supported rails, currencies and timing depend on the underlying banking, card and payout partners for your account. We confirm what is available for your account during onboarding rather than promising it upfront.

Build on programmable wallets.

Request access to get API keys and a sandbox walkthrough.