# ApeX Omni Markdown version of https://l2beat.com/layer2s/projects/apex-omni ## Summary **Warning:** Why is the project listed in others? The proof system isn't fully functional. ApeX's proof system does not authenticate deposits on external chains. Users must additionally trust the validator and the LayerZero bridges (including their governors and the LayerZero message verifiers) not to collude in forging non-existent deposits, which allows draining rollup escrows. Consequence: projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds. Learn more about the [recategorisation](https://medium.com/l2beat/framework-update-l2-projects-recategorisation-5d43b0d1fe50). - Total Value Secured: $27.72 M (-1.18% compared to seven days ago; canonically bridged $6.02 M, natively minted $0.00, externally bridged $21.70 M; 78.2% with additional trust assumptions compared to the tokens involved and the Stage assigned to the project's canonical messaging bridge) - TVS by asset: ETH & derivatives $5.19 M (18.7%), Stablecoins $21.44 M (77.3%), BTC & derivatives $1.09 M (3.93%), Other $2.47 (0.00%) - Past day UOPS: No data - Type: Other - Purpose: Exchange - Host chain: Arbitrum One - Risks shown: combined with host chain Arbitrum One; Risk analysis also lists each separately ### Risks - Sequencer failure: No mechanism (sentiment: bad) - State validation: Validity proofs (sentiment: good) - Data availability: Onchain (sentiment: good) - Exit window: None (sentiment: bad) - Proposer failure: Cannot withdraw (sentiment: bad) ### About ApeX Omni is an application-specific ZK rollup for order book trading. It uses zkLink X to aggregate liquidity deposited across multiple chains. ### Links - Website: https://apex.exchange/ - Bridge: https://omni.apex.exchange/ - Docs: https://api-docs.pro.apex.exchange/ - Repository: https://github.com/ApeX-Protocol - Social: https://twitter.com/OfficialApeXdex, https://apexdex.medium.com/, https://t.me/ApeXdex, https://discord.com/invite/apexprotocol, https://youtube.com/@apexprotocol - Contracts explorer (Disco): https://disco.l2beat.com/ui/p/apex-omni ### Badges - Application-specific chain: This project is built to operate a specific application - Built on top of Arbitrum: The project has Arbitrum as its host chain ## Value Secured The interactive TVS charts are shown on [the HTML page](https://l2beat.com/layer2s/projects/apex-omni#tvs). Token by token: [TVS breakdown](https://l2beat.com/layer2s/projects/apex-omni/tvs-breakdown). - [TVS chart (JSON)](https://l2beat.com/api/scaling/tvs/apex-omni) - [TVS breakdown by token (JSON)](https://l2beat.com/api/scaling/tvs/apex-omni/breakdown) ## Milestones & Incidents - 2025-02-27: [ApeX Pro sunset](https://www.apex.exchange/blog/detail/ApeX-Pro-Sunset-Delisting-Timeline-for-Trading-Pairs). ApeX Pro StarkEx chain is discontinuied in favor of zkLink X stack chain. - 2024-06-10: [ApeX Omni launched on zkLink X](https://www.apex.exchange/blog/detail/ApeX-Omni-zkLink-Elevating-Multi-chain-Liquidity-Trading-via-zkLink-X). A launch of ApeX Omni chain build on zkLink X stack is announced. - 2022-11-21: [ApeX Pro public beta launched](https://twitter.com/officialapexdex/status/1564917523401052162?s=21&t=c-SqpS1PL2KOns-2K7myJA). ApeX Pro beta is launched, with incentives program for users. - 2022-08-31: [ApeX Pro live on Mainnet](https://twitter.com/officialapexdex/status/1594722304537288706?s=21&t=c-SqpS1PL2KOns-2K7myJA). ApeX Pro, a non-custodial decentralized exchange is now live on Mainnet. ## Detailed description ApeX Omni is an application-specific ZK rollup for order book trading. It uses zkLink X to aggregate liquidity deposited across multiple chains. ApeX Omni is a non-EVM L3 on Arbitrum One. Its primary zkLink deployment verifies state transition proofs and publishes state differences on Arbitrum, while secondary deployments escrow assets deposited on other chains and synchronize their local state with the primary deployment through LayerZero. ## Risk summary There are 3 additional risks coming from the host chain [Arbitrum One](https://l2beat.com/layer2s/projects/arbitrum) ### Funds can be stolen if 1. a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL). ### Funds can be lost if 2. the validator colludes with a compromised LayerZero bridge, bridge governor or LayerZero message verifiers to forge a non-existent deposit or block confirmation. ### Funds can be frozen if 3. the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL), 4. cross-chain synchronization messages are not delivered. ### Users can be censored if 5. the operator refuses to include their transactions. ### MEV can be extracted if 6. the operator exploits their centralized position and frontruns user transactions. ## Risk analysis The L3 risks depend on the individual properties of L3 and those of the host chain combined. | | Sequencer failure | State validation | Data availability | Exit window | Proposer failure | | --- | --- | --- | --- | --- | --- | | Arbitrum One (L2) | Self sequence (sentiment: good) | Fraud proofs (INT) (sentiment: good) | Onchain (sentiment: good) | None (sentiment: bad) | Self propose (sentiment: good) | | ApeX Omni (L3, individual) | No mechanism (sentiment: bad) | Validity proofs (SN) (sentiment: good) | Onchain (SD) (sentiment: good) | None (sentiment: bad) | Cannot withdraw (sentiment: bad) | | ApeX Omni (L3, combined) | No mechanism (sentiment: bad) | Validity proofs (sentiment: good) | Onchain (sentiment: good) | None (sentiment: bad) | Cannot withdraw (sentiment: bad) | ### L3 combined risks The information below reflects combined L2 & L3 risks. #### Sequencer failure No mechanism (sentiment: bad) There is no mechanism to have transactions be included if the sequencer is down or censoring. #### State validation Validity proofs (sentiment: good) Zero knowledge cryptography is used to ensure state correctness. Proofs are first verified on Arbitrum One and finally on Ethereum. #### Data availability Onchain (sentiment: good) All of the data needed for proof construction is published on the base chain, which ultimately gets published on Ethereum. #### Exit window None (sentiment: bad) There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable. #### Proposer failure Cannot withdraw (sentiment: bad) Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen. ## Stage ApeX Omni is not even a Stage 0 Appchain project. **Warning:** There is no available node software that can reconstruct the state from L1 data, hence there is no way to verify that this system is a rollup. ### Stage 0 2 issues need fixing. - Met: The project calls itself a rollup. - Met: State roots are posted to Ethereum L1. - Met: Inputs for the state transition function are posted to Ethereum L1. - Issue: The proof system is still under development. - Issue: No source-available node exists that can recreate the state from L1 data. ### Stage 1 6 issues need fixing. **Principle** - Issue: Compromising ≥75% of the Security Council should be the only way (other than bugs) for a rollup to indefinitely block an L2→L1 message (e.g. a withdrawal) or push an invalid L2→L1 message (e.g. an invalid withdrawal) with a <7d exit window. **Guidelines** - Issue: Users' withdrawals can be censored by the permissioned operators. - Issue: Upgrades executed by actors with more centralized control than a Security Council provide less than 7d for users to exit if the permissioned operator is down or censoring. - Issue: The Security Council is not properly set up. - Issue: Prover source code is not published. - Issue: Not all onchain verifiers' smart contracts can be independently regenerated from the verifier source code. ### Stage 2 2 issues need fixing. - Issue: Upgrades unrelated to onchain provable bugs provide less than 30d to exit. - Issue: The Security Council's actions are not confined to onchain provable bugs. [Learn more about Stages](https://l2beat.com/stages). Please keep in mind that these stages do not reflect project security, this is an opinionated assessment of project maturity based on subjective criteria, created with a goal of incentivizing projects to push toward better decentralization. Each team may have taken different paths to achieve this goal. ## Data availability ### State differences are published on Arbitrum One The data needed to reconstruct the ApeX state is included in commitBlocks calldata on Arbitrum One. Secondary deployments additionally commit their local onchain operations and send synchronization hashes to the primary deployment. **References** - [See CommitBlockInfo in commitBlock function on ZkLink.sol](https://arbiscan.io/address/0x23871561330080828507ded34d23fef5ede7053c#code#F12#L136) Learn more about the DA layer here: [Arbitrum One](https://l2beat.com/layer2s/projects/arbitrum) ## State validation ### Validity proofs Each update to the system state must be accompanied by a ZK proof that ensures that the new state was derived by correctly applying a series of valid user transactions to the previous state. These proofs are then verified on Arbitrum One by a smart contract. Deposits on secondary chains are not covered by these validity proofs and rely on LayerZero bridge contracts instead. Escrowed funds can be stolen if the validator colludes with a compromised bridge. **References** - [Function proveBlocks on ZkLinkPeriphery.sol calls verifier.verifyAggregatedBlockProof](https://arbiscan.io/address/0x3203E813930bD710043c1d899fE38dD359307352#code#F10#L302) ### Prover: [ZKsync Lite](https://l2beat.com/zk-catalog/zksyncprover) #### Trusted setups - Zksync (Plonk): - Aztec Ignition, risk green (lowest risk) per the [Trusted Setups Risk Framework](https://forum.l2beat.com/t/the-trusted-setups-framework-for-zk-catalog/381): Aztec Ignition is a trusted setup ceremony that was run by Aztec for KZG commitment over BN254 curve in 2019. It included 176 participants and was publicly open for participation. - Onchain verifiers: [Verifier](https://arbiscan.io/address/0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F#code) (1 not verified) - Used in: [ApeX Omni](https://l2beat.com/layer2s/projects/apex-omni) - Verifiers: 1 not verified ## Updates Each date links the update on the HTML page, which also shows its contract diffs. ### [2026-10-01 10:35 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=85dc61e6) (23 changes) All sync services (message bridges) were switched from the old LZSyncHashBridges to new immutable LayerZeroBridges. Reason: LayerZero retired the ULNv2 relayer on 2026-08-03 and its new executor rejects the empty `adapterParams` the old bridges sent. The new bridges send type-1 `adapterParams` with a governor-set per-destination `minDstGas` and have their own `governor`. Everything else is unchanged. Source was manually verified: zkLinkProtocol/zklink-contracts branch `fix/lz-adapterparams` (4228fe6), now verified on Etherscan and Sourcify. Code differs per chain only by chain constants. - https://disco.l2beat.com/diff/arb1:0xfC5c2b3E615cF12e86E6dA8eF6C76fAbae5F2B7D/arb1:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453 - https://disco.l2beat.com/diff/eth:0x3D70dc86dC8099D8a4c86C18839C7e84a13a441E/eth:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453 - https://disco.l2beat.com/diff/base:0xeD5D1e1320720CAe8Bb40275550A7D307A082AC3/base:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453 - https://disco.l2beat.com/diff/bnb:0xc271a8e9eB2b10FCDe1709D76de6681249669D2e/bnb:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453 - https://disco.l2beat.com/diff/mantle:0x04C6a52f3bf9F73618cD70F234AdB95a73325D1e/mantle:0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453 ### [2026-07-22 10:24 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=10e94cfb) (27 changes) Completely new discovery of ApeX project (ApeX Omni instead of older ApeX Pro). Now it is a zkLink X cross-chain deployment with settlement on Arbitrum One (as L3) and deposits on several other chains. ### [2025-07-22 16:06 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=a2a84da9) (1 change) project is archived. ### [2025-07-14 12:44 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=8e894ff6) (8 changes) Discovery rerun on the same block number with only config-related changes. ### [2025-07-09 09:25 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=be904380) (2 changes) USDT StarkEx instance frozen, project archived. Apex Pro, the app on this StarkEx Validium, is EOL: https://www.apex.exchange/blog/detail/ApeX-Pro-Sunset-Delisting-Timeline-for-Trading-Pairs. ### [2025-02-18 09:12 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=383607df) (high severity, 14 changes) Minor upgrade to the StarkExchangeUSDC contract which is an implementation of StarkEx Perpetual. Two new asset IDs are added: - NON_UNIQUE_MINTABLE_ASSET_ID_FLAG (ERC-1155) - MINTABLE_ERC20_ASSET_ID_FLAG (ERC-20) ### [2025-01-30 10:24 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=9b35ceaf) (2 changes) Updates progHash, not found online, added to the library. ### [2023-11-30 16:11 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=343f1ce5) (2 changes) Upgrade delay for USDT StarkEx has been changed from 0 to 14 days. ### [2023-11-23 15:27 UTC](https://l2beat.com/layer2s/projects/apex-omni?update=e7dfb473) (4 changes) Apex is enabling USDT as an additional collateral for their perpetual pairs. Previously only USDC was available. Technically StarkEx system for perpetuals doesn't support multiple collaterals, so Apex will be running 2 independent StarkEx instances. This also means that there will be no interoperability between them and between -USDC and -USDT perpetual pairs. Also parameters of each system can differ. ## Operator The section considers only the L3 properties. For more details please refer to [Arbitrum One](https://l2beat.com/layer2s/projects/arbitrum) ### The system has a centralized operator A single permissioned validator can commit and execute blocks. Proof submission is permissionless, but only blocks committed by the validator can be proven and executed. **Risks** - MEV can be extracted if the operator exploits their centralized position and frontruns user transactions. ### Users can't force any transaction There is no general mechanism to force the sequencer to include transactions. Deposits create priority requests, but users cannot submit forced withdrawal requests. Although the contracts contain an exodus mode, the secondary deployments use EmptyVerifier contracts that reject all exit proofs, so this does not provide a system-wide escape hatch. **Risks** - Users can be censored if the operator refuses to include their transactions. ## Withdrawals The section considers only the L3 properties. For more details please refer to [Arbitrum One](https://l2beat.com/layer2s/projects/arbitrum) ### Regular exit Users initiate withdrawals through regular ApeX transactions. After the block is proven, synchronized across the participating deployments, and executed, the user can claim funds from the zkLink escrow on the chain where the assets are held. **Risks** - Funds can be frozen if the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL). ## Other considerations ### Multichain state synchronization Deposits remain escrowed in the zkLink contract on their origin chain. Secondary deployments send synchronization hashes through LayerZero to the primary deployment on Arbitrum One. The primary deployment only synchronizes a block when the received hashes match the hashes committed as part of the primary block, and then sends block confirmations back to the secondary deployments, which only execute (and pay out withdrawals for) confirmed blocks. The messages are relayed by immutable LayerZeroBridge contracts on each chain, connected to the LayerZero v1 endpoints. They only accept messages from their trusted remote bridges. Their governor, the network governor multisig of the respective chain, can change these trusted remotes and the LayerZero messaging configuration that determines which verifiers attest to the messages. **Risks** - Funds can be lost if the validator colludes with a compromised LayerZero bridge, bridge governor or LayerZero message verifiers to forge a non-existent deposit or block confirmation. - Funds can be frozen if cross-chain synchronization messages are not delivered. ## Permissions Explore these contracts and permissions in Disco, L2BEAT's contract explorer: https://disco.l2beat.com/ui/p/apex-omni ### Arbitrum One #### Actors ##### UpgradeGatekeeper Addresses: [0x2e8AD1434663b209EE59eF1a6612114239F4a190](https://arbiscan.io/address/0x2e8AD1434663b209EE59eF1a6612114239F4a190) Controls upgrades to managed contracts. The master can schedule, cancel, and complete upgrades after the main contract's notice period. - Can upgrade **with no delay** - Verifier - ZkLink Main - Can interact with ZkLink Main - transfer mastership ##### GnosisSafeL2 Addresses: [0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED](https://arbiscan.io/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) A Multisig with 4/6 threshold. - Can interact with ZkLink Main - add tokens, pause and unpause token deposits - change the network governor, validator set, L1 gateway and cross-chain synchronization services - Can interact with LayerZeroBridge - change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor Participants (6): [0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272](https://arbiscan.io/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272), [0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5](https://arbiscan.io/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5), [0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5](https://arbiscan.io/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5), [0x22c89137525b593Dd2A18434348b550ffA5984Fe](https://arbiscan.io/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe), [0x2A2A180373391915738aB1F89a1B258893361964](https://arbiscan.io/address/0x2A2A180373391915738aB1F89a1B258893361964), [0x5cDded5ea50aE7973943394De17aB51C365254Dd](https://arbiscan.io/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd) ##### EOA 1 Addresses: [0x48184910dA6765111F2ea02D0182Fc95Be17E52d](https://arbiscan.io/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d) - Can interact with ZkLink Main - commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ### Base Chain #### Actors ##### UpgradeGatekeeper Addresses: [0x72343e8e448Fa539A1F118f870A1De1132f2fcaD](https://basescan.org/address/0x72343e8e448Fa539A1F118f870A1De1132f2fcaD) - Can upgrade **with no delay** - EmptyVerifier - ZkLink Base - Can interact with ZkLink Base - transfer mastership ##### GnosisSafeL2 Addresses: [0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED](https://basescan.org/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) A Multisig with 4/6 threshold. - Can interact with ZkLink Base - add tokens, pause and unpause token deposits - change the network governor, validator set, L1 gateway and cross-chain synchronization services - Can interact with LayerZeroBridge - change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor Participants (6): [0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272](https://basescan.org/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272), [0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5](https://basescan.org/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5), [0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5](https://basescan.org/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5), [0x22c89137525b593Dd2A18434348b550ffA5984Fe](https://basescan.org/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe), [0x2A2A180373391915738aB1F89a1B258893361964](https://basescan.org/address/0x2A2A180373391915738aB1F89a1B258893361964), [0x5cDded5ea50aE7973943394De17aB51C365254Dd](https://basescan.org/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd) ##### EOA 2 Addresses: [0x48184910dA6765111F2ea02D0182Fc95Be17E52d](https://basescan.org/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d) - Can interact with ZkLink Base - commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ### Binance Smart Chain #### Actors ##### UpgradeGatekeeper Addresses: [0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C](https://bscscan.com/address/0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C) - Can upgrade **with no delay** - EmptyVerifier - ZkLink BNB - Can interact with ZkLink BNB - transfer mastership ##### GnosisSafeL2 Addresses: [0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED](https://bscscan.com/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) A Multisig with 4/6 threshold. - Can interact with ZkLink BNB - add tokens, pause and unpause token deposits - change the network governor, validator set, L1 gateway and cross-chain synchronization services - Can interact with LayerZeroBridge - change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor Participants (6): [0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272](https://bscscan.com/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272), [0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5](https://bscscan.com/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5), [0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5](https://bscscan.com/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5), [0x22c89137525b593Dd2A18434348b550ffA5984Fe](https://bscscan.com/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe), [0x2A2A180373391915738aB1F89a1B258893361964](https://bscscan.com/address/0x2A2A180373391915738aB1F89a1B258893361964), [0x5cDded5ea50aE7973943394De17aB51C365254Dd](https://bscscan.com/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd) ##### EOA 3 Addresses: [0x48184910dA6765111F2ea02D0182Fc95Be17E52d](https://bscscan.com/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d) - Can interact with ZkLink BNB - commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ### Ethereum #### Actors ##### GnosisSafe (0xF9f8…6B94) Addresses: [0xF9f8794A2D9885C36D06aA25fc25a8cAda276B94](https://etherscan.io/address/0xF9f8794A2D9885C36D06aA25fc25a8cAda276B94) A Multisig with 4/6 threshold. - Can interact with ZkLink Ethereum - add tokens, pause and unpause token deposits - change the network governor, validator set, L1 gateway and cross-chain synchronization services - Can interact with LayerZeroBridge - change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor Participants (6): [0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272](https://etherscan.io/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272), [0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5](https://etherscan.io/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5), [0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5](https://etherscan.io/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5), [0x22c89137525b593Dd2A18434348b550ffA5984Fe](https://etherscan.io/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe), [0x2A2A180373391915738aB1F89a1B258893361964](https://etherscan.io/address/0x2A2A180373391915738aB1F89a1B258893361964), [0x5cDded5ea50aE7973943394De17aB51C365254Dd](https://etherscan.io/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd) ##### UpgradeGatekeeper Addresses: [0xFBD68679271fDa6ca9bf6F20993Cd39E20072753](https://etherscan.io/address/0xFBD68679271fDa6ca9bf6F20993Cd39E20072753) Controls upgrades to managed contracts. The master can schedule, cancel, and complete upgrades after the main contract's notice period. - Can upgrade **with no delay** - ZkLink Ethereum - EmptyVerifier - Can interact with ZkLink Ethereum - transfer mastership ##### GnosisSafe (0x3746…cDFF) Addresses: [0x374632e7D48B7872d904524FdC5Dd4516F42cDFF](https://etherscan.io/address/0x374632e7D48B7872d904524FdC5Dd4516F42cDFF) A Multisig with 4/7 threshold. Participants (7): [0xd9cCb94805B882b78e4C8565e67469DdE90a110F](https://etherscan.io/address/0xd9cCb94805B882b78e4C8565e67469DdE90a110F), [0x503659DcA7Aba3129B4C098FB23857436AedECd9](https://etherscan.io/address/0x503659DcA7Aba3129B4C098FB23857436AedECd9), [0x67ceD4Ae20D0702c6B773a70aE3826C1E0DE09e9](https://etherscan.io/address/0x67ceD4Ae20D0702c6B773a70aE3826C1E0DE09e9), [0xAA2c80c9346BceF31570791BA0827B03d8a5E594](https://etherscan.io/address/0xAA2c80c9346BceF31570791BA0827B03d8a5E594), [0xcC1A2bd1a459be0C7fAd3B7F9Fa9a6CBBFE9BFa5](https://etherscan.io/address/0xcC1A2bd1a459be0C7fAd3B7F9Fa9a6CBBFE9BFa5), [0x522b8Df4c9965934654CFebbf20882005c33cE18](https://etherscan.io/address/0x522b8Df4c9965934654CFebbf20882005c33cE18), [0xd8F26118505417Ef6468Ac8A2AE1E5117245Db92](https://etherscan.io/address/0xd8F26118505417Ef6468Ac8A2AE1E5117245Db92) ##### EOA 4 Addresses: [0x48184910dA6765111F2ea02D0182Fc95Be17E52d](https://etherscan.io/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d) - Can interact with ZkLink Ethereum - commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ### Mantle #### Actors ##### UpgradeGatekeeper Addresses: [0x2B9BA259F24965a81Fa0c4E477e3791673744059](https://explorer.mantle.xyz/address/0x2B9BA259F24965a81Fa0c4E477e3791673744059) - Can upgrade **with no delay** - EmptyVerifier - ZkLink Mantle - Can interact with ZkLink Mantle - transfer mastership ##### GnosisSafeL2 Addresses: [0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED](https://explorer.mantle.xyz/address/0xba3852Ea9b72DE82AF343f7e3F09c86fdea912ED) A Multisig with 4/6 threshold. - Can interact with ZkLink Mantle - add tokens, pause and unpause token deposits - change the network governor, validator set, L1 gateway and cross-chain synchronization services - Can interact with LayerZeroBridge - change the trusted remote bridges and the LayerZero messaging configuration (message libraries and verifiers), which together determine which synchronization hashes and block confirmations are accepted, set the minimum destination gas, force-resume blocked message delivery and change the bridge governor Participants (6): [0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272](https://explorer.mantle.xyz/address/0xda9f561F0d8d7061fa47e47E352eAD6844Ae3272), [0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5](https://explorer.mantle.xyz/address/0xd30898ECdc21C72250a5fd1dbD37FF7D63237Db5), [0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5](https://explorer.mantle.xyz/address/0x4D9b22B92Ff9faFAc013f82faCA88BDa8E778cb5), [0x22c89137525b593Dd2A18434348b550ffA5984Fe](https://explorer.mantle.xyz/address/0x22c89137525b593Dd2A18434348b550ffA5984Fe), [0x2A2A180373391915738aB1F89a1B258893361964](https://explorer.mantle.xyz/address/0x2A2A180373391915738aB1F89a1B258893361964), [0x5cDded5ea50aE7973943394De17aB51C365254Dd](https://explorer.mantle.xyz/address/0x5cDded5ea50aE7973943394De17aB51C365254Dd) ##### EOA 5 Addresses: [0x48184910dA6765111F2ea02D0182Fc95Be17E52d](https://explorer.mantle.xyz/address/0x48184910dA6765111F2ea02D0182Fc95Be17E52d) - Can interact with ZkLink Mantle - commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains ## Smart contracts ![A diagram of the smart contract architecture](https://l2beat.com/static/images/architecture/apex-omni.25ca40d7.png) Explore these contracts and permissions in Disco, L2BEAT's contract explorer: https://disco.l2beat.com/ui/p/apex-omni ### Arbitrum One #### Verifier Addresses: [0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F](https://arbiscan.io/address/0x235118AfB54B6d6c7b48F1B5434c25CD6Eb6B68F#code), [0x6e21b35328E1522b1E6C0F5eCa566a7fe269274a](https://arbiscan.io/address/0x6e21b35328E1522b1E6C0F5eCa566a7fe269274a#code) (Implementation (Upgradable)), [0x2e8AD1434663b209EE59eF1a6612114239F4a190](https://arbiscan.io/address/0x2e8AD1434663b209EE59eF1a6612114239F4a190#code) (Admin) PLONK verifier used to validate aggregated L2 block proofs and zero-knowledge exit proofs. - Roles: - **admin**: UpgradeGatekeeper Can be upgraded by: UpgradeGatekeeper with no delay #### ZkLink Main (escrow) Addresses: [0x3169844a120C0f517B4eB4A750c08d8518C8466a](https://arbiscan.io/address/0x3169844a120C0f517B4eB4A750c08d8518C8466a#code), [0x23871561330080828507dED34d23FEF5EdE7053C](https://arbiscan.io/address/0x23871561330080828507dED34d23FEF5EdE7053C#code) (Implementation #1 (Upgradable)), [0x3203E813930bD710043c1d899fE38dD359307352](https://arbiscan.io/address/0x3203E813930bD710043c1d899fE38dD359307352#code) (Implementation #2 (Upgradable)), [0x2e8AD1434663b209EE59eF1a6612114239F4a190](https://arbiscan.io/address/0x2e8AD1434663b209EE59eF1a6612114239F4a190#code) (Admin) The main rollup contract. It processes L3 blocks submitted by validators and settles L3 state, handles deposits and withdrawals, and synchronizes block data with other zkLink chains. - Roles: - **getMaster**: UpgradeGatekeeper - **networkGovernor**: GnosisSafeL2 - **validators**: EOA 1 All supported tokens in this escrow are included in the value secured calculation. Can be upgraded by: UpgradeGatekeeper with no delay #### LayerZeroBridge Addresses: [0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453](https://arbiscan.io/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code) A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain. - Roles: - **governor**: GnosisSafeL2 ### Base Chain #### EmptyVerifier Addresses: [0x4c5629AEA0B419d26C780dD78d5671e2Ce27c563](https://basescan.org/address/0x4c5629AEA0B419d26C780dD78d5671e2Ce27c563#code), [0xbb205c59a53cA04D86D2c6858cC9f82603275ADC](https://basescan.org/address/0xbb205c59a53cA04D86D2c6858cC9f82603275ADC#code) (Implementation (Upgradable)), [0x72343e8e448Fa539A1F118f870A1De1132f2fcaD](https://basescan.org/address/0x72343e8e448Fa539A1F118f870A1De1132f2fcaD#code) (Admin) - Roles: - **admin**: UpgradeGatekeeper Can be upgraded by: UpgradeGatekeeper with no delay #### ZkLink Base (escrow) Addresses: [0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7](https://basescan.org/address/0xeE7981C4642dE8d19AeD11dA3bac59277DfD59D7#code), [0xD923B6479006623303f180fA149A3b5C3bf5ff66](https://basescan.org/address/0xD923B6479006623303f180fA149A3b5C3bf5ff66#code) (Implementation #1 (Upgradable)), [0x502C848E6f88CD018153712a68Ee518C7F34AF12](https://basescan.org/address/0x502C848E6f88CD018153712a68Ee518C7F34AF12#code) (Implementation #2 (Upgradable)), [0x72343e8e448Fa539A1F118f870A1De1132f2fcaD](https://basescan.org/address/0x72343e8e448Fa539A1F118f870A1De1132f2fcaD#code) (Admin) A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain. - Roles: - **getMaster**: UpgradeGatekeeper - **networkGovernor**: GnosisSafeL2 - **validators**: EOA 2 All supported tokens in this escrow are included in the value secured calculation. Can be upgraded by: UpgradeGatekeeper with no delay #### LayerZeroBridge Addresses: [0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453](https://basescan.org/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code) A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain. - Roles: - **governor**: GnosisSafeL2 ### Binance Smart Chain #### EmptyVerifier Addresses: [0x1202e0557A23531D09015C802e993d6423685FfB](https://bscscan.com/address/0x1202e0557A23531D09015C802e993d6423685FfB#code), [0x54dB01A8D4C7A6404fD234A009e89418b16796dB](https://bscscan.com/address/0x54dB01A8D4C7A6404fD234A009e89418b16796dB#code) (Implementation (Upgradable)), [0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C](https://bscscan.com/address/0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C#code) (Admin) - Roles: - **admin**: UpgradeGatekeeper Can be upgraded by: UpgradeGatekeeper with no delay #### ZkLink BNB (escrow) Addresses: [0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9](https://bscscan.com/address/0xb8D9F005654b7b127b34dae8F973Ba729ca3A2D9#code), [0x3EC0ad3000b13188c235E23D549F1A1bBd25B028](https://bscscan.com/address/0x3EC0ad3000b13188c235E23D549F1A1bBd25B028#code) (Implementation #1 (Upgradable)), [0x04bF7cf48a68dfC744fc22662B90e2ecaf14D716](https://bscscan.com/address/0x04bF7cf48a68dfC744fc22662B90e2ecaf14D716#code) (Implementation #2 (Upgradable)), [0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C](https://bscscan.com/address/0x81DEE5B8BfFa75Cc1ec729533EeD30CfE4F81F8C#code) (Admin) A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain. - Roles: - **getMaster**: UpgradeGatekeeper - **networkGovernor**: GnosisSafeL2 - **validators**: EOA 3 All supported tokens in this escrow are included in the value secured calculation. Can be upgraded by: UpgradeGatekeeper with no delay #### LayerZeroBridge Addresses: [0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453](https://bscscan.com/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code) A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain. - Roles: - **governor**: GnosisSafeL2 ### Ethereum #### ZkLink Ethereum (escrow) Addresses: [0x35D173cdfE4d484BC5985fDa55FABad5892c7B82](https://etherscan.io/address/0x35D173cdfE4d484BC5985fDa55FABad5892c7B82#code), [0xa9B4AB2E78f93B340Bbd6541B713B29B6B3BEe3c](https://etherscan.io/address/0xa9B4AB2E78f93B340Bbd6541B713B29B6B3BEe3c#code) (Implementation #1 (Upgradable)), [0x070fC04F6Ce2cd1FFBC2aE1d6a381E46f467284F](https://etherscan.io/address/0x070fC04F6Ce2cd1FFBC2aE1d6a381E46f467284F#code) (Implementation #2 (Upgradable)), [0xFBD68679271fDa6ca9bf6F20993Cd39E20072753](https://etherscan.io/address/0xFBD68679271fDa6ca9bf6F20993Cd39E20072753#code) (Admin) A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain. - Roles: - **getMaster**: UpgradeGatekeeper - **networkGovernor**: GnosisSafe - **validators**: EOA 4 All supported tokens in this escrow are included in the value secured calculation. Can be upgraded by: UpgradeGatekeeper with no delay #### EmptyVerifier Addresses: [0xe38f8bc093a1f76f0A444bA6B75F46d6dC686dba](https://etherscan.io/address/0xe38f8bc093a1f76f0A444bA6B75F46d6dC686dba#code), [0xD6C54b6BC87BCB5F96De3fA8538c548f47829a08](https://etherscan.io/address/0xD6C54b6BC87BCB5F96De3fA8538c548f47829a08#code) (Implementation (Upgradable)), [0xFBD68679271fDa6ca9bf6F20993Cd39E20072753](https://etherscan.io/address/0xFBD68679271fDa6ca9bf6F20993Cd39E20072753#code) (Admin) Placeholder verifier for chains without pairing support. It rejects all block and exit proofs. - Roles: - **admin**: UpgradeGatekeeper Can be upgraded by: UpgradeGatekeeper with no delay #### LayerZeroBridge Addresses: [0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453](https://etherscan.io/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code) A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain. - Roles: - **governor**: GnosisSafe ### Mantle #### EmptyVerifier Addresses: [0x0c0F729c74c9AC41F9C702dAd11011F40D4190B0](https://explorer.mantle.xyz/address/0x0c0F729c74c9AC41F9C702dAd11011F40D4190B0#code), [0xd8428A59B60Df2d81514D429D57DF23293f1bCe7](https://explorer.mantle.xyz/address/0xd8428A59B60Df2d81514D429D57DF23293f1bCe7#code) (Implementation (Upgradable)), [0x2B9BA259F24965a81Fa0c4E477e3791673744059](https://explorer.mantle.xyz/address/0x2B9BA259F24965a81Fa0c4E477e3791673744059#code) (Admin) - Roles: - **admin**: UpgradeGatekeeper Can be upgraded by: UpgradeGatekeeper with no delay #### ZkLink Mantle (escrow) Addresses: [0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c](https://explorer.mantle.xyz/address/0x3C7c0ebFCD5786ef48df5ed127cdDEb806db976c#code), [0x067c7126a83560Ed2Fc345d25799F696B7Ea47Ca](https://explorer.mantle.xyz/address/0x067c7126a83560Ed2Fc345d25799F696B7Ea47Ca#code) (Implementation #1 (Upgradable)), [0xf04Af2e7AbCd011459a01A4A250ece46969c84F2](https://explorer.mantle.xyz/address/0xf04Af2e7AbCd011459a01A4A250ece46969c84F2#code) (Implementation #2 (Upgradable)), [0x2B9BA259F24965a81Fa0c4E477e3791673744059](https://explorer.mantle.xyz/address/0x2B9BA259F24965a81Fa0c4E477e3791673744059#code) (Admin) A secondary cross-chain ZkLink rollup contract. It only escrows user deposits, and synchronizes deposit data with the main zkLink chain. - Roles: - **getMaster**: UpgradeGatekeeper - **networkGovernor**: GnosisSafeL2 - **validators**: EOA 5 All supported tokens in this escrow are included in the value secured calculation. Can be upgraded by: UpgradeGatekeeper with no delay #### LayerZeroBridge Addresses: [0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453](https://explorer.mantle.xyz/address/0xf8A29C604eff6e4a3f7ad5f29ae11656bfD85453#code) A LayerZero (v1 endpoint) bridge that relays synchronization hashes and block confirmations between zkLink chains. Messages are only accepted from the trusted remote bridges set by its governor, and the governor-set minimum gas is forwarded for execution on the destination chain. - Roles: - **governor**: GnosisSafeL2 The current deployment carries some associated risks: - Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).