MoneySwitch puts spending keys in every AI agent's hands

October 2026 saw the release of MoneySwitch v0.7.6, a self-hosted Web3 wallet designed specifically for AI agents that need to make payments. Created by hecare, the system gives each agent its own MoneyKey with daily, total and per-request spending limits, allowed hosts, expiry dates and revocation capabilities. The wallet's private key remains on the server — agents only ever see their spending key.

Per-agent budgets and approval thresholds

Each MoneyKey carries its own rules. An administrator can set daily spend caps, total budget limits and per-request thresholds. When a payment reaches the approval line, the system pauses and waits for human confirmation. Hard spending limits still apply regardless — the approval step is a safety net, not a bypass. This model lets companies issue keys to staff AI bots while retaining control over large or unexpected payments.

Traceable payments with per-key bills

Every transaction through MoneySwitch leaves a record. The Bills page shows time, key identifier, amount, URL, chain (marked mainnet or testnet), transaction hash and whether the charge resolved as yes, no or maybe. Totals separate mainnet from testnet — they never mix. This traceability extends to compatible x402 services, where payment outcomes and transaction links are available for each key.

How the AI pays

An agent makes a payment by calling POST /v1/fetch with its MoneyKey. The server responds with one of three outcomes: charged yes, charged no, or charged maybe. If the payment is over the key's approval line, the answer includes approval_required along with an approval_id and an approve_url. The agent's skill — a short paragraph pasted into the AI — tells it to hand that link to the key's owner, who can approve or deny it by typing a confirmation code. The link carries no token and opens without login; it shows the one request details and waits for the confirmation code entry.

Keys, hosts and confirmation codes

Administrators issue one key per AI. Each key comes with a confirmation code — 4 to 6 digits chosen by the user or generated randomly. This code is never part of the skill paragraph the AI sees; it's for the human holder. Five wrong codes in a row since the code was last set lock the key until a new code is set. The key itself can never approve — only the human with the code can.

Allowed hosts can only be widened, not narrowed. When an AI requests a host not on its key's list, the system returns the same approval_required response. Approving it adds that host:port permanently to the key's allowed list. The name is resolved once at approval time — private addresses, loopback or special-use addresses are refused. A key can have at most 5 new hosts waiting; additional attempts get rate-limited.

Networks: testnet and mainnet separation

MoneySwitch supports multiple blockchain networks. By default only testnets are enabled — Monad testnet, Base Sepolia and Solana Devnet. Mainnet activation (Monad mainnet, Base mainnet) requires explicit configuration and means real USDC is at stake. Each key is designated as either testnet or mainnet at issuance and never changes. A testnet key pays only on testnets; a mainnet key only on mainnets. Keys issued before v0.7.2 have no type and behave differently depending on the instance's network configuration.

Dashboard, setup and licensing

The dashboard has four pages: Wallet (create wallet, write down 12-word recovery, fund with USDC), Keys (issue per-agent keys with limits and network type), Approvals (human review of payments above threshold or to unknown hosts) and Bills (payment history with filtering and CSV export).

Setup requires Node.js 22+ and pnpm. After pnpm install and pnpm build, the server starts with node apps/server-pkg/dist/cli.js --data-dir ./data. The first start prints an administrator token and a one-time sign-in link (valid 30 minutes, single use). MONEYSWITCH_PUBLIC_URL must be set for approval links to work correctly.

Server, core and Dashboard are AGPL-3.0-only. Demo seller and qwen-agent apps are Apache-2.0. The project deliberately avoids features like fiat on/off-ramps, token issuance, bridges, user accounts, deposits or withdrawals. The administrator's own money is the only money the server spends — letting strangers spend through keys is considered custody, not relay, and carries legal licensing duties in most jurisdictions.

MoneySwitch represents a specific approach to the multi-device agent problem: each agent gets its own spending key, the administrator retains the wallet private key, and every payment is traceable and auditable. The system went into October 2026 testnet demo with two scripted HTTP clients making real testnet payments using test USDC, which has no monetary value.