Search

Search for projects by name

X Layer logo
X Layer

Badges

About

X Layer is a Layer 2 by OKX with seamless integration with OKX products. It is powered by the Agglayer CDK.


  • Total Value SecuredTVS
    $13.50 M0.07%
  • Past day UOPSDaily UOPS
    2.5214.1%
  • Gas token
    OKB
  • Type
    Other

  • Purpose
    Universal
  • Chain ID
    196

  • Tokens breakdown

    Value secured breakdown

    View TVS breakdown
    Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    X Layer is a Layer 2 by OKX with seamless integration with OKX products. It is powered by the Agglayer CDK.

    Why is the project listed in others?

    The proof system isn't fully functional

    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

    2024 Dec 10 — 2025 Dec 10

    Past Day UOPS
    2.51
    Past Day Ops count
    217.58 K
    Max. UOPS
    24.39
    2025 Sep 15
    Past day UOPS/TPS Ratio
    1.01

    The section shows the operating costs that L2s pay to Ethereum.


    2025 Oct 27 — Dec 10


    Total cost
    $5.14 K
    Avg cost per L2 UOP
    $0.000459
    Avg cost per day
    $128.68

    This section shows how much data the project publishes to its data-availability (DA) layer over time. The project currently posts data toEthereumEthereum.


    2025 Oct 27 — Dec 10


    Data posted
    2.15 GiB
    Avg size per day
    47.84 MiB
    Avg size per L2 UOP
    190.66 B

    This section shows how "live" the project's operators are by displaying how frequently they submit transactions of the selected type. It also highlights anomalies - significant deviations from their typical schedule.

    No ongoing anomalies detected

    Avg. tx data subs. interval
    Avg. state updates interval
    Past 30 days anomalies

    Migration to Pessimistic Proofs

    2025 Aug 5th

    X Layer stops validating the full L2 state and moves to bridge accounting proofs.

    Learn more

    X Layer Public Launch

    2024 Apr 16th

    X Layer is live on mainnet, integrated with Agglayer.

    Learn more
    This project includes unverified contracts.
    (CRITICAL)
    This project includes unverified contracts.
    (CRITICAL)
    Sequencer failureState validationData availabilityExit windowProposer failure
    Sequencer failure
    Self sequence

    In the event of a sequencer failure, users can force transactions to be included in the project’s chain by sending them to L1. There can be up to a 12h delay on this operation.

    State validation
    None

    Currently the system permits invalid state roots. ‘Pessimistic’ proofs only validate the bridge accounting.

    Data availability
    Onchain

    All of the data needed for proof construction is published on Ethereum L1.

    Exit window
    None

    There is no window for users to exit in case of an unwanted regular 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.

    Data is posted on Ethereum

    Transaction data is posted to Ethereum L1 as compressed calldata or blobs through the OP Stack batch inbox.

    Learn more about the DA layer here: Ethereum logoEthereum
    A diagram of the upgrades and governance
    A diagram of the upgrades and governance

    The regular upgrade process for shared system contracts and L2-specific validium contracts starts at the PolygonAdminMultisig. For the shared contracts, they schedule a transaction that targets the ProxyAdmin via the Timelock, wait for 3d and then execute the upgrade. An upgrade of the Layer 2 specific validium contract requires first adding a new rollupType through the Timelock and the AgglayerManager (defining the new implementation and verifier contracts). Now that the rollupType is created, either the local admin or the PolygonAdminMultisig can immediately upgrade the local system contracts to it. Chains using pessimistic proofs often have completely sovereign upgrade paths from the ones described here, but the shared contracts still remain relevant to them because they use them as escrow.

    The PolygonSecurityCouncil can expedite the upgrade process by declaring an emergency state. This state pauses both the shared bridge and the AgglayerManager and allows for instant upgrades through the timelock. Accordingly, instant upgrades for all system contracts are possible with the cooperation of the SecurityCouncil. The emergency state has been activated 1 time(s) since inception.

    Furthermore, the PolygonAdminMultisig is permissioned to manage the shared trusted aggregator (proposer and prover) for all participating Layer 2s, deactivate the emergency state, obsolete rollupTypes and manage operational parameters and fees in the AgglayerManager directly. The local admin of a specific Aggchain can manage their chain by choosing the trusted sequencer, manage forced batches and set the data availability config. For sovereign chains using pessimistic proofs they can manage any proof logic that might be used on top of the minimal pessimistic one. Creating new Layer 2s (of existing rollupType) is outsourced to the PolygonCreateRollupMultisig but can also be done by the PolygonAdminMultisig. Custom non-shared bridge escrows have their custom upgrade admins listed in the permissions section.

    Users can force any transaction

    Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract on the host chain directly.

    Regular messaging

    The user initiates L2->L1 messages by submitting a regular transaction on this chain. When the block containing that transaction is settled, the message becomes available for processing on L1. ZK proofs are required to settle blocks.

    1. AgglayerBridge.sol - source code, claimAsset function

    Shared bridge and Pessimistic Proofs

    Polygon Agglayer uses a shared bridge escrow for Rollups, Validiums and external chains that opt in to participate in interoperability. Each participating chain needs to provide zk proofs to access any assets in the shared bridge. In addition to the full execution proofs that are used for the state validation of Rollups and Validiums, accounting proofs over the bridges state (Polygon calls them ‘Pessimistic Proofs’) are used by external chains (‘cdk-sovereign’). Using the SP1 zkVM by Succinct, projects without a full proof system on Ethereum are able to share the bridge with the zkEVM Agglayer projects.

    • Funds can be lost if the accounting proof system for the bridge (pessimistic proofs, SP1) is implemented incorrectly.

    • Funds can be stolen if the operator manipulates the L2 state, which is not validated on Ethereum (CRITICAL).

    1. Pessimistic Proof - Polygon Knowledge Layer
    2. Etherscan: AgglayerManager.sol - verifyPessimisticTrustedAggregator() function
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Roles:

    Challenger EOA 8

    Allowed to challenge or delete state roots proposed by a Proposer.

    Proposer EOA 9

    Allowed to post new state roots of the current layer to the host chain.

    Sequencer EOA 5

    Allowed to commit transactions from the current layer to the host chain.

    Trusted Aggregator (Proposer) (2) EOA 6EOA 7

    Permissioned to post new state roots and global exit roots accompanied by ZK proofs.

    Actors:

    PolygonAdminMultisig 0x242d…3e21

    A Multisig with 5/9 threshold.

    • Can upgrade with 3d delay
      • AgglayerGateway
      • AgglayerBridge
      • AgglayerManager
      • AgglayerGER
    • Can interact with AgglayerGateway
      • add new routes from proof selector to verifier / pessimisticVkey for pessimistic proofs with 3d delay
      • add or update default aggchain verification keys (aggchainVkey) for any given selectors
      • change the aggchainSigners and threshold (a multisig used for permissioned state transitions)
      • freeze routes from proof selector to verifier / pessimisticVkey for pessimistic proofs
    • Can interact with AgglayerBridge
      • upgrade the implementation of wrapped tokens deployed by the bridge with 3d delay
    • Can interact with AgglayerManager
      • deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager
      • manage all access control roles, add new rollup types (which are implementation contracts that can then be upgraded to by connected projects), update any connected projects to new rollup types, migrate to pessimistic proofs and rollback batches, connect existing rollups to the PolygonRollupManager with 3d delay
      • manage parameters like fees for all connected projects, set the trusted aggregator, stop the emergency state, update projects and obsolete rollup types
    • Can interact with Timelock
      • propose, cancel and execute transactions in the timelock, manage all access control roles and change the minimum delay with 6d delay or with 3d delay
    Used in:
    OwnerContract 0xe58C…9091
    • Can upgrade with no delay
      • AnchorStateRegistry
      • DelayedWETH
      • SystemConfig
      • OptimismMintableERC20Factory
      • OptimismPortal2
      • SuperchainConfig
      • L1ERC721Bridge_neutered
      • DisputeGameFactory
      • L1StandardBridge_neutered
      • L1CrossDomainMessenger
    • Can interact with AddressManager
      • set and change address mappings
    PolygonSecurityCouncil 0x37c5…Dcb6

    A Multisig with 6/8 threshold.

    • Can interact with AgglayerManager
      • activate the emergency state in the PolygonRollupManager and in the shared bridge immediately, effectively pausing all projects connected to them and making system contracts instantly upgradable
    Used in:
    PolygonCreateRollupMultisig 0xC74e…79dB

    A Multisig with 3/7 threshold.

    • Can interact with AgglayerManager
      • deploy new projects that use predefined rollup types (implementations) and connect them or other Agglayer chains to the PolygonRollupManager
    Used in:
    • Can interact with AggchainECDSAMultisig
      • sole address that can force batches
    • Can interact with AggchainECDSAMultisig
      • sign state transitions (replaces state validation for this aggchain)
    • Can interact with SystemConfig
      • it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system
    • Can interact with AggchainECDSAMultisig
    EOA 6 and EOA 7 (2) 0x20A5…51dE0xD7e6…82Fb
    • A trusted Aggregator - acting directly
    • A Challenger - acting directly
    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

    Ethereum

    System contract defining the X Layer Aggchain logic. It only enforces bridge accounting (pessimistic) proofs to protect the shared bridge while the Aggchain state transitions are not proven. They must instead be signed by 1 aggchainSigner(s).

    • Roles:
      • admin: EOA 4
      • aggchainSigners: EOA 2
      • forceBatchAddress: EOA 1
    Implementation used in:

    Contains configuration parameters such as the Sequencer address, gas limit on this chain and the unsafe block signer address.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
      • batcherHash: EOA 5
      • owner: EOA 3
    Can be upgraded by:

    Central message and gas token (dOKB) bridge of the OP stack part of this deployment. It allows for permissioned state proposals without public challenges, and forced transactions.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:

    The dispute game factory allows the creation of dispute games, used to propose state roots and eventually challenge them.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:
    Implementation used in:

    A verifier gateway for pessimistic proofs. Manages a map of chains and their verifier keys and is used to route proofs based on the first 4 bytes of proofBytes data in a proof submission. The SP1 verifier is used for all proofs.

    • Roles:
      • addPpRoute: Timelock; ultimately PolygonAdminMultisig
      • admin: SharedProxyAdmin; ultimately PolygonAdminMultisig
      • aggchainDefaultVKey: PolygonAdminMultisig
      • alMultisig: PolygonAdminMultisig
      • freezePpRoute: PolygonAdminMultisig
    Proxy used in:

    The shared bridge contract, escrowing user funds sent to Agglayer chains. It is usually mirrored on each chain and can be used to transfer both ERC20 assets and arbitrary messages.

    • Roles:
      • admin: SharedProxyAdmin; ultimately PolygonAdminMultisig
      • proxiedTokensManager: Timelock; ultimately PolygonAdminMultisig
    • This contract can store any token.
    Proxy used in:

    The central shared managing contract for Polygon Agglayer chains. This contract coordinates chain deployments and proof validation. All connected Layer 2s can be globally paused by activating the ‘Emergency State’. This can be done by the PolygonSecurityCouncil or by anyone after 1 week of inactive verifiers.

    • Roles:
      • admin: SharedProxyAdmin; ultimately PolygonAdminMultisig
      • createRollup: PolygonAdminMultisig, PolygonCreateRollupMultisig
      • defaultAdmin: Timelock; ultimately PolygonAdminMultisig
      • emergencyCouncilAdmin: PolygonSecurityCouncil
      • trustedAggregator: EOA 6, EOA 7
      • tweakParameters: PolygonAdminMultisig
    Proxy used in:

    A merkle tree storage contract aggregating state roots of each participating Layer 2, thus creating a single global merkle root representing the global state of the Agglayer, the ‘global exit root’. The global exit root is synchronized to all connected Layer 2s to help with their interoperability.

    • Roles:
      • admin: SharedProxyAdmin; ultimately PolygonAdminMultisig
    Proxy used in:
    Timelock 0xEf14…A4EF

    A timelock with access control. In the case of an activated emergency state in the AgglayerManager, all transactions through this timelock are immediately executable. The current minimum delay is 3d.

    • Roles:
      • timelockAdmin: PolygonAdminMultisig (no delay if in emergency state), Timelock (no delay if in emergency state); ultimately PolygonAdminMultisig (no delay if in emergency state)
    Implementation used in:

    Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain’s epoch gas limit, it can be resubmitted via this contract’s replay function.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:
    Implementation used in:

    Contains the latest confirmed state root that can be used as a starting point in a dispute game. It specifies which game type can be used for withdrawals, which currently is the PermissionedDisputeGame.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:
    Implementation used in:

    Contract designed to hold the bonded ETH for each game. It is designed as a wrapper around WETH to allow an owner to function as a backstop if a game would incorrectly distribute funds.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:
    Implementation used in:
    PreimageOracle 0x1fb8…aDD3

    The PreimageOracle contract is used to load the required data from L1 for a dispute game.

    Implementation used in:

    The MIPS contract is used to execute the final step of the dispute game which objectively determines the winner of the dispute.

    ProxyAdmin 0x313c…FEE6
    • Roles:
      • owner: OwnerContract

    A helper contract that generates OptimismMintableERC20 contracts on the network it’s deployed to. OptimismMintableERC20 is a standard extension of the base ERC20 token contract designed to allow the L1StandardBridge contracts to mint and burn tokens. This makes it possible to use an OptimismMintableERC20 as this chain’s representation of a token on the host chain, or vice-versa.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:
    Implementation used in:

    Used to bridge ERC-721 tokens from host chain to this chain.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:

    This OP stack bridge contract has been modified to disallow ETH and ERC-20 bridging.

    • Roles:
      • admin: ProxyAdmin; ultimately OwnerContract
    Can be upgraded by:
    ProxyAdmin 0xC690…0552
    • Roles:
      • owner: OwnerContract
    PermissionedDisputeGame 0xEeDa…08e8

    Same as FaultDisputeGame, but only two permissioned addresses are designated as proposer and challenger.

    • Roles:
    SP1Verifier 0x0459…C459

    Verifier contract for SP1 proofs (v5.0.0).

    Implementation used in:
    SharedProxyAdmin 0x0F99…CC4A
    • Roles:
      • owner: Timelock
    Implementation used in:
    BridgeLib 0x3622…8aB3

    Extension contract of the AgglayerBridge for asset metadata…

    Implementation used in:

    Value Secured is calculated based on these smart contracts and tokens:

    Proxy used in:

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

    • Funds can be stolen if the source code of unverified contracts contains malicious code (CRITICAL).

    Program Hashes

    Name
    Hash
    Repository
    Verification
    Used in
    0x00ef...cc30
    None

    Projects used in

    Search for projects used in

    0x0000...b639

    Projects used in

    Search for projects used in