Open Source Rust

nano-toolset

7 deterministic Nano payment tools for autonomous AI agents.
MCP over stdio and HTTP API both in one binary.

terminal
$ cargo run --release

HTTP API listening on 127.0.0.1:3123 MCP active on stdio

Why nano-toolset

Built to give agents a deterministic way to execute payment actions without framework lock-in.

Deterministic

Consistent success/data/error envelope on every response. Your agent always knows what to expect.

Framework-Agnostic

MCP for native agent frameworks. HTTP API for everything else. Python, JavaScript, curl, Rust any client works.

Fast & Lean

Written in Rust. Single binary, minimal resource usage, sub-second Nano transactions. No separate Python runtime or Docker requirement.

7 Payment Tools

Available via both MCP and HTTP API. Same tools, same data, your choice of transport.

GET

wallet.balance

/wallet/balance

Retrieve current wallet balance (NANO) and pending incoming amount.

POST

wallet.send

/wallet/send

Send Nano to any address. Sub-second finality, zero transaction fees.

POST

payment.request

/payment/request

Create a payment request with a unique transaction_id for tracking.

GET

payment.status

/payment/status/{'{transaction_id}'}

Poll payment status. Returns is_paid: true/false.

GET

credits.get

/credits

Get current credit balance and all available topup price tiers.

POST

credits.topup

/credits/topup/{'{credits_amount}'}

Top up credits. Toolset auto-sends the Nano payment.

POST

donate.send

/donate/{'{amount}'}

Donate Nano to the platform. Supports continued development.

Architecture

One process, two transports, same wallet state.

Your Agent

MCP framework, Python, JS, curl anything

MCP / stdio
HTTP :3123

nano-toolset

Rust binary wallet Nano RPC

MCP transport

  • Embedded in the same process
  • Communicates via stdin/stdout
  • Tool schemas exposed via tools/list
  • Best for MCP-native agent frameworks

HTTP transport

  • Listens on 127.0.0.1:3123
  • Standard REST GET/POST
  • Configurable via HTTP_LISTEN_ADDR
  • Best for custom/lightweight integrations

Start Building with nano-toolset

Clone and run. On first start, .env is created from .env-example if missing.