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, the protocol fee (up to a 5% hard cap), 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. Each chain gets its own deployment paired with its native stablecoin — the API and contract surface stay identical across all six.

ChainStableTabRouterTabBotRouterTabEscrowRouterTabSubscriptionRouter
BaseUSDC0x7E2c4A…91Af0x4B8d51…2cE10xA1f30B…77Bd0x9C0e62…3a5F
BSCUSDT0x6F1b8D…44E20x5A8e09…b1D70x2C6f4F…99A30x8B4d17…0e16
SolanaUSDCTabRtr…1nQpTabBot…2mRrTabEsc…3kSsTabSub…4jTt
InkUSDT00x3D9a2E…71Cb0x7F4c80…d2A60x1B8d56…f3E90x6E2f74…58Dc
CelocUSD0xC1b7A8…35Ed0x8A40E2…6f9B0xE7c92F…0a120x4D5fb1…83C4
TempoαUSDtempo:1…ax82tempo:2…bx91tempo:3…cx04tempo:4…dx17

Per-network status lives on the status page.