What it does
- Verifies that a payment payload is well-formed and valid for the stated requirements — signature, amount, recipient, and network.
- Settles by submitting the transaction to Sui and waiting for finality, then returns the transaction digest.
- Sponsors gas for every supported Sui coin, so buyers never need to hold SUI.
- Never custodies funds. Settlement goes directly from the buyer to the seller’s
payToaddress. The facilitator only relays and pays for execution.
Endpoints
Returns service metadata and the list of available endpoints.
Checks a signed payment against payment requirements without settling. Body:
{ paymentPayload, paymentRequirements }. Returns whether the payment is valid.Submits a verified payment to Sui and waits for finality. Body:
{ paymentPayload, paymentRequirements }. Returns the settlement result, including the transaction digest.Returns the schemes, networks, and tokens the facilitator supports.
HTTPFacilitatorClient from @x402/core/server does it for you:
Supported networks
The facilitator registers theexact scheme for sui:mainnet and sui:testnet. See Supported networks for the full token list.
Gas sponsoring on Sui
Gas sponsoring is how the facilitator lets buyers pay without holding SUI — and Sui’s gas model makes it fit the x402 request/response flow exactly. A Sui transaction names a sender and a gas owner separately. For a sponsored payment the buyer is the sender and the facilitator is the gas owner. Sui also supports address-balance sponsorship: the gas owner pays from its address balance instead of pinning specific gas coin objects. In the SDK that’s an empty gas payment —setGasPayment([]) (Mysten docs).
Because no gas coin objects are baked into the signed bytes, the buyer signs first and the facilitator co-signs the same bytes afterward — fully asynchronous. There’s no pre-flight round trip to reserve gas, no coin-object equivocation to manage, and no Enoki in the loop. It maps onto x402 one-to-one:
Facilitator advertises the sponsor
/supported returns the facilitator’s gasOwner address and gasBudget in the requirements’ extra. The facilitator can rotate across a pool of sponsor addresses to spread load.Buyer builds and signs
The buyer builds a PTB that transfers the payment with
0x2::balance::send_funds, sets itself as the sender, sets the facilitator as the gas owner, and leaves the gas payment empty. It signs the bytes and returns them in the x402 payload — without contacting the facilitator first.Facilitator verifies
/verify checks the PTB shape — asset, amount, recipient, the advertised gas owner, and an empty gas payment — then simulates it on-chain.Sui’s default stablecoins transfer gasless — for those the buyer’s PTB carries a zero gas budget, so there’s nothing to sponsor. For any other supported coin, the facilitator’s address balance covers execution. See Supported networks.
Self-hosting
The facilitator is open source and built on@tentaclepay/sui-x402. To run your own, register the Sui exact scheme on an x402Facilitator with a FacilitatorSuiSigner — the address that sponsors gas and co-signs transactions:
FacilitatorSuiSigner whose getAddresses() returns several sponsor addresses; the scheme picks one per request.
Expose /verify, /settle, and /supported over HTTP, and point your sellers’ HTTPFacilitatorClient at your deployment.
Most teams don’t need to self-host. The hosted facilitator at
facilitator.tentaclepay.com is free and covers Sui mainnet and testnet.