Build · nano133 Kit Beta. Complete for its scope, tests and device tests pass, used on nano133.com 2+ weeks with no money bug, docs complete, no known critical issue.Use at your own risk, for education. Real Nano moves: keep amounts small.What the stages mean
Nano Checkout
Take Nano on your own site: each checkout asks for its own exact amount, and your site checks the payment on a Nano node in about a second. The money goes straight to your wallet, with no fee and no key on your server.
How it works
One checkout, start to end
- A price becomes an exact amount.The price plus a few last digits that no other open checkout has.
Why no memo
The address is always yours. The last digits tell the payments apart, so no memo is needed.
- The buyer scans and sends.The QR code holds your address and the exact amount.
Show every digit
The buyer’s wallet reads the code, and the buyer sends. An amount that is cut matches no checkout.
- The network confirms it.The computers of the Nano network vote on the payment. It is confirmed, usually in under a second.
- Your site sees it.Your server asks your node for a confirmed payment of exactly this amount to your address.Good to know. An order is marked paid only when the page asks before the end of the grace. If the buyer pays and closes the page, the order is marked paid only when the page asks again in that time.The search finds a payment that waits at your address. A wallet app that receives it first hides it from the search.
How the page asks
While the payment page is open, it asks your server every 2 seconds. When there is such a payment, the order is paid: your server signs a receipt, and your site gives it to the browser that started the checkout.
- A wrong amount, or a late payment.Any other payment matches no checkout, and nothing is marked paid.
When a payment counts
A payment counts only when Default it is exactly the checkout's amount price + a unique tail it goes to your address always your node confirmed it always your node first saw it while the checkout was open, or in its grace 15 min + 1 hour no other checkout used it one payment, one checkout It can go back by itself
With Late Payment Return, such a payment of at least Ӿ0.001 goes back to its sender by itself, exactly once, after about 2 hours. That tool needs a wallet whose key your server holds. Without it, the payment waits at your address.
- No fee, no payment company.The money goes straight to your wallet.
No account, no key
You need no account at a payment company, and your server holds no wallet key.
What it costs you
- No fee: Nano has none. A 1¢ sale pays you 1¢.
- No proof of work on your side: you only read the ledger. The buyer’s wallet does the work for its send.
- A few node calls per claim. Rate-limit the claim route per visitor.
- Checkout 1
Ӿ0.027800000000000000000000734201 - Checkout 2
Ӿ0.027800000000000000000000018563 - Checkout 3
Ӿ0.027800000000000000000000900017
Try it: three buyers, one 1¢ item. Each checkout asks for its own exact amount; the last digits (bold) are different.
It runs on this site today: the 1¢ arcade rounds, Unlock, Tips and Fans all take payments this way.
Want to understand every step, or build it yourself? Read the guide Accept Nano payments without a processor.
Security
- No key on your server. Checkouts only need your address; nobody can take money from your site.
- Use your own Nano node: its answers decide what you credit. When it doesn't answer, nothing is credited.
- Take prices from your server, never from the browser.
- Receipts are signed with your secret. Keep it in a secret manager, and give a receipt only to the browser that started the checkout.
Set it up with AI
Paste this into Claude, ChatGPT, Gemini or your coding agent, in your site's repository:
Add "Nano Checkout" to this site: let people pay in Nano (XNO) with a unique amount per checkout, check the payment on a Nano node, and give a signed receipt. Use the npm package @nano133/checkout and follow its SPEC step by step: https://nano133.com/build/nano-checkout/SPEC.md Ask me for the receiving address and the node to use. Never print, log or commit the receipt secret. Test with the package's mock ledger first.
The agent follows the step-by-step spec. Claude Code users can install the add-nano-checkout skill from the nano133 Kit.
For developers
Set it up by hand
- Choose your receiving address and your node.
- Install the package.
@nano133/checkout - Choose a store.The Firestore adapter, or your own for any database with transactions.
- Create a receipt secret.In your secret manager.
RECEIPT_SECRET - Add a checkout route.The price from your server, a unique amount, rate-limited.
POST /api/checkout - Show the payment.A QR code, an “Open in wallet” link, the exact amount and your address.
- Add a claim route.The page polls it every 2 seconds. Answer 503 when your node doesn’t answer.
POST /api/claim - Check the receipt on the server.Before you show what was paid for.
- Test it.On the package’s mock ledger, then with one real payment.