nano-pay — Claude Code MCP server: API payments and setup
This MCP server pays x402 APIs with Nano from a local wallet and can run merchant endpoints that verify and settle incoming payments.
claude mcp add nano-pay -- uvx feeless402What nano-pay does
nano-pay gives an agent a self-custodied Nano (XNO) wallet and an x402 payment client. It reads the required price, applies a cap, signs a send block on the local machine, then retries the request with payment headers. The quote command inspects a price without paying, while nano-pay serve supports paid endpoints with on-ledger verification and settlement.
The seed stays in ~/.nano-pay/wallet.json with 0600 permissions. A Nano node is not needed: the client uses public RPC failover, and signing plus proof of work happen locally. The package needs Python 3.10+, while NanSwap top-ups require NANSWAP_API_KEY. The project is Beta and not audited, so the wallet should contain working capital only.
Each payment is recorded in pending-payments.json, allowing the same signed block to be presented again after a failed response. The balance is refreshed from the network before operations. Do not issue concurrent payments from one wallet, since competing blocks can invalidate one of them.
What it helps with
- pay an x402 API request from an agent
- inspect an endpoint price before spending
- top up the Nano wallet through NanSwap
- serve an API endpoint that accepts Nano payments
- recover a payment after a failed response
Example prompts for the agent
- Pay for
nano-gpt.com/api/v1/chat/completionsand report whether the payment is confirmed on the ledger. - Check the x402 price for this endpoint without making a paid request.
- Run
nano-pay servefor a paid endpoint and verify the Nano settlement.
How to install nano-pay
Platform CLI
claude mcp add nano-pay -- uvx feeless402uvx runs the command named after the package; if the README names another one, use uvx --from feeless402 <command>
Platform CLI
codex mcp add nano-pay -- uvx feeless402uvx runs the command named after the package; if the README names another one, use uvx --from feeless402 <command>
Config file
{
"mcpServers": {
"nano-pay": {
"command": "uvx",
"args": [
"feeless402"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from feeless402 <command>
Config file
{
"servers": {
"nano-pay": {
"type": "stdio",
"command": "uvx",
"args": [
"feeless402"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from feeless402 <command>
Platform CLI
gemini mcp add nano-pay uvx feeless402uvx runs the command named after the package; if the README names another one, use uvx --from feeless402 <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about nano-pay
How do I install nano-pay in Claude Code?
Run claude mcp add nano-pay -- uvx feeless402.
What does nano-pay do?
It provides an agent with a local Nano wallet and pays x402 API requests. It can also verify and settle payments for merchant endpoints.
What does nano-pay require to work?
The package requires Python 3.10+. Set NANSWAP_API_KEY for NanSwap top-ups; a separate Nano node is not required.