nano133

Build · nano133 Kit

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

  1. 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.

  2. 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.
  3. 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.
  4. A run finds it.Your server calls runLateReturns every 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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 whenDefault
it is at leastӾ0.001
your node first saw it at least2 hours ago
it is a confirmed send to your walletalways
no checkout used it, and no open checkout can still claim ityour site answers
it isn't from you or one of your own walletsyour list
today's returns are under the cap3 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

Security

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

  1. 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.
  2. Install the package.@nano133/late-returns
  3. Load the wallet seed.From your secret manager. Build the signer from the package’s example.
  4. Point rpc at your own node.rpc
  5. Choose a store.The Firestore adapter, or your own for any database with transactions.
  6. Guard your claim.Refuse a payment that is already used, and record yours in the same transaction.
  7. Write isClaimable.From your open checkouts and their grace period.isClaimable
  8. List your own addresses in never.never
  9. Call runLateReturns every 5 minutes.runLateReturns
  10. Test it.On the package’s mock ledger, then with one real Ӿ0.001 payment.