The QR rail,
on chain.
Quay turns a merchant's existing SGQR sticker into an on-chain payment terminal. Shoppers pay in any liquid Sui token; merchants settle in a stablecoin they can give to their accountant. This page is the technical and product overview.
01
What Quay is
Quay is a payment terminal that turns Singapore's SGQR rail into an on-chain checkout. A shopper scans the merchant's existing SGQR sticker, picks any token in their wallet, and the merchant receives a stablecoin. The QR doesn't change. The merchant's books don't change. Only the rail behind it does.
We are not a wallet. We are not a DEX. We are the thin layer that makes an existing QR work for crypto-native shoppers and pays out in something a Singapore SME accountant will accept.
02
How a payment works
Every Quay transaction is three steps, atomic in a single Sui programmable transaction block.
- 01
Scan
Parse the EMVCo TLV payload from the SGQR. Extract the merchant UEN, amount (if present), and currency. Look up the UEN's on-chain merchant record to resolve the payout address and preferred settlement token.
- 02
Quote
Fetch a live SGD price from Pyth. Ask Cetus Aggregator for the best route across every Sui DEX from the shopper's chosen input token to the merchant's settlement token. Show net amount, slippage, and gas before the shopper signs.
- 03
Settle
One PTB: swap input → settlement token via the aggregator route, transfer to merchant, emit an on-chain receipt event. If the swap or transfer fails, the whole transaction reverts. The shopper either pays exactly the agreed amount or pays nothing.
The merchant's phone polls for the receipt event and shows a confirmation. Median end-to-end latency on mainnet is currently under three seconds from sign to confirmation.
03
For shoppers
Pay with what you already hold.
- Any liquid Sui token. SUI, USDsui, DEEP, CETUS, and anything Cetus Aggregator can route through.
- No off-ramp. Skip the exchange-withdraw-bank-card loop. Pay the merchant directly.
- No card, no KYC at the till. You sign with your wallet. The merchant sees a receipt, not a card number.
- Non-custodial throughout. Quay never holds your funds. The swap and the transfer happen in one transaction signed by you.
- One tax event. Disposing of crypto to pay a merchant is a single taxable event in most jurisdictions, not the two-step off-ramp-then-pay most users do today.
04
For merchants
Stablecoin in. Own custody. Books unchanged.
- Settle in USDsui by default. Switch settlement token any time from the merchant dashboard.
- 90-second onboarding. Sign in with Google via Enoki zkLogin. No seed phrase, no app install, no hardware.
- No PCI scope. You never touch a card number. No acquirer, no chargebacks, no monthly terminal rental.
- Sponsored gas.Payer-side gas is sponsored so shoppers don't need SUI to pay you.
- Idle-balance yield. Optional: route idle USDsui balances into a vetted Sui yield strategy from the merchant dashboard. Toggle off any time.
- GST-ready receipts. Every transaction emits an on-chain event with UEN, SGD-equivalent at Pyth quote time, token settled, and tx digest. Export to CSV for your accountant.
05
Architecture
Quay sits on three primitives. Each is replaceable; none is custom-built where a battle-tested option exists.
Settlement
Sui
Programmable transaction blocks let us bundle swap, transfer, and receipt into one atomic call. Sub-second finality.
Routing
Cetus Aggregator
Routes the shopper's input token to the merchant's settlement token across every Sui DEX. We don't run a DEX or hold inventory.
Oracle
Pyth
Live SGD price feed for quoting the QR's fiat amount in tokens. Same feed merchants see — no spread games.
Auth
Enoki zkLogin
Google sign-in produces a Sui account without a seed phrase. Merchants onboard in under two minutes.
QR rail
EMVCo / SGQR
The merchant's existing PayNow / SGQR sticker. We parse the TLV payload — the sticker doesn't change.
Indexing
Supabase
Off-chain merchant directory, receipt indexer, and dashboard reads. All financial state of record is on-chain.
06
Security model
- Non-custodial.Quay's contracts cannot hold shopper or merchant funds. The settle PTB transfers the output of the swap straight to the merchant in the same call.
- Atomic-or-revert.Swap and transfer share a transaction. A failed route or insufficient liquidity reverts the whole call — the shopper's tokens stay where they were.
- Quoted amount is signed.The shopper signs the exact SGD-equivalent and minimum-out. Front-running or quote drift can't silently change what they pay.
- Merchant directory is on-chain.The UEN → payout-address mapping is a Sui object the merchant controls. Quay can't redirect funds.
- zkLogin keys. Merchant accounts are zkLogin addresses. Recovery is via the underlying OAuth provider; Quay never sees a private key.
07
Receipts & accounting
Every settled payment emits a PaymentReceipt event with these fields:
{
merchant_uen: "53123456A",
payer: "0x...",
merchant: "0x...",
input_token: "0x2::sui::SUI",
input_amount: "1234567890",
settled_token:"...::usdsui::USDSUI",
settled_amount:"9_870_000",
sgd_quote: "13.42",
pyth_price_id:"0x...",
tx_digest: "...",
ts_ms: 1731628800000
}The merchant dashboard reads these events and renders a daily ledger with SGD totals at quote time, settled-token totals, and tx digests for audit. CSV export is one click.
08
What’s next
- DuitNow (MY), QRIS (ID), UPI (IN), PIX (BR). Same EMVCo-style payload, different country issuer. Each is a directory + parser, not a rewrite.
- Apple ID and more OAuth providersfor shopper accounts who'd rather not install a wallet at all.
- Merchant payout schedules — auto-sweep into a treasury wallet, an off-ramp partner, or a yield strategy.
- Refunds. Merchant-signed reverse PTB against the original receipt event.
09
FAQ
Do shoppers need SUI for gas?+
No. Gas is sponsored by Quay on the payer side. The shopper signs the PTB; we pay the SUI.
What if the swap fails or there isn't enough liquidity?+
The whole transaction reverts. The shopper's tokens never leave their wallet. They see an error and can try a different input token.
What if the SGD price moves between quote and signature?+
The shopper signs a minimum-out denominated in the merchant's settlement token. If realised settlement would fall below that, the PTB reverts.
Can a merchant change their settlement token?+
Yes, from the merchant dashboard. The change is an on-chain update to their merchant record and applies to the next payment.
Is this regulated payment service activity in Singapore?+
Quay is non-custodial — funds move directly from shopper to merchant in a single transaction. We're working through the regulatory picture with counsel and will publish more as that solidifies. Nothing on this page is legal advice.
Does the merchant need to change their QR sticker?+
No. The same SGQR sticker works. Quay reads the standard EMVCo payload.
Ready to try it?
Launch the dApp on mainnet, scan any SGQR sticker, and settle in seconds.