Audits &
security reports.
t3rn smart contracts have been reviewed by independent security firms before every major deployment. Reports are published in full. All critical and high findings are resolved before code ships to mainnet.
Halborn
PublishedSmart contract security audit — EscrowOrder, OrderBook, BiddingBook, Guardian contracts
Full review of the t3rn smart-contract stack covering the escrow, bidding, and guardian contracts. All critical and high findings were resolved prior to mainnet deployment.
Spearbit / Cantina
PendingLiquidityWellCompact, intent verification path, solver settlement — Arbitrum mainnet deployment
Comprehensive review of LiquidityWellCompact (v2), the pre-swap extension, and the on-chain intent verification path. Report publication pending final sign-off.
Found something?
If you discover a security vulnerability in the t3rn protocol, contracts, or infrastructure, please report it privately to security@t3rn.io before any public disclosure. We review all reports and respond within 48 hours.
How a fill is verified
Audits cover the contracts. This covers each individual fill. Every cross-chain dispatch is reviewed against fourteen invariants before it is accepted — six on the routing itself, eight cryptographic. In live mode a failed layer rejects the fill rather than logging a warning.
Routing
| L1 | Intent | Well-formed: protocol, chains, amounts and recipient all present and coherent. |
| L2 | Catalogue | The fill contract is actually deployed on the destination chain. |
| L3 | Calldata | ABI selector valid, parameters non-zero. |
| L4 | Gas | Estimate within bounds and the gas price is positive. |
| L5 | Fill | Confirmed, or explicitly skipped — never silently failed. |
| L6 | Fee split | Fee parts sum to the total, and each share is accounted for. |
Proof
| V1 | Header chain | Block headers form a valid hash chain with monotonic timestamps. |
| V2 | Event extraction | The fill event decodes from the receipt and matches the intent. |
| V3 | Inclusion proof | Merkle-Patricia proof: the event leaf is in the block's receipts trie. |
| V4 | Twig proof | The block hash is committed in its twig. |
| V5 | MMR proof | The twig sits in the mountain range with a non-zero bagged peak. |
| V6 | Block finality | Consensus finality per chain — safe head, or a light client. |
| V7 | Cross verification | Event → transaction → block → finality is one coherent chain. |
| V8 | Superroot | The destination chain is indexed by the data-availability layer. |
V8 is answered by the data-availability layer, not by the caller. A fill destined for a chain the DA layer has not indexed is rejected before funds move. If that layer cannot be reached, the check fails closed — an unverifiable fill is refused rather than assumed good.