Gas Sponsorship

Use gas sponsorship to let users sign transactions without holding native tokens, enabling seamless onboarding and gasless experiences.

Gas sponsorship lets you (the custodian) pay gas fees on behalf of your users. The user's wallet signs the transaction, but the gas is covered by a Tatum-managed relayer.

How It Works

When sponsorGas: true is set:

  1. The enclave constructs the transaction with an empty gas payment from the user's wallet
  2. Tatum's relayer wraps it in a meta-transaction and submits it, paying the gas
  3. The user's wallet signs the payload but never needs native tokens for gas

Gas sponsorship is available on EVM-compatible chains only.

Usage with sendAssets

await client.sendAssets({
  body: {
    share: shares.SECP256K1.share,
    chain: WalletChain.POLYGON_MAINNET,
    to: "0xRecipient",
    token: "0xUSDCContractAddress",
    amount: "10",
    sponsorGas: true,
  },
});

Usage with sign

await client.sign({
  body: {
    share: shares.SECP256K1.share,
    method: "eth_sendTransaction",
    params: [{ to: "0xRecipient", data: "0x...", value: "0x0" }],
    chainId: WalletChain.POLYGON_MAINNET,
    to: "0xRecipient",
    sponsorGas: true,
  },
});

When to Use

  • Onboarding flows — new users who don't yet hold native tokens for gas
  • Token-only wallets — users holding ERC-20/SPL tokens but no native currency
  • Improved UX — hide gas complexity from end users entirely

Pre-signatures

For high-throughput flows, you can pre-compute MPC presignatures and pass them at signing time to reduce latency:

await client.sendAssets({
  body: {
    share: shares.SECP256K1.share,
    chain: WalletChain.ETHEREUM_MAINNET,
    to: "0xRecipient",
    token: "NATIVE",
    amount: "0.01",
    sponsorGas: true,
    presignature: "...",   // pre-computed presignature
    presignatureId: "...", // ID of the presignature
  },
});

Contact Tatum to enable pre-signature generation for your custodian account.