Cross-chain bridge audit
A bridge releases funds because a message says something happened on another chain. Guardian audits the code on both ends of every route and the settings that decide which messages count. Each new chain’s deployment gets its own verification before launch.
Smart contract audits for




Jupiter

Olympus
Limit Break
Dolomite
Onchain · Bridge Audit
Every route, checked at both ends.
- Message verification DVN sets and thresholds, validator and guardian signatures, proofs and light clients, and what each one actually attests.
- Peers and pathways Peer addresses, endpoint IDs, send and receive libraries, block confirmations and enforced options on both chains of every route.
- Shared decimals Local-to-shared conversion, unchecked casts, dust removal, and scaled versus principal units, so the amount burned is the amount credited.
- Rate limits Inbound and outbound caps per route, how usage decays, and what a configuration change does to usage already recorded.
- Replay and ordering Destination and chain ID binding, nonces, ordered delivery, and the skip, clear and burn paths that free a stuck channel.
- Compose and callback flows Two-step deliveries such as lzCompose: who can execute them, what a message can call, and the funds held in between.
- Supply accounting Mint and burn against lock and release, adapter backing, and per-chain totals that must never exceed what is locked.
- Fees and gas Native fees, executor gas for receive and compose, refunds, and messages that cannot pay for their own delivery.
- Deployment and peer verification Bytecode, owners, delegates, peers and DVNs on each new chain, and every queued multisig transaction before it runs, verified per chain as its own engagement.
- Upgrades and admin keys OApp owner and delegate, proxy admins, multisig thresholds and timelocks, for a contract set copied to every chain.
- Migrations Moving a live supply into an OFT or onto a new chain: pauses, transfers in flight, and where the backing ends up.
- Non-EVM endpoints Rust on Solana and Soroban, DAML on Canton, and the unit conversions at every boundary with the EVM.
Covers LayerZero OApps and OFTs, Stargate and Wormhole integrations, lock-and-mint and burn-and-mint bridges, and hub-and-spoke portals on EVM chains, Solana, Stellar and Canton. DVN signers and relayers are reviewed in an Offchain Automation Pentest. Issuing a stablecoin across chains? The stablecoin audit adds mint limits, freezes and backing.
Public findings
What Guardian has found in cross-chain code.
Each card links a finding in a public Guardian report. All were resolved.
-
C-01Fun.xyz OFT · Critical
The composer held bridged tokens until each compose message ran, and lzCompose let a message call any contract with any calldata. Pointed at a token’s approve, one message could take every balance in flight.
Compose flows Read the finding C-01 in the Fun.xyz OFT report
-
C-02M0 Liquidity Delivery · Critical
Wormhole’s guardian signatures do not cover a destination chain, and the portal never checked one. Where guardian sets overlap, a transfer sent to one spoke could be replayed on another.
Replay Read the finding C-02 in the M0 Liquidity Delivery report
-
M-01Olympus LayerZero · Medium
The bridge meant to pin two required DVNs per route, but encoded zero optional DVNs, which LayerZero reads as “use the defaults”. A later default change could leave mints stuck after the burn.
Message verification Read the finding M-01 in the Olympus LayerZero Integration report
-
H-01Orderly OFT · High
With ordered delivery on, anyone could send tokens to the zero address. The mint reverted on arrival, and every later message on the pathway waited behind it.
Ordered delivery Read the finding H-01 in the Orderly OFT and OFT Adapter report
-
H-01LayerZero Canton DAML · High
A receive was accepted before anything checked that its amount still fit once scaled to local decimals. Finalization then failed on every retry, and the receiver was never credited.
Shared decimals Read the finding H-01 in the LayerZero Canton DAML report
-
C-04GMX V2.2 Crosschain · Critical
Stargate’s compose message does not name the token, so GMX read it from a field the user controls. Bridge USDC, declare WBTC, and take the WBTC waiting for someone else’s deposit.
Token accounting Read the finding C-04 in the GMX V2.2 Crosschain, Part 1 report
-
H-03M0 Liquidity Delivery · High
The hub tracked the principal bridged to each isolated spoke, but other spokes could still send to it. Tokens arriving that way exceeded the hub’s record, so sending them back reverted.
Supply accounting Read the finding H-03 in the M0 Liquidity Delivery report
-
C-01Orderly Solana Vault · Critical
The Solana deposit checked that a token hash was allowed, not that it was SOL’s. Deposit 1 SOL with USDC’s hash, and the ledger chain credited 1,000 USDC.
Solana Read the finding C-01 in the Orderly Solana Vault, Sol-CC and EVM Updates report
-
C-04Orderly Omnichain Ledger · Critical
The relay that sent messages back to the vault chain paid LayerZero fees from its own balance, but compose calls carried no native value and it had no receive function. With nothing to pay fees, no message could reach the vault chain.
Fees and gas Read the finding C-04 in the Orderly Omnichain Ledger report
-
L-01USDT0 Conflux · Low
On Conflux, the CNHT0 OFT’s delegate, which controls its LayerZero security settings, was not a multisig and did not match the intended Safe. The deployment check caught it.
Deployment Read the finding L-01 in the USDT0 Conflux Deployment, USDT0 and CNHT0 report
-
H-02Nunchi Migration · High
Post-migration claims used lzRead to fetch each user’s balance on the source chain, then required the reply to come from that chain. Read replies arrive on the read channel instead, so every claim reverted.
Migrations Read the finding H-02 in the Nunchi Migration report
Onchain · How it runs
Two teams, and supply written as code.
-
01 / Two teams
Two independent teams, one scope.
Team A pairs expert manual review with the fuzzing suite. Team B runs Helix across every corner. Each cross-checks the other, on every chain in scope.
- Expert manual review
- Competitive incentives
- Cross-checked findings
-
02 / Helix AI Auditor
Helix, the leading AI Auditor.
Hundreds of parallel agents spend billions of tokens across the entire codebase. Only human-verified findings reach the report.
- Billions of tokens
- Human-guided context
- Human-triaged findings
-
03 / Invariant fuzzing
An invariant suite around your supply.
Core safety properties become executable invariants, fuzzed across every reachable state. On a bridge, the first is that supply never exceeds backing.
- Total supply never changes
- Adapter balance rises on every send
- One nonce per message received
-
04 / Configuration and peers
Every chain, verified before it carries value.
Each new chain gets its own verification, run as a separate engagement: bytecode matched byte-exact against the audited source, every privileged address confirmed, and each queued transaction decoded and simulated.
- Bytecode, owners and delegates
- Peers, DVNs and confirmations
- Safe and OneSig transactions
The suite stays with your code for every later change. Orderly’s OFT report lists 15 invariants, among them “Total Supply of ORDER should always be 1,000,000,000” and “Max Received Nonce Should Increase By 1 on lzReceive”. On its omnichain ledger, seven of 39 failed under fuzzing.
Published work
Bridges and LayerZero OFTs Guardian has reviewed.
- Client storyLayerZeroOmnichain messaging, reviewed in Solidity, Rust, DAML and TypeScript.
- Case studyLayerZero runtimesConsole, Canton, Solana and OneSig, each staffed with its own specialists.
- Client storyUSDT0The OFT mesh behind USDT0: core contracts, migrations, OneSig and multihop.
- Case studyUSDT0 deployment verificationPeers, DVN sets, confirmations and queued Safe transactions, checked route by route.
- Case studyUSDT0 GasolinaThe offchain DVN signer in the path of every USDT0 transfer.
- ReportGMX V2.2 CrosschainBridged deposits, orders and withdrawals for GMX, over seven sequential reviews.
- ReportCitrea Stablecoin BridgeA LayerZero bridge that brings USDC and USDT from Ethereum to Citrea.
- ReportsGuardian’s public LayerZero reportsEvery public LayerZero report, finding by finding.
Beyond the EVM
Cross-chain messaging on other runtimes.
- LayerZero · CantonCanton DAML7,703 lines of DAML: the OApp, governance, multisig, registry and executor.
- LayerZero · SolanaSolana OApp2,670 lines of Rust: the OApp program, endpoint calls and access-control macros.
- LayerZero · StellarOneSig on SorobanThe multisig behind LayerZero’s privileged operations, with dedicated fuzzing.
- USDT0 · HederaHedera deploymentUSDT0’s connector to Hedera’s native token service: admin keys, delegate and enforced options.
Recent incidents
Where recent bridge losses began.
-
$292MKelp DAO
One required DVN guarded the route. Poisoned RPC nodes fed it forged data, and it attested to a burn that never happened, releasing 116,500 rsETH.
-
$326MWormhole
A fake account let the attacker bypass the check on Wormhole’s guardian signatures and mint 120,000 wETH on Solana.
Feb 2022 Our ranking of the biggest bridge hacks, with Wormhole
-
$190MNomad
A June upgrade initialized the Replica contract with 0x00 as a trusted root, so unproven messages passed as valid. Others copied the first exploit transaction.
Aug 2022 Our coverage of the Nomad incident
“Guardian’s thorough audit process have left a strong impression on us. Their keen eye for detail and responsive support are qualities that shine through in every engagement.”
“In our previous engagements, the Guardian team was extremely thorough. I also felt that the two-team approach would give a more in-depth coverage of our codebase.”
JemOlympusResource Hub
Before you book a bridge security audit.
- GuideCross-chain bridge auditWhat to put in scope, and what to send with a quote request.
- GuideHow bridges get hackedEach failure mode, from verification code to signer keys.
- RankingBiggest bridge hacksThe 12 largest losses, grouped by root cause.
- ChecklistLayerZero OFT securityWhat to check in an OFT or OFT adapter before launch.
- GuideLayerZero DVN configurationRequired and optional DVNs, set route by route, after Kelp.
- ComparisonLayerZero vs Chainlink CCIPHow each secures a token issuer’s transfers.
- ChecklistMultichain deployment verificationThe checks to run on each chain before a route carries value.
- GuideDaml smart contract auditWhat reviewers check on Canton.
Questions
Bridge audit questions
What does a cross-chain bridge audit cover?
The contracts on every chain, each route’s verification and pathway settings, and the scripts that deploy and wire them. M0’s Liquidity Delivery review covered a portal with Wormhole and Hyperlane adapters on EVM chains and Solana, so each adapter’s verification model was in scope. DVN signers and relayers get an Offchain Automation Pentest.
Do you audit LayerZero OApps and OFTs?
Yes, on both sides of the standard. Guardian’s public LayerZero reports include Console, LayerZero’s control plane for multichain assets, where Guardian reviewed the Portal and Nexus OFT contracts, the message codec and the OFT registry. Sapience’s composer report shows the integration side. The OFT checklist lists what to check first.
Do you review the DVN or relayer itself?
Yes, as an offchain engagement. For USDT0, Guardian reviewed Gasolina, LayerZero’s DVN service, and its API over two weeks. It returned nine findings, none Critical or High, and the fixes were merged upstream into the Gasolina codebase rather than patched in one deployment.
Do you audit bridges on Solana, Stellar and Hedera?
Yes. For USDT0 on Stellar, two independent teams reviewed the Soroban OFT contracts, and the deployment review checked WASM hashes onchain. On Hedera, where the token service lives in the consensus node, two teams read 50,784 lines of Java over six weeks. See the Solana audit.
How long does a bridge audit take?
Fun.xyz’s 86 nSLOC OFT composer took two days, November 5 to 6, 2025. M0’s Liquidity Delivery portal ran December 8, 2025 to January 7, 2026. GMX’s crosschain V2.2 ran as seven sequential reviews over five months. Size, chains and routes set the length.
Does a migration to an OFT need its own review?
Yes. Before Arbitrum’s USDT supply moved to USDT0, Guardian ran a production rehearsal with the real deployment parameters. Users bridging through the legacy gateway just before cutover could not have recovered their funds. Guardian recommended setting l1Address to address(0), so the gateway refunds them after seven days.
What happens after launch?
The report covers the audited commit and the fixes Guardian reviewed. New routes, chains and upgrades are reviewed separately, or under Vanguard, which adds six months of update review for up to 2,500 onchain SLOC. Rerun the invariant suite on every change.
Smart Contract Audit
Other engagements
- Featured · Onchain Vanguard Audit A security audit designed to protect onchain teams facing unprecedented cyber risk. Explore Vanguard
- Managed services Managed Security Dedicated response team, red team, 24/7 attack and defense across every surface you run, onchain and off. Explore Managed Security
- OnchainSmart Contract AuditTwo competing teams, Helix AI and invariant fuzzing.
- OnchainStablecoin AuditMint limits, roles, freezes, oracles and multichain deployments.
- OnchainSolana AuditRust and Anchor programs: accounts, PDAs, CPIs and Token-2022.
- OnchainSolidity AuditAccess control, reentrancy, math, upgrades and assembly.
- OnchainLiquid Staking AuditExchange rates, queues, slashing, validators and restaking.
- OffchainOffchain Automation PentestKeepers, relayers, bots and the automation-to-chain boundary.
- OffchainOpSec AuditKeys, signers, privileged roles, and critical operations.
- Penetration testingAll pentestsEvery offchain engagement, and how Guardian runs them.
Start now