Pay gas with stablecoins. Your users never need to hold SUI. Drop-in SDK and API.
See the full example below.
Two calls. No SUI in the user wallet required.
The SDK fetches config, builds stablecoin payment into your transaction, estimates gas, and returns bytes ready for signing.
The user's wallet signs the prepared bytes. Then execute() sends them to the API, which validates, co-signs, and submits on-chain.
You get back a digest and execution status. The user never needed SUI — payment happened in stablecoin.
1import { SuiGrpcClient } from "@mysten/sui/grpc";2import { Transaction } from "@mysten/sui/transactions";3import { stableStation } from "@stablestation/sponsor";45const client = new SuiGrpcClient({ network: "testnet" })6 .$extend(stableStation({7 apiUrl: "https://stablestation.mystenlabs.com/api/v1",8 }));910// Build your transaction as usual11const tx = new Transaction();12tx.moveCall({ target: "0x...::module::function" });1314// 1) Prepare sponsored bytes15const prepared = await client.stableStation.prepare({16 transaction: tx,17 sender: myAddress,18 stablecoin: "USDC",19});2021// 2) User signs prepared bytes22const { signature } = await wallet.signTransaction(prepared.txBytes);2324// 3) API co-signs + executes25const result = await client.stableStation.execute(prepared, signature);26console.log(result.digest, result.succeeded, result.error);