About agent-wallet
agent-wallet is an MCP server package for governing agents’ USDC wallet activity with spending policies and an immutable audit trail. It is intended for teams that need to constrain and verify agent payments.
Key features
- 01Wallet provisioning with spending policies
- 02Governed USDC payments and receipts
- 03Governed payment acceptance
- 04Runtime limits and allowlist updates
- 05Tamper-evident receipt-chain audits
Use cases
- 01Set daily and per-call spending caps
- 02Authorize agent payments against policy
- 03Record denied payment attempts
- 04Verify an audit trail for wallet activity
MCP support
Exposes five MCP tools for wallet provisioning, governed spending and receiving, policy updates, and receipt audits.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
5Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| label | string | No | Human-readable label |
| network | string | No | Chain network (default: base) |
| provider | enum | Yes | Wallet providercoinbase | x402 | local |
| wallet_id | string | No | Optional custom wallet ID |
| daily_cap_usdc | number | No | Daily spend cap in USDC (default: 500) |
| per_call_cap_usdc | number | No | Per-transaction cap in USDC (default: 100) |
| allowed_recipients | array | No | Optional allowlist of recipient wallet addresses |
Details
From the project READMEdingdawg-agent-wallet — live demo
Shows governed agent wallet enforcement in action: allow, deny, step-up, allowlist — all in 5 seconds. No API keys. No blockchain required.
What it demonstrates
▶ provision_wallet
wallet_id: demo-wallet-abc123
daily_cap: $200 USDC
per_call_cap: $100 USDC
▶ governed_spend — $25 USDC (allowed)
✓ AUTHORIZED
receipt_id: 6aba84a6-...
daily_remaining: $175 USDC
next_step: wallet.sendToken({ assetId: "usdc", amount: "25", destination: "0xVendorABC123" })
▶ governed_spend — $150 USDC (exceeds per-call cap)
✗ DENIED
reason: Amount 150 USDC exceeds per-call cap 100 USDC
receipt_id: cd7a7aa8-... (denial is logged too)
▶ governed_spend — $75 USDC (step-up required)
⚠ STEP-UP REQUIRED
reason: Amount 75 USDC > step-up threshold 50 USDC — MFA required
fix: Pass approval_token from your authorization flow
▶ governed_spend — unknown recipient (not in allowlist)
✗ DENIED
reason: Recipient 0xUnknownAddress not in allowlist
▶ wallet_audit
chain_verified: true ✓
total_receipts: 5
[17:02:18] DENY $10 USDC governed_spend
[17:02:18] DENY $75 USDC governed_spend
[17:02:18] DENY $150 USDC governed_spend
[17:02:18] ALLOW $25 USDC governed_spend
[17:02:18] ALLOW provision_wallet
Every action — allow AND deny — produces an immutable receipt. chain_verified: true means the full chain is tamper-evident — any modification is detectable.
Run it
git clone https://github.com/DingDawg/agent-wallet-demo
cd agent-wallet-demo
npm install
node demo.mjs
The package
dingdawg-agent-wallet — 5 MCP tools that wrap any agent wallet with policy enforcement and an immutable audit trail.
npm install dingdawg-agent-wallet
| Tool | What it does |
|---|---|
provision_wallet | Create wallet with spend policy (daily cap, per-call cap, allowlist) |
governed_spend | Policy check → authorize → immutable receipt |
governed_receive | Accept payment with tamper-evident receipt |
wallet_policy | Update limits and allowlists at runtime |
wallet_audit | Full receipt chain — chain_verified: true |
Coinbase AgentKit gives your agent a wallet. DingDawg gives it a conscience.
Why this matters
AI agents can now hold USDC and spend autonomously. The infrastructure exists. What doesn't: who enforces what the agent is allowed to spend, on what, for whom — and proves it happened correctly.
governed_spendauthorizes then returns the exactagentkit_callSDK method to execute on-chain- Every denial is logged — you can prove what your agent didn't do
chain_verified: truemeans the audit trail is tamper-evident — any modification is detectable
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.