{"slug": "walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions", "title": "WalletConnect in Claude Desktop: Mobile Approval for AI Agent Transactions", "summary": "WAIaaS integrates WalletConnect into Claude Desktop, enabling AI agents to request mobile approval for high-stakes blockchain transactions. The system uses a 4-tier security model—INSTANT, NOTIFY, DELAY, and APPROVAL—where the APPROVAL tier pauses transactions until the wallet owner approves via their phone. This provides a human-in-the-loop safety net while allowing routine transactions to proceed automatically.", "body_md": "WalletConnect integration in WAIaaS means your Claude Desktop agent doesn't just send transactions — it can pause and ask you to approve them from your phone. If you've been exploring MCP tools that let Claude interact with blockchains, this is the piece that closes the loop: an AI agent that executes onchain actions, governed by policies you set, with a human-in-the-loop safety net when the stakes are high enough to warrant one.\n\nGiving an AI agent a wallet is straightforward. Trusting it completely with that wallet is a different question. Most developers building onchain agents eventually hit the same wall: they want the agent to move fast on small, routine transactions, but they want a human checkpoint before anything significant happens.\n\nWAIaaS approaches this with a 4-tier security model — INSTANT, NOTIFY, DELAY, and APPROVAL — built directly into its policy engine. The APPROVAL tier is where WalletConnect comes in. When a transaction exceeds your configured threshold, the daemon holds it in a pending state and fires an approval request to the wallet owner's mobile device. You tap approve or reject. The agent waits. Nothing moves without your sign-off.\n\nThat's not a workaround. That's the intended architecture.\n\nBefore getting into WalletConnect mechanics, it helps to understand how WAIaaS fits into your Claude Desktop setup. WAIaaS is, among other things, an MCP server exposing 45 tools across wallet, transaction, DeFi, NFT, and x402 categories. From Claude's perspective, it's just another entry in `claude_desktop_config.json`\n\n.\n\nAdd this:\n\n```\n{\n  \"mcpServers\": {\n    \"waiaas\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@waiaas/mcp\"],\n      \"env\": {\n        \"WAIAAS_BASE_URL\": \"http://127.0.0.1:3100\",\n        \"WAIAAS_SESSION_TOKEN\": \"wai_sess_<your-token>\",\n        \"WAIAAS_DATA_DIR\": \"~/.waiaas\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop. Claude now has access to 45 MCP tools including `wc-connect`\n\n, `wc-disconnect`\n\n, `wc-status`\n\n, `get-balance`\n\n, `send-token`\n\n, `get-defi-positions`\n\n, `simulate-transaction`\n\n, and more. The WalletConnect tools are included in that set — they're not an add-on, they're part of the core MCP surface.\n\nUnderstanding where WalletConnect fits requires a quick look at how WAIaaS structures security:\n\n**Layer 1 — Session auth:** The AI agent authenticates with a session token (JWT HS256). This controls what the agent is allowed to request in the first place. Sessions have configurable TTL, max renewals, and absolute lifetimes.\n\n**Layer 2 — Policy engine + time delay + approval:** Every transaction runs through a 7-stage pipeline. Stage 3 is policy evaluation. If the policy engine assigns the APPROVAL tier to a transaction, it goes into a pending state. Stage 4 is the wait stage — the daemon holds the transaction until either the delay expires or the owner approves. This is where WalletConnect operates.\n\n**Layer 3 — Monitoring + kill switch:** Incoming transaction monitoring with real-time notifications, and the ability to disconnect or revoke at any time.\n\nWalletConnect is the mechanism that connects Layer 2's approval gate to the wallet owner's mobile device. The owner connects their wallet via WalletConnect, and from that point forward, APPROVAL-tier transactions surface as signing requests on their phone.\n\nThe APPROVAL tier isn't triggered automatically on every transaction — you configure it through a `SPENDING_LIMIT`\n\npolicy. Here's what a typical configuration looks like:\n\n```\ncurl -X POST http://127.0.0.1:3100/v1/policies \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-Master-Password: my-secret-password\" \\\n  -d '{\n    \"walletId\": \"<wallet-uuid>\",\n    \"type\": \"SPENDING_LIMIT\",\n    \"rules\": {\n      \"instant_max_usd\": 100,\n      \"notify_max_usd\": 500,\n      \"delay_max_usd\": 2000,\n      \"delay_seconds\": 900,\n      \"daily_limit_usd\": 5000\n    }\n  }'\n```\n\nWith these rules:\n\nThe policy engine enforces default-deny on top of this. Transactions to unwhitelisted tokens are blocked regardless of amount, unless you've explicitly configured `ALLOWED_TOKENS`\n\n. This means a misconfigured agent can't accidentally drain a wallet into an unknown contract.\n\nFrom Claude's perspective, when it calls `send_token`\n\nand the transaction hits the APPROVAL tier, the tool returns a response indicating the transaction is pending owner approval. The transaction ID is available. Claude can poll `get_transaction`\n\nto check status, or simply inform the user that approval is needed.\n\nOn the owner's side, the WalletConnect request arrives on their phone as a standard wallet signing request — the same UX they'd see for any dApp interaction. They review the transaction details and approve or reject.\n\nYou can also approve directly via the REST API using ownerAuth if you're not using WalletConnect:\n\n```\ncurl -X POST http://127.0.0.1:3100/v1/transactions/<tx-id>/approve \\\n  -H \"X-Owner-Signature: <ed25519-or-secp256k1-signature>\" \\\n  -H \"X-Owner-Message: <signed-message>\"\n```\n\nThe ownerAuth uses either ed25519 (Solana, Sign In With Solana) or secp256k1 (EVM, Sign In With Ethereum) — matching whichever chain the wallet is on.\n\nOne practical technique when building agent workflows: use the dry-run flag before sending real transactions. This lets Claude (or your code) simulate a transaction and see what the policy engine would decide — without actually executing anything.\n\n```\ncurl -X POST http://127.0.0.1:3100/v1/transactions/send \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer wai_sess_<token>\" \\\n  -d '{\n    \"type\": \"TRANSFER\",\n    \"to\": \"recipient-address\",\n    \"amount\": \"0.1\",\n    \"dryRun\": true\n  }'\n```\n\nThe MCP tool list also includes `simulate-transaction`\n\nfor the same purpose. In an agent workflow, you might instruct Claude to always simulate first and report the policy outcome before asking the user whether to proceed. This surfaces APPROVAL requirements before the user is surprised by a pending transaction.\n\nIf you're running multiple agents — say, a trading agent and a slower, more conservative treasury agent — you can configure separate wallets with separate policies and expose them as separate MCP servers:\n\n```\n{\n  \"mcpServers\": {\n    \"waiaas-trading\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@waiaas/mcp\"],\n      \"env\": {\n        \"WAIAAS_BASE_URL\": \"http://127.0.0.1:3100\",\n        \"WAIAAS_AGENT_ID\": \"019c47d6-51ef-7f43-a76b-d50e875d95f4\",\n        \"WAIAAS_AGENT_NAME\": \"trading-agent\",\n        \"WAIAAS_DATA_DIR\": \"~/.waiaas\"\n      }\n    },\n    \"waiaas-solana\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@waiaas/mcp\"],\n      \"env\": {\n        \"WAIAAS_BASE_URL\": \"http://127.0.0.1:3100\",\n        \"WAIAAS_AGENT_ID\": \"019c4cd2-86e8-758f-a61e-9c560307c788\",\n        \"WAIAAS_AGENT_NAME\": \"solana-wallet\",\n        \"WAIAAS_DATA_DIR\": \"~/.waiaas\"\n      }\n    }\n  }\n}\n```\n\nEach wallet gets its own spending policy. The trading wallet might have a higher INSTANT threshold. The treasury wallet might require APPROVAL for anything over $50. WalletConnect connections and approval flows are per-wallet — you're not sharing a single approval channel across all agents.\n\nHere's the minimal path to having WalletConnect-gated approval working in Claude Desktop:\n\n**Step 1 — Install and start WAIaaS:**\n\n```\nnpm install -g @waiaas/cli\nwaiaas init\nwaiaas start\nwaiaas quickset --mode mainnet\n```\n\n`quickset`\n\ncreates wallets and MCP sessions in one step. It prints the MCP config JSON you'll need for the next step.\n\n**Step 2 — Add to Claude Desktop config:**\n\nPaste the output from `quickset`\n\ninto:\n\n`~/Library/Application Support/Claude/claude_desktop_config.json`\n\nOr auto-register all wallets:\n\n```\nwaiaas mcp setup --all\n```\n\n**Step 3 — Create a spending limit policy with APPROVAL tier:**\n\nUse the `SPENDING_LIMIT`\n\npolicy example above. Set `delay_max_usd`\n\nto whatever threshold makes sense for your use case. Anything above that will require explicit approval.\n\n**Step 4 — Connect WalletConnect via Claude:**\n\nIn Claude Desktop, ask: *\"Connect my wallet via WalletConnect.\"* Claude calls the `wc-connect`\n\nMCP tool. Scan the QR code with your mobile wallet app.\n\n**Step 5 — Test the flow:**\n\nAsk Claude to simulate a large transfer using the `simulate-transaction`\n\ntool. Confirm the policy would trigger APPROVAL. Then try a real transaction above your threshold and watch the mobile approval request arrive.\n\nThe WalletConnect approval flow is one piece of a larger capability surface. With WAIaaS's 45 MCP tools connected, Claude can:\n\nThe WalletConnect tools (`wc-connect`\n\n, `wc-disconnect`\n\n, `wc-status`\n\n) are the bridge that keeps you in the loop for the high-stakes subset of those actions. Everything else can run autonomously within the policy guardrails you've defined.\n\nThe full list of 21 policy types — including DeFi-specific controls like `LENDING_LTV_LIMIT`\n\n, `PERP_MAX_LEVERAGE`\n\n, and `VENUE_WHITELIST`\n\n— is documented in the OpenAPI reference at `http://127.0.0.1:3100/reference`\n\nonce your daemon is running. For teams deploying WAIaaS in production, the Docker Secrets overlay and auto-provision flow handle credential management without storing passwords in environment variables.\n\nIf you're building agents that need to interact with blockchains and you want a clear approval boundary between \"the agent decides\" and \"I decide,\" WAIaaS's WalletConnect integration through MCP is worth an afternoon of exploration.", "url": "https://wpnews.pro/news/walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions", "canonical_source": "https://dev.to/walletguy/walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions-27ho", "published_at": "2026-07-04 09:03:36+00:00", "updated_at": "2026-07-04 09:18:38.643574+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools"], "entities": ["WalletConnect", "Claude Desktop", "WAIaaS", "MCP"], "alternates": {"html": "https://wpnews.pro/news/walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions", "markdown": "https://wpnews.pro/news/walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions.md", "text": "https://wpnews.pro/news/walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions.txt", "jsonld": "https://wpnews.pro/news/walletconnect-in-claude-desktop-mobile-approval-for-ai-agent-transactions.jsonld"}}