Back to Directory/Developer Tools

io.github.dingdawg/agent-wallet

Governed USDC wallet for AI agents — policy gates, spending caps, and Ed25519-signed receipts.

Developer ToolsJavaScriptv1.0.6

dingdawg-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
ToolWhat it does
provision_walletCreate wallet with spend policy (daily cap, per-call cap, allowlist)
governed_spendPolicy check → authorize → immutable receipt
governed_receiveAccept payment with tamper-evident receipt
wallet_policyUpdate limits and allowlists at runtime
wallet_auditFull 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_spend authorizes then returns the exact agentkit_call SDK method to execute on-chain
  • Every denial is logged — you can prove what your agent didn't do
  • chain_verified: true means the audit trail is tamper-evident — any modification is detectable

npm · DingDawg

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y dingdawg-agent-wallet

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-dingdawg-agent-wallet": {
      "command": "npx",
      "args": [
        "-y",
        "dingdawg-agent-wallet"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

dingdawg-agent-walletnpm

Compatible MCP Clients

io.github.dingdawg/agent-wallet works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More