Sui payments
Accept native SUI and Sui coins (e.g. USDC) on devnet, testnet, and mainnet through hosted checkout, payment links, and the NodeRails SDK — with gas-sponsored one-time payments and subscription wallets.
Try the demo
apps/buy-me-coffee). It creates Sui-only checkout sessions and receives payment.captured webhooks at /api/webhooks/noderails.Chain IDs
Sui uses NodeRails-specific numeric chain IDs (same pattern as Solana cluster IDs). Pass these in allowedChains on checkout sessions, payment links, invoices, and payment intents.
| Network | Chain ID | Native token key |
|---|---|---|
| Sui Devnet | 201 | SUI-201 |
| Sui Testnet | 202 | SUI-202 |
| Sui Mainnet | 203 | SUI-203 |
Merchant setup
- In the merchant dashboard, enable Sui on your app (Settings → Chains).
- Connect a Sui settlement wallet (Wallet Standard extension such as Sui Wallet or Slush).
- Ensure SUI and/or USDC (or other enabled coins) are toggled for the Sui network you use.
- Register Sui escrow object IDs in admin after publishing the Move package (platform ops).
Wallet address format
0x (e.g. 0xabc…def). They are not EVM 0x 20-byte addresses.SDK: Sui-only checkout session
Restrict checkout to Sui testnet and USDC + native SUI using allowedChains and allowedTokens:
Customer checkout flow
- Customer opens the hosted payment page.
- Connects a Sui wallet (Wallet Standard).
- For one-time payments, approves a gas-sponsored capture transaction (user signs; platform sponsors gas via MTXM).
- For subscriptions, customer funds a NodeRails subscription wallet on Sui, then renewals are captured from that wallet.
- NodeRails sends
payment.capturedto your webhook when escrow holds funds.
Webhooks
Sui payments use the same webhook events as EVM and Solana. Register your endpoint in the dashboard (Settings → Webhooks) and verify signatures with your signing secret (whsec_…).
Subscribe at minimum to payment.captured. Use Webhooks for the full event list and signature details.
Sponsored checkout API (payment-ui / custom integrators)
If you build a custom checkout UI (not hosted pay.noderails.com), the server exposes Sui sponsor endpoints used by payment-ui. These are called after authorize returns captureData with chainType: "SUI" and sponsored: true.
/checkout/sui/sponsor-signCheckout session context (public checkout API)Parameters
checkoutSessionIdstringrequiredOpen checkout session UUID
chainIdnumberrequired201, 202, or 203
senderAddressstringrequiredCustomer Sui address
transactionKindBase64stringUnsigned PTB kind bytes (from authorize)
transactionBase64stringPartial/full unsigned PTB (alternative to kind)
walletSetupbooleanSet true for subscription wallet setup (higher gas budget)
/checkout/sui/execute-sponsoredAfter user signs sponsored PTB (public checkout API)Parameters
checkoutSessionIdstringrequiredCheckout session UUID
chainIdnumberrequired201, 202, or 203
packageIdstringrequiredPublished escrow package ID
transactionBlockBase64stringrequiredFull PTB from sponsor-sign
sponsorSignaturestringrequiredSponsor signature from sponsor-sign
userSignaturestringUser Ed25519 signature when dualSignRequired
dualSignRequiredbooleanFrom sponsor-sign response
Gas sponsorship operations
Subscriptions on Sui
Subscriptions on Sui use an on-chain subscription wallet per customer. The customer authorizes and funds the wallet once; renewals are captured from that wallet without a new wallet connection each cycle. Enable Sui on your app and create subscription checkout sessions or payment links with a product plan as usual.
Token keys and coin types
- Native SUI: token key
SUI-202(testnet), contractnativein API responses. - USDC on Sui: token key
USDC-202;contractAddressis the full Move coin type (e.g.0x2::sui::SUIor USDC type string from admin).