mcpbeat Sign in

x402 Wallet MCP Server

local only

x402 Wallet runs on your own machine — the client starts it, so there is no endpoint to ping. 205 installs a week from npm. Last commit 18 Sep 2026.

Self-custodial x402 wallet for AI agents: pay any service in USDC or $THREE from your own key.

Installs per day peak 164 · avg 19 · +418% w/w
a month agotoday
205
Installs / week
npm · @three-ws/x402-mcp
194
Stars
0 open issues
18 Sep 2026
Last commit
0 releases in 90 days
Apache-2.0
License
JavaScript

What the code does

We read the source, 19 h ago · rules 3dff92dd89df

A tool parameter reaches a dangerous call

A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.

A tool parameter reaches a file or shell call animation_signature.clip → packages/render/bin/tty.js:150, apply_animation.animation → packages/render/bin/tty.js:78
        await fs.writeFile(out, bytes);
Evidence

Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.

Reaches cloud metadata service api/_lib/gcp-auth.js:91
        'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token',
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Builds a file path from a variable api/sitemap/[type].js:77, chat/vite.config.js:18
                return JSON.parse(await readFile(path.join(base, rel), 'utf8'));
    const child = spawn(command[0], command.slice(1), { stdio: 'inherit', shell: false });
Executes code built at runtime packages/blender-mcp/src/py/runner.py:716
        exec(compile(job["code"], "<three-ws-blender-mcp>", "exec"), namespace)
Builds a database query by concatenation packages/motion/src/solve.js:122
    const drop = STANDING_HIP_HEIGHT * (root.height - 1) + root.rise;
            if (reset) { state.cursor = null; state.total = 0; grid.innerHTML = skeletons(); stateEl.hidden = true; }
        `https://api.telegram.org/bot${cfg.token}/sendMessage`,
Long encoded blob in source api/_lib/x402/ring-catalog.js:56
    'UklGRmQBAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YUABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA…
Page loads a third-party script pages/a-me.html:18, pages/agi.html:52
    <script type="module" src="https://three.ws/agent-3d/latest/agent-3d.js"></script>

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

A tool parameter here reaches a dangerous call

That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add x402-mcp -- npx -y @three-ws/x402-mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "x402-mcp": {
      "args": [
        "-y",
        "@three-ws/x402-mcp"
      ],
      "command": "npx"
    }
  }
}
~/.codex/config.toml
[mcp_servers.x402-mcp]
command = "npx"
args = ["-y", "@three-ws/x402-mcp"]
.cursor/mcp.json
{
  "mcpServers": {
    "x402-mcp": {
      "args": [
        "-y",
        "@three-ws/x402-mcp"
      ],
      "command": "npx"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "x402-mcp": {
      "args": [
        "-y",
        "@three-ws/x402-mcp"
      ],
      "command": "npx"
    }
  }
}

This one needs environment variables set before it will start: SOLANA_SECRET_KEY (Base58 (or JSON byte-array) Solana secret key that signs payments and holds the USDC. Not needed for the read tools (find_services, inspect_endpoint, or x402_wallet with an explicit address). Treat like cash.), SOLANA_RPC_URL (Solana mainnet RPC endpoint. Defaults to the public cluster — bring your own (Helius / Quicknode / Triton) for production traffic.), MAX_PAY_USD (Max USD a single pay_and_call may spend. Bounds a runaway or injected payment.), REQUIRE_CONFIRM (When on (default), pay_and_call refuses until re-issued with confirm:true. Set 0/false to disable the gate.), THREE_WS_BASE (Base URL of the three.ws API that serves /api/bazaar/search for find_services. Override only when self-hosting.). The author declared them in the registry entry; get the values from the project itself.

Alternatives to x402 Wallet

same job, measured the same way
three.ws Agent Wallet
by nirholas

Give your AI agent an x402 wallet: discover and pay for services in USDC, or earn from your own.

answering
Agentpay
by up2itnow0822

Non-custodial x402 payment MCP server for AI agents. Wallets and payments on 17 chains.

121 installs/wk local only
Clawpay
by up2itnow0822

Non-custodial x402 payment MCP server for AI agents. Wallets, payments, and commerce on 17 chains.

local only
Aeron Wallet
by aeronlabs

Non-custodial agent wallet for Robinhood Chain. Pays x402 requests in USDG.

58 installs/wk local only
Xenarch MCP
by xenarch-ai

Xenarch — x402 MCP server for AI agent payments. Non-custodial, USDC on Base L2.

120 installs/wk local only
XDC AI
by 0xbeny

Wallet and payments for AI agents: auto-pay x402 APIs in USDC on XDC, within on-chain limits.

answering
Xpay
by xona-labs

Xona Wallet: agent wallet for AI agents. x402 payments, AgenC hires, 20k+ services

335 installs/wk local only
SaturnZap
by lqwdtech

Non-custodial Bitcoin Lightning (LDK) wallet for AI agents — pays L402 APIs from CLI or MCP.

49 installs/wk local only

x402 Wallet — questions

Answers built from our own checks of this server.

Why is there no uptime for x402 Wallet?
x402 Wallet runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package @three-ws/x402-mcp was installed 205 times last week.
How do I connect x402 Wallet?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It runs locally, so the command pulls @three-ws/x402-mcp straight from npm; nothing to host, nothing to sign up for.
How many people use x402 Wallet?
The npm package @three-ws/x402-mcp was installed 205 times in the last week. Week over week that is +418%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is x402 Wallet open source?
Yes — it is published under the Apache-2.0 licence, written in JavaScript and 194 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.