SMART CONTRACTS

Smart contracts overview

Tab ships four routers. All four are immutable, all four are small enough to read in a sitting, and all four have been written so that nothing Tab does off-chain can change how they behave on-chain.

The four routers

  • TabRouter: single payments. Buyer signs an EIP-712 message; any relayer can submit it. The router verifies the signature, charges the 1% protocol fee, and settles atomically.
  • TabBotRouter: bot-driven flows: P2P transfers triggered from social platforms, and campaign grant distribution. Users pre-approve the router as a spender; a trusted executor pushes transfers within the allowance.
  • TabEscrowRouter: non-custodial escrow behind OpenTab. Holds funds for a Tab handle until the recipient claims, or the sender refunds after the deadline.
  • TabSubscriptionRouter: recurring billing. Plans, subscriptions, and permissionless charge calls per period. Refunds and cancellations enforced on-chain.

Design principles

  • Immutability. No proxy on any router. The owner can rotate the treasury or the executor list, but the payment logic cannot be modified after deployment.
  • One stablecoin per deployment. Each chain × token combination gets its own set of routers. Simpler than a token whitelist mapping and cheaper to call.
  • Conservative dependencies. All four contracts inherit from OpenZeppelin v4 (Ownable, ReentrancyGuard, EIP712, SafeERC20, ECDSA). No custom assembly, no unproven libraries.

Audits and bounty

All four routers and the connective Foundry test suite are covered by third-party audit; reports link from this page on publication. The Immunefi bug bounty pays up to $250,000 for critical findings.

Deployments

The same four routers ship to every supported chain. Every EVM deployment settles in USDC, the canonical Circle stable. TabRouter and TabBotRouter share addresses across Base, BSC, Ink, and Celo (deterministic CREATE from the same fresh deployer wallet). TabEscrowRouter and TabSubscriptionRouter diverge: Base uses the original v2 deployment, BSC/Ink/Celo use a redeployment that pins the stable to USDC. Solana uses a single Anchor program covering all router flows.

ChainStableTabRouterTabBotRouterTabEscrowRouter (Business 1%)TabEscrowRouter (Personal 0%)TabSubscriptionRouter (Business 1%)TabSubscriptionRouter (Personal 0%)
BaseUSDC0xB6e80fD7cd31429d4016FD644d877B799978428B0xD9663b9a8C097D882bCbE69e811D500f7ad67Bcf0xf25c8A76849D280A406c55EDF1ffb8d9d4cdF5d80x0daf92a08c3952864869ab69cc6ec3d2e27d89660xFCB05c971A31127fEf2C470725B9952bB1fc55A60x8CE016282f11c699BA46b860fA3585bF00e5481d
BSCUSDC0xB6e80fD7cd31429d4016FD644d877B799978428B0xD9663b9a8C097D882bCbE69e811D500f7ad67Bcf0x9e01dd09d3c4ddf8a7b6667edb9b71218b94ea6d0x49cab0d12A33FB2fd89Deb43569d38518becBA2C0x650e324253cf75c068fb0a16e53a30c681463e7b0xd847314f382a41310bfcc2d1300a767129b3cd79
InkUSDC0xB6e80fD7cd31429d4016FD644d877B799978428B0xD9663b9a8C097D882bCbE69e811D500f7ad67Bcf0x9e01dd09d3c4ddf8a7b6667edb9b71218b94ea6d0x49cab0d12A33FB2fd89Deb43569d38518becBA2C0x650e324253cf75c068fb0a16e53a30c681463e7b0xd847314f382a41310bfcc2d1300a767129b3cd79
CeloUSDC0xB6e80fD7cd31429d4016FD644d877B799978428B0xD9663b9a8C097D882bCbE69e811D500f7ad67Bcf0x9e01dd09d3c4ddf8a7b6667edb9b71218b94ea6d0x49cab0d12A33FB2fd89Deb43569d38518becBA2C0x650e324253cf75c068fb0a16e53a30c681463e7b0xd847314f382a41310bfcc2d1300a767129b3cd79
SolanaUSDCPay router DvS3eW3GJGVJrvqMBtcsS8QtNoxzYtpB61Cx19Uz86xs; Subscriptions (Business 1%) Ex1hBmDhmz8hZ7oYy4BKtt5jstEMCoeeshEA51swbXZa; Subscriptions (Personal 0%) DpQSpSdnwRB1p7iK1b5TbL1F5YqtimGd9g32jWc4WyB7; Smart Pay via Solana Foundation Subscriptions Delegation Program De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44. See chain page.

USDC token addresses per chain: Base 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, BSC Binance-Peg 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d (18 decimals; the rest are 6), Ink USDC.e 0xF1815bd50389c46847f0Bda824eC8da914045D14, Celo 0xcebA9300f2b948710d2653dD7B07f33A8B32118C, Solana mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.

Per-network status lives on the status page.