Search

Search for projects by name or address

Facet logo
Facet

Badges

About

Facet is a based rollup built on OP-Succinct. It uses FCT as its native gas token, which is mintable by burning ETH on L1.


  • Total Value SecuredTVS
    $462.34 K3.08%
  • Past day UOPSDaily UOPS
    <0.0111.1%
  • Stage
  • Gas token
    FCT

  • Type
    Optimistic Rollup
  • Purpose
    Universal
  • Chain ID
    1027303

  • Tokens breakdown

    Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    Facet is a based rollup built on OP-Succinct. It uses FCT as its native gas token, which is mintable by burning ETH on L1.


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

    ETH & derivatives
    Stablecoins
    BTC & derivatives
    Other

    2025 Jun 21 — 2026 Jun 21

    Past Day UOPS
    <0.0111.1%
    Past Day Ops count
    20
    Max. UOPS
    0.13
    2024 Dec 22
    Past day UOPS/TPS Ratio
    1.00

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


    2025 Jun 21 — 2026 Jun 21


    Total cost
    $118.71 K
    Avg cost per L2 UOP
    $2.921083
    Avg cost per day
    $325.24

    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

    2026 May 22 — Jun 21

    Avg. tx data subs. interval
    1 hour
    Avg. state updates interval
    6 hours
    Past 30 days anomalies
    98% normal uptime

    Last 30 day anomalies

    All liveness anomalies detected for this project in the last 30 days, helping you review recent downtime and availability issues.

    No Tx data submissions were performed for 14h 22m 12s (from 2026 Jun 03, 00:30 UTC until 2026 Jun 03, 14:53 UTC). These typically occur every 1h 10m 44s on average.

    Rollup redeployed

    2026 May 18th

    New Rollup contract takes over state-root proposals with a new SP1VerifierGateway.

    Learn more

    SP1 proof system deployed

    2025 Jul 2nd

    Facet launches its optimistic rollup contract with SP1 zk fault proofs.

    Learn more
    Sequencer failureState validationData availabilityExit windowProposer failure
    Sequencer failure
    Self sequence

    Users can self sequence transactions by sending them on L1. There is no privileged operator.

    State validation
    Fraud proofs (1R, ZK)

    Actors watching the chain can challenge state proposals, and challenged proposals must provide ZK proofs. SNARKs are zero knowledge proofs that ensure state correctness, but require trusted setup.

    Data availability
    Onchain

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

    Exit window

    Users can exit funds at any time because contracts are not upgradeable.

    Proposer failure
    Self propose

    Anyone can propose blocks if accompanied by a validity proof. Only the whitelisted proposers can propose state roots for recent blocks optimistically. Anyone can propose optimistically for L2 blocks that are older than 14d.

    Facet
    Facet is a
    Stage 2
    Optimistic Rollup.
    The project passes the walkaway test: users can exit in the presence of malicious operators even if the Security Council disappears.

    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.
    A diagram of the state validation
    A diagram of the state validation

    Facet implements a dual-track proving system that combines optimistic proposals with bonds with ZK validity proofs. The system allows bypassing the 7-day fraud proof window by providing a ZK proof.


    Challenges

    The system operates on two parallel tracks: an optimistic track where whitelisted proposers submit state roots with ETH bonds that can be challenged within a time window, and a validity-proof track where anyone can submit direct ZK proofs for immediate resolution. Validity proofs bypass the optimistic flow and can invalidate multiple incorrect optimistic proposals simultaneously targeting the same state root. When optimistic proposals are challenged, proposers must defend their claims by providing ZK proofs within the proving window.

    Validity proofs

    The system uses Succinct’s SP1 zkVM and Prover Network to generate zero-knowledge proofs that verify L2 state transitions. Anyone can submit a validity proof through the proveBlock() function of the Rollup contract to bypass the optimistic flow and settle an anchor block. Submitting a validity proof during a challenge settles the dispute in a single transaction.

    1. Facet ZK Fault Proofs - GitHub Repository
    PROVER

    Trusted Setups

    Onchain verifier

    Used in

    Mantle logoCelo logoKatana logoVector logoSophon logo

    Projects used in

    Search for projects used in

    Onchain verifier

    Used in

    Zircuit logoFluent logoFacet logo

    Onchain verifier

    Used in

    Mantle logoCelo logoKatana logoVector logoSophon logo

    Projects used in

    Search for projects used in

    Onchain verifier

    Used in

    Zircuit logoFluent logoFacet logo

    Program Hashes

    Name
    Hash
    Repository
    Verification
    Used in
    0x0083...b8c2
    Facet logo
    0x43f0...0829
    Facet logo
    2026 June 02, 13:30 UTC
    16changes

    This Rollup redeploy resolves the red trusted-setup risk: the new SP1VerifierGateway routes only to the Aztec-Ignition Plonk verifier (green), with ownership renounced so no other route can be added. Add the new Rollup contract (eth:0x026902ef…, deployed 2026-05-18) that took over state-root proposals on 2026-05-19, and rename the previous Rollup (eth:0x686E7d01…) to RollupDeprecated . Pulls in the new SP1VerifierGateway (eth:0xa236E6E3…) referenced by the new Rollup. The pre-existing L1Bridge is immutable and remains bound to RollupDeprecated ; it is dropped from escrows since it can no longer track live L2 state and no canonical bridge has been redeployed against the new Rollup.

    contract Rollup (eth:0x026902EF5a0931F25cbB78b5dd7a72EE998569AE) [facet/Rollup] {
    +++ description: Core rollup contract that manages the state of the rollup and its ZK fault proof system.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "immutable"
    template:
    + "facet/Rollup"
    sourceHashes:
    + ["0x18a889e730255386b3ecf5a44ea1cdcc2a4ecbd02908aa838976646eb02a9681"]
    description:
    + "Core rollup contract that manages the state of the rollup and its ZK fault proof system."
    deployerAddress:
    + "eth:0x23B0caA3782b5CE6Be7A54655A5DD2791335EAFC"
    sinceTimestamp:
    + 1779135407
    sinceBlock:
    + 25124426
    values:
    + {"$immutable":true,"AGG_VKEY":"0x0083a8b50160475a7a5911c03dfdee30f6c8a83112a71c5c1125cfb96148b8c2","anchorL2BlockNumber":3829060,"anchorProposalId":59,"anchorRoot":"0x24652ac280fdf6eab6f0ba68a8da7163bae727773da815a3864e724de5d21c7e","canonicalProposalFor":[],"canonicalProposalIdFor":[],"CHALLENGER_BOND":"10000000000000000000","computeL2Timestamp":[],"FALLBACK_TIMEOUT_SECS":1209600,"getProposalsLength":88,"isInFallbackWindow":[],"L2_BLOCK_TIME":12,"L2_START_TIMESTAMP":1778518859,"l2BlockAge":[],"MAX_CHALLENGE_SECS":604800,"MAX_PROVE_SECS":604800,"owner":"eth:0xb2B01DeCb6cd36E7396b78D3744482627F22C525","PROPOSAL_INTERVAL":1800,"PROPOSER_BOND":5000000000000000,"RANGE_VKEY_COMMITMENT":"0x43f01f7522e77ddc0bea30de6cb8075608a0d0c906660e4f5f430a1e5e170829","renouncedOwner":"eth:0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001","ROLLUP_CONFIG_HASH":"0x9554c3fe04d8bd05d2dff01471781e1d9fbbdcfa58bda686ad883fe5451fd97c","sequencerInbox":"eth:0x00000000000000000000000000000000000face7","VERIFIER":"eth:0xa236E6E31d94b613923d18313f534CE5b6b98eE1","version":"1.0.0","whitelistedProposers":["eth:0x615452db5467849689E98a8C5C242A96cF768a94"]}
    implementationNames:
    + {"eth:0x026902EF5a0931F25cbB78b5dd7a72EE998569AE":"Rollup"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    EOA (eth:0x615452db5467849689E98a8C5C242A96cF768a94) {
    +++ description: None
    receivedPermissions.0:
    + {"permission":"propose","from":"eth:0x026902EF5a0931F25cbB78b5dd7a72EE998569AE","description":"Can propose state roots optimistically without a ZK proof. Note that anyone can propose with a ZK proof, and anyone can propose optimistically after the fallback timeout.","role":".whitelistedProposers"}
    }
    contract Facet Multisig (eth:0xb2B01DeCb6cd36E7396b78D3744482627F22C525) [GnosisSafe] {
    +++ description: None
    receivedPermissions.0:
    + {"permission":"interact","from":"eth:0x026902EF5a0931F25cbB78b5dd7a72EE998569AE","description":"can set the whitelisted proposers.","role":".owner"}
    }
    + Status: CREATED
    contract SP1VerifierGateway (eth:0xa236E6E31d94b613923d18313f534CE5b6b98eE1) [succinct/SP1VerifierGateway]
    +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.
    2025 August 12, 12:08 UTC
    4changes

    Silenced discovery.

    contract L2Bridge (0x016bE6d77b783aBdDccaF3fea49ffa9c1CA660D4) {
    +++ description: L2Bridge is an ERC20 minter counterpart to an L1 bridge. This contract is used to mint new ERC20 tokens on the L2 once a token deposit is made on the L1. Note that the token received on L2 could have a different ticker/symbol than the token sent on L1.
    values.totalSupply:
    - 1000000000000000
    + "52000000000000000"
    }
    contract L2ToL1MessagePasser (0x4200000000000000000000000000000000000016) {
    +++ description: L2ToL1MessagePasser is a contract that allows messages to be sent from the L2 to the L1, used to send withdrawal requests from the L2 to the L1.
    values.messageNonce:
    - "1766847064778384329583297500742918515827483896875618958121606201292619931"
    + "1766847064778384329583297500742918515827483896875618958121606201292619932"
    }
    2025 August 12, 12:08 UTC
    2changes

    Whitelisted Proposer changed. Config changes only (our side) for the bridge.

    contract Rollup (0x686E7d01C7BFCB563721333A007699F154C04eb4) {
    +++ description: Rollup contract for Facet. This is the core contract that manages the state of the rollup and its proof system.
    values.whitelistedProposers.0:
    - "eth:0x23B0caA3782b5CE6Be7A54655A5DD2791335EAFC"
    + "eth:0x615452db5467849689E98a8C5C242A96cF768a94"
    }
    2025 August 07, 11:34 UTC
    2changes

    Initial discovery.

    Initial discovery

    + Status: CREATED
    contract L2Bridge (0x016bE6d77b783aBdDccaF3fea49ffa9c1CA660D4)
    +++ description: L2Bridge is an ERC20 minter counterpart to an L1 bridge. This contract is used to mint new ERC20 tokens on the L2 once a token deposit is made on the L1. Note that the token received on L2 could have a different ticker/symbol than the token sent on L1.
    + Status: CREATED
    contract L2ToL1MessagePasser (0x4200000000000000000000000000000000000016)
    +++ description: L2ToL1MessagePasser is a contract that allows messages to be sent from the L2 to the L1, used to send withdrawal requests from the L2 to the L1.
    2025 August 07, 11:34 UTC
    30changes

    Discovery rerun on the same block number with only config-related changes.

    contract L1Bridge (0x4E2eBa30a786c0643699b92234d74a71e958C08E) {
    +++ description: L1Bridge is an ETH bridge built on top of Rollup contract. It is the selected canonical bridge for this risk analysis. It used to bridge ETH from L1 to L2. Note that the token received on L2 has a different ticker/symbol than the token sent on L1.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "immutable"
    template:
    + "facet/L1ETHBridge"
    sourceHashes:
    + ["0x2428a7345462c1359eba9d5cf1d2749c05cb9419787b7e2914c411bb0c244867"]
    description:
    + "L1Bridge is an ETH bridge built on top of Rollup contract. It is the selected canonical bridge for this risk analysis. It used to bridge ETH from L1 to L2. Note that the token received on L2 has a different ticker/symbol than the token sent on L1."
    sinceTimestamp:
    + 1754512679
    sinceBlock:
    + 23084460
    values:
    + {"$immutable":true,"depositNonce":1,"l2Bridge":"eth:0x016bE6d77b783aBdDccaF3fea49ffa9c1CA660D4","owner":"eth:0x0000000000000000000000000000000000000000","paused":false,"rollup":"eth:0x686E7d01C7BFCB563721333A007699F154C04eb4","withdrawalDelay":0}
    implementationNames:
    + {"eth:0x4E2eBa30a786c0643699b92234d74a71e958C08E":"L1Bridge"}
    category:
    + {"name":"Canonical Bridges","priority":2}
    }
    contract Rollup (0x686E7d01C7BFCB563721333A007699F154C04eb4) {
    +++ description: Rollup contract for Facet. This is the core contract that manages the state of the rollup and its proof system.
    type:
    - "EOA"
    + "Contract"
    proxyType:
    - "EOA"
    + "immutable"
    template:
    + "facet/Rollup"
    sourceHashes:
    + ["0xd5ecfadcad80a6370fcf20fd9285959bf3452352c79ba06748998ea55cad3732"]
    description:
    + "Rollup contract for Facet. This is the core contract that manages the state of the rollup and its proof system."
    sinceTimestamp:
    + 1754512643
    sinceBlock:
    + 23084457
    values:
    + {"$immutable":true,"AGG_VKEY":"0x0083a8b50160475a7a5911c03dfdee30f6c8a83112a71c5c1125cfb96148b8c2","anchorL2BlockNumber":1721260,"anchorProposalId":0,"anchorRoot":"0x88b54f3a73b2cbb7f29caae53a780a8b4974c5e0bd157ad3c7bb122b72939bcc","canonicalProposalFor":[],"canonicalProposalIdFor":[],"CHALLENGER_BOND":"10000000000000000000","computeL2Timestamp":[],"FALLBACK_TIMEOUT_SECS":1209600,"getAnchorRoot":["0x88b54f3a73b2cbb7f29caae53a780a8b4974c5e0bd157ad3c7bb122b72939bcc",1721260],"getProposalsLength":1,"isInFallbackWindow":[],"L2_BLOCK_TIME":12,"L2_START_TIMESTAMP":1754499659,"l2BlockAge":[],"MAX_CHALLENGE_SECS":604800,"MAX_PROVE_SECS":604800,"owner":"eth:0xb2B01DeCb6cd36E7396b78D3744482627F22C525","PROPOSAL_INTERVAL":1800,"PROPOSER_BOND":5000000000000000,"RANGE_VKEY_COMMITMENT":"0x43f01f7522e77ddc0bea30de6cb8075608a0d0c906660e4f5f430a1e5e170829","renouncedOwner":"eth:0xdeaddeaddeaddeaddeaddeaddeaddeaddead0001","ROLLUP_CONFIG_HASH":"0x9554c3fe04d8bd05d2dff01471781e1d9fbbdcfa58bda686ad883fe5451fd97c","sequencerInbox":"eth:0x00000000000000000000000000000000000face7","VERIFIER":"eth:0x70C7FdB9e543bD15cd392df04e6d4BD05AfD8A66","version":"1.0.0","whitelistedProposers":["eth:0x23B0caA3782b5CE6Be7A54655A5DD2791335EAFC"]}
    implementationNames:
    + {"eth:0x686E7d01C7BFCB563721333A007699F154C04eb4":"Rollup"}
    category:
    + {"name":"Local Infrastructure","priority":5}
    }
    + Status: CREATED
    contract SP1Verifier (0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459)
    +++ description: Verifier contract for SP1 proofs (v5.0.0).
    + Status: CREATED
    contract FacetSafeModule (0x3235AdE33cF7013f5b5A51089390396e931e6BCF)
    +++ description: Module that allows the Safe to send Facet transactions.
    + Status: CREATED
    contract SP1Verifier (0x50ACFBEdecf4cbe350E1a86fC6f03a821772f1e5)
    +++ description: Verifier contract for SP1 proofs (v5.0.0).
    + Status: CREATED
    contract SP1VerifierGateway (0x70C7FdB9e543bD15cd392df04e6d4BD05AfD8A66)
    +++ description: This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.
    + Status: CREATED
    contract Facet Multisig (0xb2B01DeCb6cd36E7396b78D3744482627F22C525)
    +++ description: None
    + Status: CREATED
    contract FacetSafeProxy (0xC9F2d55C56Ef9fE4262c4d5b48d8032241AF4d25)
    +++ description: Helper of the Safe Module that allows to send Facet transactions.

    There is no central operator

    There is no privileged entity that sequences transactions or produces blocks. This activity is permissionless and open to anyone.

    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 EOA inbox on the host chain directly.

    Based Sequencing

    Facet uses a based sequencing model where transaction ordering is determined entirely by Ethereum L1. Users submit transactions to an immutable address on Ethereum with transaction information encoded as RLP calldata. Facet blocks preserve the exact order in which Ethereum includes these transactions. Additionally, L1 smart contracts can create Facet transactions by emitting events with the Facet event signature, where the event data payload contains the same RLP-encoded transaction data.

    1. Facet Inbox Address - Etherscan

    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. The process of block finalization takes a challenge period of 7d to complete. The challenge period can be shortened if the block is proven by providing a ZK proof.

    No canonical bridge

    Facet’s Rollup contract publishes L2 state roots but is not paired with a canonical bridge escrow. Anyone can deploy a bridge that reads the Rollup’s anchor state root to bridge arbitrary tokens; each bridge has its own L2 counterpart, so the same L1 token bridged through different bridges results in different L2 representations. Trust assumptions (operator role, upgradeability, withdrawal logic) are bridge-specific and do not propagate from the Rollup. The risk analysis on this page covers the Rollup and its proof system only; any bridge built on top must be assessed separately. Known bridges today include the FacetEtherBridgeV6 fast ETH bridge, whose withdrawals are processed by a permissioned EOA operator and do not depend on the Rollup state, and a legacy L1Bridge immutably bound to RollupDeprecated, which no longer receives state-root proposals.

    1. Rollup - Etherscan
    2. FacetEtherBridgeV6 (fast bridge) - Etherscan
    3. Legacy L1Bridge - Etherscan

    Gas Token Minting

    Facet uses FCT as its native gas token, which is minted through L1 gas consumption rather than being pre-minted. FCT issuance is directly tied to the amount of L1 ETH burned to pay calldata gas in Ethereum transactions, calculated as:

    FCT minted = ETH burned for calldata × mint rate

    ETH burned for calldata = L1 base fee × (total L1 gas cost - 21,000)

    The system targets issuing ~78,300 FCT every 500 Facet blocks. If less than the target is minted in 500 blocks, the mint rate increases proportionally (up to a maximum 4x increase). If the target is reached in fewer than 500 blocks, the mint rate decreases proportionally (up to a maximum 75% decrease).

    The maximum supply of FCT is ~1.65B. Once 50% of the supply is minted, the per-period target (now ~78,300) will be halved. It will be halved again at 75%, then at 87.5%, and so forth. The period target and period length are selected so that halvings will occur approximately every 5,256,000 blocks.

    This mechanism is similar to standard OP Stack guaranteed gas markets, where L1 gas is burned to purchase L2 gas for deposits through an EIP-1559-style fee market. However, on Facet, gas purchased in this way accrues to the purchaser’s native balance on the L2, whereas in the OP Stack it can only be used for a single transaction.

    Facet Token Minting and Bridging.

    1. FCT Issuance Formula - Facet Documentation
    2. OP Stack Guaranteed Gas Market Specification
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Actors:

    Facet Multisig0xb2B0…C525

    A Multisig with 2/3 threshold. It uses the following modules: FacetSafeModule (Module that allows the Safe to send Facet transactions).

    • Can interact with Rollup
      • can set the whitelisted proposers
    • Can interact with RollupDeprecated
      • can set the whitelisted proposers
    Used in:
    • Can interact with Rollup
      • Can propose state roots optimistically without a ZK proof. Note that anyone can propose with a ZK proof, and anyone can propose optimistically after the fallback timeout
    • Can interact with RollupDeprecated
      • Can propose state roots optimistically without a ZK proof. Note that anyone can propose with a ZK proof, and anyone can propose optimistically after the fallback timeout
    Used in:
    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

    Core rollup contract that manages the state of the rollup and its ZK fault proof system.

    • Roles:
      • owner: Facet Multisig
      • whitelistedProposers: EOA 1
    RollupDeprecated0x686E…4eb4

    Core rollup contract that manages the state of the rollup and its ZK fault proof system.

    • Roles:
      • owner: Facet Multisig
      • whitelistedProposers: EOA 1
    L1Bridge
    Escrow
    0x4E2e…C08E

    An immutable ETH bridge built on top of a Rollup contract. Facet does not designate any single canonical bridge — multiple bridges of this kind can exist in parallel against a given Rollup, and each must be assessed independently. Note that the token received on L2 has a different ticker/symbol than the token sent on L1.

    The following tokens are included in the value secured calculation:
    ETH token logo

    Deprecated entry point to deposit ERC20 tokens from host chain to this chain. Currently just holds ETH that the Facet multisig can withdraw.

    The following tokens are included in the value secured calculation:
    ETH token logoWETH token logo

    A Facet implementation of the ETH Bridge. This bridge is also called “fast bridge” as it uses a permissioned EOA as operator for faster withdrawal processing.

    The following tokens are included in the value secured calculation:
    ETH token logo
    SP1Verifier0x0459…C459

    Verifier contract for SP1 proofs (v5.0.0).

    Implementation used in:
    FacetSafeModule0x3235…6BCF

    Module that allows the Safe to send Facet transactions.

    SP1Verifier0x50AC…f1e5

    Verifier contract for SP1 proofs (v5.0.0).

    Implementation used in:
    SP1VerifierGatewayDeprecated0x70C7…8A66

    This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.

    SP1VerifierGateway0xa236…8eE1

    This contract is the router for zk proof verification. It stores the mapping between identifiers and the address of onchain verifier contracts, routing each identifier to the corresponding verifier contract.

    Implementation used in:
    FacetSafeProxy0xC9F2…4d25

    Helper of the Safe Module that allows to send Facet transactions.

    Facet

    ERC20 minter counterpart to an L1 bridge. Mints new ERC20 tokens on L2 once a token deposit is made on L1. Facet does not designate any single canonical bridge — multiple bridges of this kind can exist in parallel against a given Rollup, and each must be assessed independently. Note that the token received on L2 could have a different ticker/symbol than the token sent on L1.

    L2 -> L1 message passer at the OP Stack predeploy address, used by L1Bridge-style canonical bridges to relay withdrawal requests from L2 to L1.

    Program Hashes

    Name
    Hash
    Repository
    Verification
    Used in
    0x0083...b8c2
    Facet logo
    0x43f0...0829
    Facet logo