Gantry
Live on Base Sepolia · NTU InnovateX 2026

One rail, every payer.

A merchant integrates once and gets paid by anyone: a person scanning a printed QR, or an AI agent paying over x402. Both are the same on-chain payment intent. Pay in dollars or euros; the shop is always paid in Singapore dollars.

Two separate surfaces. Neither one navigates into the other.

The idea in three lines
  1. 01

    A payment is an intent: merchant M requests S$X.

  2. 02

    A QR code and an HTTP 402 are two encodings of that same intent, so one URL can be both.

  3. 03

    One contract consumes both, so a hawker and an API get paid the same way.

Track 1: Payments & Financial Infrastructure. Contracts deployed and verified; x402 traffic an unmodified client pays.

How it works

Two doors, one settlement
Human door
A printed QR code

Tourist scans, signs once, pays no gas. No app, no Singapore bank account.

EIP-3009 authorization
Agent door
An HTTP 402

Software pays inside on-chain limits its owner set. Agents can't open bank accounts.

x402 v2 · gantry-pbm
Both settle through
One contract

USDC or EURC in, swapped atomically. The merchant receives XSGD, minus 0.5%.

One URL serves both. /pay/<handle>?sgd= redirects a person into the payer app and answers a machine with the same 402.

An agent can find the shop, too. /discovery/resources lists every registered merchant as a payable resource, so nobody has to pick one for it.

Who can pay

PayNow is free and genuinely excellent, for the people it can reach. The gap is everyone else.

  • PayNowResidents only

    Free domestically, and genuinely excellent, for the people it can reach.

  • CardsResidents + tourists

    Works for a tourist, at around 2.8% in merchant fees. Cannot serve software.

  • GantryResidents + tourists + agents

    One integration reaches all three. A tourist pays in dollars or euros, software pays over x402, and the shop is paid in XSGD minus 0.5%.

    Agent spending stays inside on-chain allowances its owner set: daily caps, category allowlists, expiry. Denials are contract reverts rather than backend checks, and anyone can re-derive one from public chain state.

Rings are equal width, not to scale. PayNow also reaches countries with a live cross-border linkage.

When the shop is paid

GantryCore pays the merchant inside the same transaction that takes the payer's money. There is no payout batch to wait for, because there is no payout step.

~2 secondsGantry · same transaction
43,000× longer
1–3 daysCards · T+1 to T+3

Bars not to scale. Gantry's side is structural: one transaction, one Base block. T+1 to T+3 is a benchmark, not a measurement.

What it costs the shop

0.5%, skimmed on-chain in the settling transaction. It is not a published price we could quietly move. The gap widens with whatever the shop actually takes.

CardsGantry
S$0S$50S$100S$150S$46 a month keptS$140S$25S$0S$2,000S$5,000Monthly volume taken through the shop

Rate only: excludes cards' fixed per-transaction fee and our relayer's gas. 2.8% is this project's benchmark, not an audited figure.

Time to start accepting
2 min

One form (handle, payout address, category), and the shop is registered on-chain and printing its QR. No terminal, no underwriting, no bank visit, and no approval step for us to grant — the registry is permissionless, so the form on this site is open to anyone. We do it on stage, for a shop that did not exist when the demo started.

Contracts

Deployed and verified on Base Sepolia

What isn't real, said plainly

Payments themselves settle in real Circle stablecoins — USDC or EURC, whichever the payer chooses: they sign an EIP-3009 authorization against Circle's own contract. These are the parts that are not real.

XSGD is a mock

MockXSGD is the only mocked token in the system, and it has to be: XSGD exists on no testnet.

The FX rate is owner-set

One address sets it, and nothing arbitrages it. The interface it sits behind is built to be swapped for real liquidity.

One key does everything

A single trusted relayer pays every gas fee and runs the facilitator.

Merchants are self-attested

Categories carry no KYC, and the back-office has no login: anyone with the URL can read a shop's takings. Changing them is a different matter, and both writes are signed by the payout key.

There is no off-ramp

Payouts stay in XSGD on a testnet. Nothing here reaches a bank account.

For shops
Merchant app

Live settlements, transaction history, payouts, your printed QR, and the public shop identity payers see.

Open →
For payers
Payer app

Scan, pay, and keep the receipt. Your history, the places you've paid, and the agents spending on your behalf.

Open →
Gantry · a hackathon prototype. Production would operate with a licensed PSP under Singapore's Payment Services Act.Agent reasoning runs on AIsa's gateway. Every payment settles on Gantry's own rail.
Base Sepolia · eip155:84532