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
Late Payment Return
A Nano payment that arrives after its checkout closed goes back to its sender by itself, exactly once. Nobody has to ask for a refund, and your wallet keeps only what you sold.
How it works
One late payment, start to end
- A checkout waits.A checkout asks for the price plus a unique tail, then it waits.
In the demo below
It closes after 15 minutes, and a late claim still counts for 1 more hour.
- A payment comes that no checkout claims.It arrives too late. Or its amount matches no open checkout. Or it is a second payment, after the checkout used the first one.
- Without a return, the buyer must ask.The payment waits at your wallet address, and no order is linked to it. The buyer must write to you to get it back.
- A run finds it.Your server calls
runLateReturnsevery few minutes.What a run takes
A run reads the payments that wait at the wallet and takes those that pass every rule in the table below.
- The same amount goes back.One receive block and one send block.
How much, and to whom
The send is for the exact amount that arrived, to the address that paid.
Why it goes out once
Each send is recorded before it is published, and a later run checks the ledger before it sends anything. So it goes out once.
- What the buyer sees.The buyer's wallet shows the return as an incoming payment of the same amount. A payment from an exchange goes back to the exchange's address, not to the person's account there.
How fast
The Nano network usually confirms a send in about a second.
- What you see.One record for each return.
What the record holds
The payment’s block, the amount, the address it went to, the status and the return’s block.
Your balance
After the return, your balance is what it was before the payment.
- The limits.Never returned: a payment under Ӿ0.001, and a payment from one of your own wallets.
Not yet
Your node saw it less than 2 hours ago, it is not confirmed, or an open checkout can still claim it.
Later
Past 3 in a run, it goes at the next run. Past 30 in a day, it goes the next day (UTC).
See it on a clock
The run receives it and sends exactly Ӿ0.028100734201 back. Once.
The rules
| A payment goes back only when | Default |
|---|---|
| it is at least | Ӿ0.001 |
| your node first saw it at least | 2 hours ago |
| it is a confirmed send to your wallet | always |
| no checkout used it, and no open checkout can still claim it | your site answers |
| it isn't from you or one of your own wallets | your list |
| today's returns are under the cap | 3 per run, 30 per day |
Every send is recorded before it is published, and a later run checks the ledger before it sends anything. A lost answer, a crash or two runs at once still send the payment back once. This is the code nano133.com runs for its own till.
What it costs
- No fee: Nano has none. The buyer gets back exactly what they sent.
- Two blocks of work per return (one receive, one send), from your node's work_generate.
- The caps keep a flood of tiny payments from turning into work: at most 30 returns a day.
Security
- The key is on your server, so this wallet is a hot wallet. Keep only small amounts in it.
- Keep the key in a secret manager, never in code, the database or logs.
- Use your own Nano node: its answers decide whether money moves.
- Never run it against a test database with the real key.
Set it up with AI
Paste this into Claude, ChatGPT, Gemini or your coding agent, in your site's repository:
Add "Late Payment Return" to this site: Nano (XNO) payments that no checkout claimed must go back to their sender automatically, exactly once. Use the npm package @nano133/late-returns and follow its SPEC step by step: https://nano133.com/build/late-payment-return/SPEC.md Ask me before you choose where the wallet key lives. Never print, log or commit the key. Test with the package's mock ledger before any real payment.
The agent follows the step-by-step spec. Claude Code users can install the add-late-payment-return skill from the nano133 Kit.
For developers
Set it up by hand
- Check your site first.It pays into a wallet whose key your server holds, gives each checkout a unique amount, and records claimed payments by block hash.
- Install the package.
@nano133/late-returns - Load the wallet seed.From your secret manager. Build the signer from the package’s example.
- Point rpc at your own node.
rpc - Choose a store.The Firestore adapter, or your own for any database with transactions.
- Guard your claim.Refuse a payment that is already used, and record yours in the same transaction.
- Write isClaimable.From your open checkouts and their grace period.
isClaimable - List your own addresses in never.
never - Call runLateReturns every 5 minutes.
runLateReturns - Test it.On the package’s mock ledger, then with one real Ӿ0.001 payment.