Add a zero-fee, single-block-final settlement method (Nano/XNO) to the ATS settlement_methods enum
What
The ATS schema's pricing.settlement_methods enum (schemas/ats-schema.json) today lists
["x402", "ap2", "stripe", "paypal", "usdc", "usdt", "credit_card", "invoice_net30"]. Every one of
these carries a per-transaction processing fee or a settlement-time cost (2.9% + $0.30 cards; USDC
network + facilitator gas; x402 facilitator fee; net-30 waits).
This issue proposes adding nano (the Nano / XNO rail) as an allowed settlement method: a feeless,
single-block-final settlement option that fits the per-query micropayment case the spec already names.
Why it fits this spec (in its own terms)
Issue #1 correctly observes that "Stripe is structurally mismatched to per-query micropayments … at
$0.02–$0.05 per call, the fee structure makes the economics unworkable." The prepaid-credit pattern
works around that by moving the human-to-platform billing off the per-query path. A zero-fee,
single-block-final settlement method resolves the same economics directly: there is no per-transaction
fee floor to exceed, so a $0.02 data query settles for the amount itself, with no prepaid wallet to
provision, no top-up to manage, and nothing to reconcile later.
Because _select_settlement_method in reference/acp/evaluator.py picks the intersection of the
provider-offered settlement_methods and the agent's preferred_settlement_methods, adding nano is
an additive, non-breaking change: providers that do not offer it are unaffected, and an agent that does
not prefer it never selects it. The spec is payment-rail agnostic; this adds one rail to that list.
The measured datapoint (not an assertion)
- Protocol fee: zero — no network or validator fee (docs.nano.org/protocol-design/orv-consensus/)
- Finality: single block — settlement is final in one block (same-block finality, ~0.2–0.3s), no soft-ack
window, no refund/cancellation window for the payer
- Settlement: direct on-ledger; a facilitator is optional, not required
- A live
exact-scheme x402 implementation for the Nano rail already exists and is published:
github.com/x402nano/exact (TypeScript) and PyPI x402-nano-exact; a live facilitator advertises
nano:mainnet with scheme exact at facilitator.pursekeeper.dev/supported
All four citations verified live (HTTP 200) at the time of writing.
Proposed change (smallest diff)
Add "nano" to the settlement_methods enum in schemas/ats-schema.json, e.g.:
"enum": ["x402", "ap2", "stripe", "paypal", "usdc", "usdt", "credit_card", "invoice_net30", "nano"]
Optionally, note in the field description that nano is a feeless, single-block-final rail offered by
providers that self-settle on the Nano ledger.
Open question for maintainers
Does the settlement-methods enum intend to name only legacy/bank-rail methods, or is a self-settled,
feeless, single-block-final crypto rail a valid member of the set? If the enum is meant to be
rail-complete, nano is the one rail on the spectrum (fee, finality) that none of the current entries
covers.
Add a zero-fee, single-block-final settlement method (Nano/XNO) to the ATS settlement_methods enum
What
The ATS schema's
pricing.settlement_methodsenum (schemas/ats-schema.json) today lists["x402", "ap2", "stripe", "paypal", "usdc", "usdt", "credit_card", "invoice_net30"]. Every one ofthese carries a per-transaction processing fee or a settlement-time cost (2.9% + $0.30 cards; USDC
network + facilitator gas; x402 facilitator fee; net-30 waits).
This issue proposes adding
nano(the Nano / XNO rail) as an allowed settlement method: a feeless,single-block-final settlement option that fits the per-query micropayment case the spec already names.
Why it fits this spec (in its own terms)
Issue #1 correctly observes that "Stripe is structurally mismatched to per-query micropayments … at
$0.02–$0.05 per call, the fee structure makes the economics unworkable." The prepaid-credit pattern
works around that by moving the human-to-platform billing off the per-query path. A zero-fee,
single-block-final settlement method resolves the same economics directly: there is no per-transaction
fee floor to exceed, so a $0.02 data query settles for the amount itself, with no prepaid wallet to
provision, no top-up to manage, and nothing to reconcile later.
Because
_select_settlement_methodinreference/acp/evaluator.pypicks the intersection of theprovider-offered
settlement_methodsand the agent'spreferred_settlement_methods, addingnanoisan additive, non-breaking change: providers that do not offer it are unaffected, and an agent that does
not prefer it never selects it. The spec is payment-rail agnostic; this adds one rail to that list.
The measured datapoint (not an assertion)
window, no refund/cancellation window for the payer
exact-scheme x402 implementation for the Nano rail already exists and is published:github.com/x402nano/exact (TypeScript) and PyPI
x402-nano-exact; a live facilitator advertisesnano:mainnetwith schemeexactat facilitator.pursekeeper.dev/supportedAll four citations verified live (HTTP 200) at the time of writing.
Proposed change (smallest diff)
Add
"nano"to thesettlement_methodsenum in schemas/ats-schema.json, e.g.:Optionally, note in the field description that
nanois a feeless, single-block-final rail offered byproviders that self-settle on the Nano ledger.
Open question for maintainers
Does the settlement-methods enum intend to name only legacy/bank-rail methods, or is a self-settled,
feeless, single-block-final crypto rail a valid member of the set? If the enum is meant to be
rail-complete,
nanois the one rail on the spectrum (fee, finality) that none of the current entriescovers.