1. Make an agent wallet#
Use a fresh key for nothing else: it is the agent's account, there are no API keys. Send it a little USDG and about 0.0005 ETH for gas on Robinhood Chain. A payment costs the amount plus the runner's fee (at most what you accept) plus a 1% Nara fee.
2. Give it to Claude (MCP)#
Nothing to install: npx runs the MCP server from the tarball this site serves. The two limits are this server's own caps, checked before any job exists.
claude mcp add nara \
--env NARA_AGENT_PRIVATE_KEY=0xYOUR_AGENT_KEY \
--env NARA_MAX_PAYMENT_USD=50 --env NARA_DAILY_LIMIT_USD=150 \
-- npx -y https://usenara.cash/pkg/nara-mcp-0.1.1.tgzThen ask in plain words: “Pay maya@example.com $40 on PayPal for the logo.” Claude confirms with you, calls nara_pay_fiat, and reports each step. Details on the MCP server page.
Or from code (SDK)#
npm i https://usenara.cash/pkg/nara-agent-0.1.1.tgzEvery option, state and error is on the TypeScript SDK page.
3. A runner takes it#
A payment needs a runner online on that rail. To try the whole loop yourself, open the runner app with another wallet, pick the app you'll pay from, and take your own job when it shows up.
4. Release it, or let it settle#
When the recipient confirms, job.release() (or nara_release) pays the runner now. Otherwise the job settles 24 h after “paid”, unless you dispute.
The MCP tools
nara_pay_fiat, nara_job_status, nara_release, nara_dispute, nara_balance, nara_rails.