⛽ Gas-sponsorship SDK — EVM & TRON

Your users pay gas in stablecoins, not ETH or TRX.

Drop @gasless-cash/sdk into your DeFi wallet and let users with zero native gas transact — fees paid in USDC, USDT and the stablecoins you choose. One TypeScript SDK for web and React Native, across EVM chains (EIP-7702) and TRON.

✓ No native gas required for users ✓ EVM & TRON ✓ Self-custodial ✓ Web & React Native
pay-gas-in-usdc.ts
import { GaslessClient, erc20Transfer } from "@gasless-cash/sdk";

const gasless = new GaslessClient({ chainId, publicClient, apiKey });

// 1 · Quote the fee in the user's stablecoin — before they sign
const quote = await gasless.estimateCost({
  eoa: user.address,
  calls: [erc20Transfer(usdc, recipient, amount)],
  paymentToken: usdc,            // user pays gas in USDC
});

// 2 · Send it — the relayer fronts the ETH, the user pays in USDC
const { id } = await gasless.sendSponsoredBatch({
  eoa: user.address, signer: user, quote,
  calls: [erc20Transfer(usdc, recipient, amount)],
});

const result = await gasless.waitForBatch(id); // → "EXECUTED"

Built for wallet builders

Everything you need to add gasless stablecoin transactions — without touching a relayer key or writing a line of Solidity.

Ship in an afternoon

A typed client over viem. Estimate, sign, submit, and track — five methods, sensible defaults, full TypeScript inference.

📱

Web & React Native

Platform-agnostic core with a one-line React Native polyfill entry. The same code runs in your mobile wallet and on the web.

🔐

Self-custodial by design

The user signs every batch with their own key (EIP-712). The SDK never holds funds; the relayer never holds the user's key.

💵

Transparent fees

Quote the exact cost in the chosen stablecoin before the user signs — so the number you show is the number they pay.

🧩

Batched calls

Approve + swap + transfer in a single atomic, sponsored transaction via EIP-7702 account delegation.

🛡️

Safe outcomes

Distinct, on-chain-verifiable results. Your app reads the outcome trustlessly and never re-spends a consumed nonce.

How it works

The user signs. The relayer pays the gas and gets reimbursed in stablecoin. The chain settles.

Quote

The SDK asks the relayer what the batch costs in the user's chosen stablecoin.

Sign

The user signs an EIP-712 batch (and a one-time 7702 authorization) with their own key.

Sponsor

The relayer submits the transaction, fronting the ETH gas and collecting the stablecoin fee.

Settle

Your app reads the outcome straight from chain — EXECUTED or PAID BUT REVERTED.

Pay gas with the stablecoins your users hold

The relayer accepts a configurable set of stablecoins per chain. Your wallet renders the picker from a single SDK call.

USDC USDT DAI + your allow-list

const { tokens } = await gasless.getPaymentTokens();

Extend your wallet to gasless stablecoins

Give every user a way to transact — even with an empty ETH balance.