FEATURES

Gasless transactions

Asking a stablecoin holder to buy a separate gas token before they can spend their stablecoin is the worst UX bottleneck in crypto payments. Tab removes it entirely.

The mechanism

  1. The buyer's wallet signs an EIP-712 typed-data message — a structured statement of "I authorize amount of token to go from me to recipient, with this fee, before this deadline." No gas is spent at this point because nothing has been submitted.
  2. The signed message is handed to a Tab relayer over HTTPS.
  3. The relayer calls TabRouter.relayPayment with the signed message and the buyer's authorization. The relayer pays the gas in the chain's native token.
  4. The router verifies the signature, checks the nonce, recomputes the fee, and pulls amount + fee from the buyer using transferFrom. Settlement is atomic.

Why the relayer can't cheat

The signature covers every field the contract cares about: recipient, amount, fee, deadline, nonce. If the relayer changes any of them before submission, the signature stops matching and the router reverts. The relayer's only power is "decide whether and when to submit."

What the buyer needs to hold

On every chain Tab ships to (Base, BSC, Solana, Ink, Celo), only the stablecoin they're spending — Tab's relayer covers the gas. On Tempo, gas sponsorship is native to the protocol; there isn't a separate gas token to hold in the first place.

Failure modes

  • Expired deadline → router reverts, signature is dead.
  • Replayed nonce → router reverts, signature is dead.
  • Insufficient balance or allowance → router reverts; the signature is still good, the buyer just needs to fix their balance.
  • Relayer offline → buyer can submit the same message themselves; nothing about the signature requires Tab to be the submitter.