Search

Search for projects by name or address

Badges

About

ApeX Omni is an application-specific ZK rollup for order book trading. It uses zkLink X to aggregate liquidity deposited across multiple chains.


  • Total Value SecuredTVS
    $29.35 M2.64%
  • Past day UOPSDaily UOPS
    No data
  • Type
    Other
  • Purpose
    Exchange

  • Host chain
    Arbitrum One

  • Tokens breakdown

    Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    ApeX Omni is an application-specific ZK rollup for order book trading. It uses zkLink X to aggregate liquidity deposited across multiple chains.

    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 2/2 validator set and LayerZero bridge not to forge 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 here.


    Total
    Canonically BridgedCanonically Bridged ValueCanonical
    Natively MintedNatively Minted TokensNative
    Externally BridgedExternally Bridged ValueExternal

    ETH & derivatives
    Stablecoins
    BTC & derivatives
    Other

    ApeX Pro sunset

    2025 Feb 27th

    ApeX Pro StarkEx chain is discontinuied in favor of zkLink X stack chain.

    Learn more

    ApeX Omni launched on zkLink X

    2024 Jun 10th

    A launch of ApeX Omni chain build on zkLink X stack is announced.

    Learn more

    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.

    There are 3 additional risks coming from the host chain Arbitrum One logoArbitrum One
    The L3 risks depend on the individual properties of L3 and those of the host chain combined.
    SEQUENCER
    FAILURE
    STATE
    VALIDATION
    DATA
    AVAILABILITY
    EXIT WINDOWPROPOSER
    FAILURE
    Arbitrum One
    L2
    Self sequenceFraud proofs (INT)OnchainNoneSelf propose
    ApeX Omni
    L3 • Individual
    No mechanismValidity proofs (SN)Onchain (SD)NoneCannot withdraw
    ApeX Omni
    L3 • Combined
    No mechanismValidity proofsOnchainNoneCannot withdraw
    L2 & L3 individual risks
    Sequencer failureState validationData availabilityExit windowProposer failure
    L3 combined risks
    Sequencer failureState validationData availabilityExit windowProposer failure

    L3 combined risks
    The information below reflects combined L2 & L3 risks.
    Sequencer failure
    No mechanism

    There is no mechanism to have transactions be included if the sequencer is down or censoring.

    State validation
    Validity proofs

    Zero knowledge cryptography is used to ensure state correctness. Proofs are first verified on Arbitrum One and finally on Ethereum.

    Data availability
    Onchain

    All of the data needed for proof construction is published on the base chain, which ultimately gets published on Ethereum.

    Exit window
    None

    There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.

    Proposer failure
    Cannot withdraw

    Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.

    ApeX Omni
    ApeX Omni is not even a
    Stage 0
    Appchain
    project.
    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.

    Learn more about 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.

    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.

    1. See CommitBlockInfo in commitBlock function on ZkLink.sol
    Learn more about the DA layer here: Arbitrum One logoArbitrum One
    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 verified with these validity proofs and rely on LayerZero bridges instead. Deposits could be stolen if bridges are compromized.

    1. Function proveBlocks on ZkLinkPeriphery.sol calls verifier.verifyAggregatedBlockProof

    Trusted Setups

    Onchain verifier

    Used in

    ApeX Omni logo

    Onchain verifier

    Used in

    ApeX Omni logo
    2026 July 22, 10:24 UTC
    2changes

    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.

    contract GnosisSafe (eth:0x374632e7D48B7872d904524FdC5Dd4516F42cDFF) [GnosisSafe] {
    +++ description: None
    values.$members.5:
    - "eth:0x824C9364A6CF8f5EB542ad2ca8F5705561C8b1db"
    + "eth:0x522b8Df4c9965934654CFebbf20882005c33cE18"
    }
    2025 July 22, 16:06 UTC
    2changes

    project is archived.

    contract StarkPerpetualUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb) {
    +++ description: Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.
    values.isFrozen:
    - false
    + true
    }
    2025 July 09, 09:25 UTC
    4changes

    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.

    contract PerpetualEscapeVerifier (0xaadFdB9CAc145c65f2284fBe24600d07fb37F7BD) {
    +++ description: Special verifier for the escape() function.
    values.hasRegisteredFact:
    - false
    + true
    }
    contract StarkPerpetualUSDT (0xe53A6eD882Eb3f90cCe0390DDB04c876C5482E6b) {
    +++ description: Central Validium contract. Receives (verified) state roots from the Operator, allows users to consume L2 -> L1 messages and send L1 -> L2 messages. Critical configuration values for the L2's logic are defined here by various governance roles.
    values.isFrozen:
    - false
    + true
    }
    2025 February 18, 09:12 UTC
    High severity
    27changes

    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)

    contract StarkExchangeUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb) {
    +++ description: None
    sourceHashes.5:
    - "0x0c38b010717f86413abfb52412e5eb50b689b8d172e8c39ef81fc428fe5a1e52"
    + "0xe29824efd6d907d93d9b4b2b0737630ab974bce5e0017cb1459975c66a798280"
    sourceHashes.4:
    - "0xb8c0122f24ea2e559e908278def38aa80b6cd27b39b2d74402dbf5ba2585c7c5"
    + "0xdfa7b8bf4884e9f9933980cec5bcf744d2e522c291ed2a383c140cfb8c795f29"
    sourceHashes.3:
    - "0x473fc9765112e835124640cb91a4642354e09e94f92462929139d9ab5b6ddcf4"
    + "0xb5161e812087e15dd53a4c29ab296ade613b540445f7d1eb470de4f81a9c555c"
    sourceHashes.2:
    - "0x5ebd3f192c54b3d36f0d57e1cb14f418ae69a1694f7dc7d19d006883fc89e525"
    + "0xf6d00f2bc5db71a79b854049b38819f78c8fbbd98dcc2e4555f70946f6e58069"
    sourceHashes.1:
    - "0x758db67adde840068b01898c25f007a0d0549aaf9d431c2e0ae77ae4c2c56b33"
    + "0xc8c9c0e9c5171cb82b707e7e4b4ea80d427ba6f1dc21fc604efdce0ffa40323d"
    values.$implementation.4:
    - "0x34E7cfedF99995A47B3e3D0AB88ba67072B55035"
    + "0x31e2d974BaC547101413c24C23443AD488423f64"
    values.$implementation.3:
    - "0xdD5f42B087C1D2F73a2b443249b7D3DbE148a859"
    + "0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175"
    values.$implementation.2:
    - "0x564EA75a26Dc0Bb5c5033B4752f88953A25AD058"
    + "0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310"
    values.$implementation.1:
    - "0x533a7f4bE5453513049EB94A2b115F2CcE161dce"
    + "0x540Ad8576d2F90f28994ab001622F964945854A8"
    values.$implementation.0:
    - "0xdD813397b79f8df581eEb0c4B8aB72304c528396"
    + "0x8C43C9bec15d82D153C52518030e0a9590ABD35d"
    values.$pastUpgrades.4:
    + ["2025-02-17T09:39:23.000Z","0x7c6ca54630321bc1f0e2ad0b68972ec3f6efaab449f09839ef612f90d4292bdd",["0x8C43C9bec15d82D153C52518030e0a9590ABD35d","0x540Ad8576d2F90f28994ab001622F964945854A8","0x1BC9C618B7FA6b5EfAAD31DC801eB55c608B9310","0x45de249eEa8f9CDB70943B17CceDeb42F5BA0175","0x31e2d974BaC547101413c24C23443AD488423f64"]]
    values.$upgradeCount:
    - 4
    + 5
    values.implementation:
    - "0xdD813397b79f8df581eEb0c4B8aB72304c528396"
    + "0x8C43C9bec15d82D153C52518030e0a9590ABD35d"
    values.VERSION:
    - "3.1.0"
    + "3.2.0"
    }
    2025 January 30, 10:24 UTC
    4changes

    Updates progHash, not found online, added to the library.

    contract StarkExchangeUSDC (0xA1D5443F2FB80A5A55ac804C948B45ce4C52DCbb) {
    +++ description: None
    values.globalConfigurationHash:
    - "0x01897348c8e7a04145727a7d369a76c01711a828d58afeca4c3e7d86596b85ba"
    + "0x0274c9dc2096cfe79c5f28f5bfb3a95b3bd0692430b4f9ba79f871068611804a"
    }
    contract FinalizableGpsFactAdapterUSDC (0xE741e26573782ae3C0ea9EC710FA99Fcd27fB953) {
    +++ description: None
    values.programHash:
    - "3114724292040200590153042023978438629733352741898912919152162079752811928849"
    + "2530337539466159944237001094809327283009177793361359619481044346150483328860"
    }
    The section considers only the L3 properties. For more details please refer to Arbitrum One logoArbitrum One

    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.

    • 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.

    • Users can be censored if the operator refuses to include their transactions.

    The section considers only the L3 properties. For more details please refer to Arbitrum One logoArbitrum One

    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.

    • Funds can be frozen if the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL).

    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.

    • Funds can be lost if the 2/2 validator set or LayerZero bridge forges a non-existent deposit.

    • Funds can be frozen if cross-chain synchronization messages are not delivered.

    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Arbitrum One

    Actors:

    UpgradeGatekeeper0x2e8A…a190

    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
    • Can interact with ZkLink Main
      • transfer mastership
    GnosisSafeL20xba38…12ED

    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 ZkLink Main
      • commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains

    Base Chain

    Actors:

    UpgradeGatekeeper0x7234…fcaD
    • Can upgrade with no delay
      • EmptyVerifier
      • ZkLink Base
    • Can interact with ZkLink Base
      • transfer mastership
    GnosisSafeL20xba38…12ED

    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 ZkLink Base
      • commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains

    Binance Smart Chain

    Actors:

    UpgradeGatekeeper0x81DE…1F8C
    • Can upgrade with no delay
      • EmptyVerifier
      • ZkLink BNB
    • Can interact with ZkLink BNB
      • transfer mastership
    GnosisSafeL20xba38…12ED

    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 ZkLink BNB
      • commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains

    Ethereum

    Actors:

    GnosisSafe0xF9f8…6B94

    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
    UpgradeGatekeeper0xFBD6…2753

    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
    • Can interact with ZkLink Ethereum
      • commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains

    Mantle

    Actors:

    UpgradeGatekeeper0x2B9B…4059
    • Can upgrade with no delay
      • EmptyVerifier
      • ZkLink Mantle
    • Can interact with ZkLink Mantle
      • transfer mastership
    GnosisSafeL20xba38…12ED

    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 ZkLink Mantle
      • commit, execute, and revert L2 blocks, and send block confirmations to other zkLink chains
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    Arbitrum One

    PLONK verifier used to validate aggregated L2 block proofs and zero-knowledge exit proofs.

    • Roles:
      • admin: UpgradeGatekeeper

    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.

    LayerZeroBridge0xfC5c…2B7D

    A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.

    Base Chain

    • Roles:
      • admin: UpgradeGatekeeper
    LayerZeroBridge0xeD5D…2AC3

    A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.

    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.

    Binance Smart Chain

    • Roles:
      • admin: UpgradeGatekeeper

    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.

    LayerZeroBridge0xc271…9D2e

    A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.

    Ethereum

    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.

    LayerZeroBridge0x3D70…441E

    A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.

    Placeholder verifier for chains without pairing support. It rejects all block and exit proofs.

    • Roles:
      • admin: UpgradeGatekeeper

    Mantle

    LayerZeroBridge0x04C6…5D1e

    A LayerZero bridge that relays synchronization hashes and block confirmations between zkLink chains.

    • Roles:
      • admin: UpgradeGatekeeper

    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.

    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).