Search

Search for projects by name or address

Eclipse logo
Eclipse

Badges

About

Eclipse is a sidechain powered by the Solana Virtual Machine (SVM).


  • Total Value SecuredTVS
    $6.06 M4.18%
  • Past day UOPSDaily UOPS
    2.850.20%
  • Type
    Other

  • Purpose
    Universal

  • Tokens breakdown

    Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    Eclipse is a sidechain powered by the Solana Virtual Machine (SVM).

    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.

    There is no data availability bridge

    Consequence: projects without a data availability bridge fully rely on single entities (the sequencer) to honestly rely available data roots on Ethereum. A malicious sequencer can collude with the proposer to finalize an unavailable 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

    2025 May 28 — 2026 May 28

    Past Day UOPS
    2.850.20%
    Past Day Ops count
    246.38 K
    Max. UOPS
    3.46 K
    2025 Mar 30
    Past day UOPS/TPS Ratio
    1.00

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


    2025 May 28 — 2026 May 28


    Data posted
    330.99 GiB
    Avg size per day
    923.53 MiB
    Avg size per L2 UOP
    800.22 B

    Sequencer failureState validationData availabilityExit windowProposer failure
    Sequencer failure
    No mechanism

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

    State validation
    None

    Currently the system permits invalid state roots. More details in project overview.

    Data availability
    External

    Proof construction and state derivation fully rely on data that is posted on Celestia. Sequencer tx roots are not checked against the Blobstream bridge data roots onchain, but L2 nodes can verify data availability by running a Celestia light client.

    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.

    Data is posted to Celestia

    Eclipse uses Celestia for data availability.

    There is no automatic fallback mechanism to Ethereum for data availability. If Celestia becomes unavailable, the chain relies entirely on Celestia for transaction data recovery.

    • Funds can be frozen if celestia becomes unavailable and transaction data cannot be retrieved.

    1. Eclipse Celestia Integration
    Learn more about the DA layer here: Celestia logoCelestia
    No state validation

    Eclipse implements a custom permissioned bridge. Withdrawals need to be actively authorized by a Multisig. Moreover, there is no mechanism to send arbitrary messages from Eclipse back to Ethereum. There is a 7d delay for withdrawals.

    • Users can be censored if the bridge operators decide not to mint tokens after observing a deposit.

    • Funds can be stolen if the Treasury owner decides to transfer the funds locked on L1.

    1. CanonicalBridge.sol - Etherscan source code, authorizeWithdraw() function
    2. Mailbox.sol - Etherscan source code, receiveMessage() function calls CanonicalBridge
    3. Treasury.sol - Etherscan source code, emergencyWithdraw() function

    Past upgrades

    The metrics include upgrades on the currently used proxy contracts. Historical proxy contracts and changes of such are not included.

    Count of upgrades
    1
    Last upgrade
    1y 6mo ago
    Avg upgrade interval
    11mo 5d
    2025 November 20, 10:56 UTC
    23changes

    - CanonicalBridgeV1 cannot be used to withdraw funds from Treasury anymore. - CanonicalBridgeV2 deactivated, replaced by CanonicalBridgeV3: the main change in V3 is new events via DepositedWithId and depositIndex, V3 can settle v1 and v2 pending withdrawals https://disco.l2beat.com/diff/eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51/eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a

    EOA (eth:0x1a84163249B2909f746C725F23D5ae2a66D7C4fE) {
    +++ description: None
    receivedPermissions.0.from:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    }
    - Status: DELETED
    contract CanonicalBridge (eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11)
    +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.
    contract Eclipse Multisig (eth:0x4720342419C1D316B948690d12C86D5b485C64E0) {
    +++ description: None
    receivedPermissions.0:
    - {"permission":"interact","from":"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11","description":"authorize withdrawals to any address.","role":".withdrawAuthorityAC"}
    receivedPermissions.1:
    - {"permission":"interact","from":"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11","description":"grant / revoke all access control roles and thus access all permissioned functions in the contract.","role":".defaultAdminAC"}
    receivedPermissions.2:
    - {"permission":"interact","from":"eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11","description":"pause the contract for deposits and withdrawals.","role":".pauserAC"}
    receivedPermissions.3.from:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    receivedPermissions.4.from:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    receivedPermissions.5.from:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    }
    contract Eclipse Multisig 2 (eth:0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {
    +++ description: None
    receivedPermissions.0:
    - {"permission":"interact","from":"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51","description":"grant / revoke all access control roles and thus access all permissioned functions in the contract.","role":".defaultAdminAC"}
    }
    - Status: DELETED
    contract CanonicalBridgeV2 (eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51)
    +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.
    contract Treasury (eth:0xD7E4b67E735733aC98a88F13d087D8aac670E644) {
    +++ description: Permissioned escrow for assets bridged to Eclipse. There is no canonical messaging and users need to trust the bridge operators to process deposits and authorize withdrawals.
    values.accessControl.DEPOSITOR_ROLE.members.1:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.0:
    - "eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11"
    values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.2:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    values.withdrawerAC.0:
    - "eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11"
    values.withdrawerAC.2:
    - "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    + "eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a"
    }
    + Status: CREATED
    contract CanonicalBridgeV3 (eth:0x504392F02ee64D6B51aD3bCf7999E69EBe28b30a)
    +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.
    2025 September 08, 14:36 UTC
    3changes

    ms signer removed.

    contract Eclipse Multisig (eth:0x4720342419C1D316B948690d12C86D5b485C64E0) {
    +++ description: None
    values.$members.1:
    - "eth:0xCD2fA978D163c0068167dDff8b6951f0E626e6A4"
    values.multisigThreshold:
    - "3 of 5 (60%)"
    + "3 of 4 (75%)"
    }
    2025 July 07, 17:02 UTC
    13changes

    discodrive. new contract 'canonicalBridgeV2' added with minimal diff to the old one.

    EOA (0x1a84163249B2909f746C725F23D5ae2a66D7C4fE) {
    +++ description: None
    receivedPermissions.0.from:
    - "eth:0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11"
    + "eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    }
    contract CanonicalBridgeV1 (0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11) {
    +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.
    values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.1:
    - "0x1a84163249B2909f746C725F23D5ae2a66D7C4fE"
    values.withdrawAuthorityAC.1:
    - "0x1a84163249B2909f746C725F23D5ae2a66D7C4fE"
    }
    contract Eclipse Multisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {
    +++ description: None
    receivedPermissions.3:
    + {"permission":"interact","from":"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51","description":"authorize withdrawals to any address.","role":".withdrawAuthorityAC"}
    receivedPermissions.4:
    + {"permission":"interact","from":"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51","description":"grant / revoke all access control roles and thus access all permissioned functions in the contract.","role":".defaultAdminAC"}
    receivedPermissions.5:
    + {"permission":"interact","from":"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51","description":"pause the contract for deposits and withdrawals.","role":".pauserAC"}
    }
    contract Eclipse Multisig 2 (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {
    +++ description: None
    receivedPermissions.0:
    + {"permission":"interact","from":"eth:0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51","description":"grant / revoke all access control roles and thus access all permissioned functions in the contract.","role":".defaultAdminAC"}
    }
    contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {
    +++ description: Permissioned escrow for assets bridged to Eclipse. There is no canonical messaging and users need to trust the bridge operators to process deposits and authorize withdrawals.
    values.accessControl.DEPOSITOR_ROLE.members.0:
    - "0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11"
    values.accessControl.DEPOSITOR_ROLE.members.1:
    + "0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    values.accessControl.WITHDRAW_AUTHORITY_ROLE.members.2:
    + "0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    values.withdrawerAC.2:
    + "0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51"
    }
    + Status: CREATED
    contract CanonicalBridgeV2 (0x867A8FcD5Bb6774d4d37fb342D669A35FF789a51)
    +++ description: Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.
    2024 November 05, 12:13 UTC
    High severity
    35changes

    Bridge upgrade without major logic changes. EtherBridge - Now called CanonicalBridge.sol - More granular roles (AuthorityMultisig still main admin) - 'FraudWindow' of 7d introduced for normal withdrawals (but still using permissioned withdrawals, and Treasury allows permissioned direct emergencyWithdraw()) - Two step process for withdrawals interfaces with the bridge and not the Treasury directly: 1) authorizeWithdraw() by permissioned actor any time 2) claimWithdraw() after 7d by anyone Treasury - AccessControl and SemVer added - minor changes EtherBridge

    contract TreasuryOwner (0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC) {
    +++ description: None
    receivedPermissions:
    - [{"permission":"upgrade","target":"0xD7E4b67E735733aC98a88F13d087D8aac670E644"}]
    }
    contract EtherBridge (0x83cB71D80078bf670b3EfeC6AD9E5E6407cD0fd1) {
    +++ description: None
    values.paused:
    - false
    + true
    }
    contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {
    +++ description: None
    sourceHashes.1:
    - "0x9bdc786276b4d7feab768c6c8c296d44e22918524e1a28b23db40678d2b0eeef"
    + "0x63d1cc40bc2613e87b2d6905ffda15f04f069e3bf72cb12a2979f95a0e7010b7"
    issuedPermissions.0.target:
    - "0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"
    + "0x0000000000000000000000000000000000000000"
    values.$admin:
    - "0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"
    + "0x0000000000000000000000000000000000000000"
    values.$implementation:
    - "0xa8E15d2B1bf6B0Fd3Bc9Ead06323c0730b67f8d4"
    + "0xF1F7a359C3f33EE8A66bdCbf4c897D25Caf90978"
    values.$pastUpgrades.1:
    + ["2024-11-05T03:53:23.000Z","0x15aecc2b0cac5c03221b0f7ade10e888ad4f944df4bdc19c1f3c40fc56d5ebbb",["0xF1F7a359C3f33EE8A66bdCbf4c897D25Caf90978"]]
    values.$upgradeCount:
    - 1
    + 2
    values.accessControl.DEFAULT_ADMIN_ROLE.members.1:
    + "0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"
    values.accessControl.DEFAULT_ADMIN_ROLE.members.0:
    + "0x4720342419C1D316B948690d12C86D5b485C64E0"
    values.accessControl.PAUSER_ROLE:
    + {"adminRole":"DEFAULT_ADMIN_ROLE","members":["0xD02f545d57536BC1E8F12D867731F006AacE71E3","0x4720342419C1D316B948690d12C86D5b485C64E0","0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"]}
    values.accessControl.STARTER_ROLE:
    + {"adminRole":"DEFAULT_ADMIN_ROLE","members":["0xD02f545d57536BC1E8F12D867731F006AacE71E3","0x4720342419C1D316B948690d12C86D5b485C64E0","0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"]}
    values.accessControl.UPGRADER_ROLE:
    + {"adminRole":"DEFAULT_ADMIN_ROLE","members":["0xD02f545d57536BC1E8F12D867731F006AacE71E3","0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"]}
    values.accessControl.EMERGENCY_ROLE:
    + {"adminRole":"DEFAULT_ADMIN_ROLE","members":["0xD02f545d57536BC1E8F12D867731F006AacE71E3","0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"]}
    values.accessControl.DEPOSITOR_ROLE:
    + {"adminRole":"DEFAULT_ADMIN_ROLE","members":["0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11","0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"]}
    values.accessControl.WITHDRAW_AUTHORITY_ROLE:
    + {"adminRole":"DEFAULT_ADMIN_ROLE","members":["0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11","0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"]}
    values.getVersionComponents.major:
    - 1
    + 2
    values.owner:
    - "0x7B2c1CbB33c53c3C6a695e36096AD2cfCE1c0efC"
    values.pendingOwner:
    - "0x4720342419C1D316B948690d12C86D5b485C64E0"
    values.DEFAULT_ADMIN_ROLE:
    + "0x0000000000000000000000000000000000000000000000000000000000000000"
    values.DEPOSITOR_ROLE:
    + "0xd50fd8c1b5fa5213a5974932fcc33d2992a99225bc9319caf7cf652d0d2b9acf"
    values.EMERGENCY_ROLE:
    + "0x9e97963c33348a1cae64c3216747be51682ee42f36d1ed282cb81018cdb30e3d"
    values.PAUSER_ROLE:
    + "0x39935d86204acf3d77da26425d7a46606d2550568c6b1876f3a2e76c804c7626"
    values.STARTER_ROLE:
    + "0xac6a94bcd1ac2877eda181de9748e5972fc07f76d4864cecf836b3fca185e53c"
    values.UPGRADER_ROLE:
    + "0x0fb7166d9f681d2bd296a45a1a2e81365c392be30b6156d73b45df44e85cdb9f"
    values.WITHDRAW_AUTHORITY_ROLE:
    + "0xfe482b7b16acc2ea6eda181934b481a09d50ed8e3579b43c531bc57b84336c53"
    }
    + Status: CREATED
    contract CanonicalBridge (0x2B08D7cF7EafF0f5f6623d9fB09b080726D4be11)
    +++ description: None
    + Status: CREATED
    contract Upgrader0to1 (0xD02f545d57536BC1E8F12D867731F006AacE71E3)
    +++ description: None
    2024 November 01, 10:58 UTC
    15changes

    Multisig members change and threshold increase, also added a pending owner. Waiting for the new owner to accept the ownership transfer.

    contract AuthorityMultisig (0x4720342419C1D316B948690d12C86D5b485C64E0) {
    +++ description: None
    values.$members.4:
    + "0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA"
    values.$members.3:
    - "0xF48C91ca69Aef5ac47E430c3E90DEE1694d246FA"
    + "0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2"
    values.$members.2:
    - "0x757210F15AB48f0F8d328984fc321CfA6BB5BFc2"
    + "0x950815d0e585095B06111CD101440fb1E95AB2a5"
    values.$members.1:
    - "0x950815d0e585095B06111CD101440fb1E95AB2a5"
    + "0xCD2fA978D163c0068167dDff8b6951f0E626e6A4"
    values.$members.0:
    - "0xCD2fA978D163c0068167dDff8b6951f0E626e6A4"
    + "0xBb534A6Bd0440727cb5883D037DEd7358059D547"
    values.$threshold:
    - 2
    + 3
    values.multisigThreshold:
    - "2 of 4 (50%)"
    + "3 of 5 (60%)"
    }
    contract Treasury (0xD7E4b67E735733aC98a88F13d087D8aac670E644) {
    +++ description: None
    values.pendingOwner:
    - "0x0000000000000000000000000000000000000000"
    + "0x4720342419C1D316B948690d12C86D5b485C64E0"
    }
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Actors:

    Eclipse Multisig0x4720…64E0

    A Multisig with 3/4 threshold.

    • Can interact with CanonicalBridgeV3
      • authorize withdrawals to any address
      • grant / revoke all access control roles and thus access all permissioned functions in the contract
      • pause the contract for deposits and withdrawals
    • Can interact with Upgrader0to1
      • start an upgrade of the core contracts
    • Can interact with Treasury
      • grant / revoke all access control roles and thus access all permissioned functions in the contract
    Eclipse Multisig 20x7B2c…0efC

    A Multisig with 3/5 threshold.

    • Can upgrade with no delay
      • Treasury
    • Can interact with Treasury
      • grant / revoke all access control roles and thus access all permissioned functions in the contract
      • withdraw ETH from the contract, even when it is paused
      • withdraw ETH from the contract
    • Can interact with CanonicalBridgeV3
      • authorize withdrawals to any address
    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

    CanonicalBridgeV30x5043…b30a

    Entry point to deposit and withdraw ETH. There is no canonical messaging system. Deposited funds are sent to a Treasury contract and withdrawals must be authorized by a permissioned actor.

    • Roles:
      • defaultAdmin: Eclipse Multisig
      • pauser: Eclipse Multisig
      • withdrawAuthority: EOA 1, Eclipse Multisig

    Permissioned escrow for assets bridged to Eclipse. There is no canonical messaging and users need to trust the bridge operators to process deposits and authorize withdrawals.

    • Roles:
      • defaultAdmin: Eclipse Multisig, Eclipse Multisig 2
      • emergency: Eclipse Multisig 2, Upgrader0to1
      • upgrader: Eclipse Multisig 2, Upgrader0to1
      • withdrawer: CanonicalBridgeV3, Eclipse Multisig 2
    Upgrader0to10xD02f…71E3

    This contract was used for an upgrade an still retains its permissions and permissioned actors.

    • Roles:
      • upgrader: Eclipse Multisig

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