Search

Search for projects by name or address

EigenDA logo
EigenDA

  • Type
    DA Service
  • Total Value Secured
    $615.24 M
  • Economic security
  • Secured by
    91 operators

  • Duration of storage
    14 days
  • Used by
    MegaETH logoCelo logoFuel Ignition logoAevo logoSoon Alpha Mainnet logo
  • EigenDA risks

    Please select DA bridge to view detailed risks & characteristics. Bridge selection will define total DA risks.
    DACert Verifier (EigenDA V2) risks
    No throughput data since 2026 May 15, 23:00 UTC.

    The chart shows the actual size of data posted to the DA Layer per day for the selected time period, as well as the maximum possible throughput per day.


    Data source: API provided by EigenLayer

    2025 May 15 — 2026 May 15


    Past day avg. throughput
    0.02168 MiB/s
    Past day avg. capacity used
    N/A
    Past day largest poster
    Past day total data posted
    1.83 GiB

    EigenDA V2 launch

    2025 Jul 30th

    EigenDA V2 launch on Ethereum mainnet.

    Learn more

    EIGEN token unlock

    2024 Oct 1st

    EIGEN token becomes transferable.

    Learn more

    EigenDA is a data availability solution built on EigenLayer.

    Economic security
    No slashing

    Node operators are required to stake a minimum of 32 ETH (first quorum) or 1 EIGEN (second quorum) to become members of the DA network. Although slashing is enabled at EigenLayer protocol level, individual AVSs like EigenDA need to activate it by migrating to Operators Sets and defining slashing conditions. Currently, there is no slashing condition in place for misbehaving nodes. The EIGEN token social forking protocol for intersubjective attributable faults is under active development.

    Fraud detection
    None

    There is no fraud detection mechanism in place. A data withholding attack can only be detected by nodes downloading the full data from the DA layer.

    Architecture

    EigenDA architecture EigenDA is composed by three types of off-chain entities: node operators, a disperser and a retriever.

    • EigenDA operators are node operators running the EigenDA node software and are registered to the EigenDA AVS in EigenLayer.
    • The disperser is the entity responsible for collecting the blobs from the sequencer, erasure coding them and generating the encoded blob’s KZG commitments for each chunk. Although the disperser could be rollup-operated, it is currently a centralised entity operated by Eigen Labs.
    • Lastly, the retriever client is responsible for querying the EigenDA operators to retrieve blob chunks, verifying their integrity and reconstructing the original blob.

    Operators Registration

    Operators register with the EigenDAServiceManager via the registerOperatorToAVS() function, enabling them to participate in the data availability network. They are responsible for holding and serving blobs data, and earn rewards for their participation in the network. EigenDA operator registration

    Operators Stake Update

    EigenDA operators’ stake for quorum verification is fetched from the EigenDA StakeRegistry contract. To keep the stake in sync with changes in share balances in the EigenLayer DelegationManager (e.g., due to tokens delegated/undelegated to operators), the permissionless updateOperators() function on the RegistryCoordinator contract needs to be called periodically. This function updates the operators’ quorum weight in the StakeRegistry contract based on the operators’ shares in the EigenLayer DelegationManager contract. EigenDA operator stake sync

    Operators Blob Storage and Retrieval

    The process of storing a blob on EigenDA works as follows. A sequencer submits blobs to the EigenDA Disperser, which erasure codes the blobs into chunks and generates KZG commitments and proofs for each chunk, certifying the correctness of the data. The disperser then sends the chunks, KZG commitments, and KZG proofs to the operators. Multiple operators are responsible for storing chunks of the encoded data blobs and their associated KZG commitment and proof. Once the chunks, KZG commitments, and KZG proofs are sent to the operators, each of them generates a signature certifying that they have stored the data. These signatures are then sent to the Disperser which aggregates them and submits them to Ethereum by sending a transaction to the EigenDAServiceManager (the DA bridge). EigenDA storing/retrieving

    Data Availability Certificates

    EigenDA uses different certificate formats depending on the version, each with corresponding verifier contracts:

    Certificate Types

    • V1 Certificates: Used in EigenDA V1, verified through the EigenDAServiceManager contract via the confirmBatch() function. These certificates contain batch headers with KZG commitments and BLS aggregated signatures from operators.
    • V2/V3 Certificates: Used in EigenDA V2, which introduces significant architectural changes. The sequencer acts as the relayer and does not post batches to the service manager. Instead, certificates are verified through dedicated DACert Verifier contracts that correspond to different certificate versions.

    EigenDA V2

    In EigenDA V2, the architecture has evolved to improve efficiency:

    • Sequencer as Relayer: The sequencer now acts as the relayer, eliminating the need to post batches to the service manager
    • Direct Certificate Verification: Certificates are verified directly through version-specific DACert Verifier contracts
    • Improved Throughput: The new architecture supports higher throughput by removing bottlenecks in the batch confirmation process

      L2 Data Availability

    The verification process differs between EigenDA versions: EigenDA V1: The Disperser collects operators’ signatures and submits them to the EigenDAServiceManager contract via the confirmBatch() function. This submission includes a call to the BLSRegistry contract to verify signatures and check whether the required quorum of operators’ stake has been achieved.

    **EigenDA V2**: Certificate verification is handled by dedicated DACert [Verifier](/glossary#verifier?description=An%20entity%20in%20a%20ZK-Rollup%2C%20often%20a%20smart%20contract%2C%20that%20verifies%20zero-knowledge%20proofs%20submitted%20by%20a%20prover.) contracts. Each certificate version corresponds to a specific [verifier](/glossary#verifier?description=An%20entity%20in%20a%20ZK-Rollup%2C%20often%20a%20smart%20contract%2C%20that%20verifies%20zero-knowledge%20proofs%20submitted%20by%20a%20prover.) that validates the certificate format and cryptographic proofs without requiring batch submissions to a central service manager.
    

    Threshold BLS signatures are not used. Instead, the threshold check is performed on the signers’ total stake fetched by the StakeRegistry, and the stake threshold percentage to reach is provided in the batch header input data. The EigenDARollupUtils.sol library’s verifyBlob() function can then be used by L2s to verify that a data blob is included within a confirmed batch in the EigenDAServiceManager (V1) or through the appropriate DACert Verifier contract (V2/V3). This function is not used by the EigenDAServiceManager contract itself, but rather by L2 systems to prove inclusion of the blob and that their trust assumptions (i.e., batch confirmation threshold) were as expected.

    • Users can be censored if the disperser does not distribute data to EigenDA operators.

    1. EigenDA - Documentation
    2. EigenDA Integration Spec - Lifecycle Phases
    3. EigenDA Disperser - Source Code
    4. EigenDA Rollup Utils - Source Code

    EigenDA V2 DACert Verifier provides certificate verification for EigenDA V2 with improved architecture where the sequencer acts as relayer.

    Committee security
    Permissioned

    The committee requires an honest minority (less than 1/3) of members (or the network stake) to prevent the DA bridge from accepting an unavailable data commitment. There are 91 operators currently registered in the committee, but entry or exit of members is partially controlled by a centralized entity.

    Upgradeability
    No delay

    There is no delay in the upgradeability of the bridge. Users have no time to exit the system before the bridge implementation update is completed.

    Relayer failure
    Self propose

    Anyone can relay data availability commitments to the DA bridge. In case of current relayer failure, users can collect attestations from committee members and propose new data availability commitments to the DA bridge.

    EigenDA V2 Architecture

    EigenDA V2 introduces a more efficient architecture where the L2 sequencer acts as the relayer, eliminating the need for separate permissioned relayers:

    • Sequencer as Relayer: The sequencer acts as the relayer, eliminating the need for separate permissioned relayers
    • Direct Certificate Verification: Multiple DACert Verifier contracts handle different certificate versions (V2, V3). These contracts read operator/state metadata via EigenDA and EigenLayer core contracts (incl. ServiceManager components) and verify signatures and stake thresholds.
    • Version-Specific Verification: Each certificate version has a corresponding verifier contract that validates the specific certificate format and cryptographic proofs

    Certificate Types and Verifiers

    EigenDA V2 supports multiple certificate formats:

    • V2 Certificates: Contain blob inclusion info, batch headers, and non-signer stakes with signatures. Verified through EigenDACertVerifierV2 contracts.
    • V3 Certificates: Similar structure to V2 but with reordered fields for optimization. Verified through EigenDACertVerifierV3 contracts.

    Verification Process

    1. Certificate Construction: The EigenDA client constructs certificates from BlobStatusReply data received from the disperser
    2. Version Detection: The certificate version is determined from the commitment structure
    3. Verifier Selection: The appropriate DACert Verifier contract is selected based on the certificate version using the EigenDACertVerifierRouter
    4. Onchain Verification: The verifier contract’s checkDACert function validates the certificate against operator signatures and stake thresholds

    Secure Dispersal Flow

    Based on the EigenDA integration spec:

    1. EigenDA Client converts raw payload bytes into a blob
    2. Client fetches the appropriate EigenDACertVerifier contract address using the router
    3. Client submits blob request to disperser and polls for BlobStatusReply
    4. Once confirmation thresholds are met, client constructs the DACert from the reply
    5. Client calls the verifier’s checkDACert function for onchain verification
    6. Based on verification status, client either returns the certificate or initiates failover

    Router-Based Verifier Selection

    EigenDA V2 uses the EigenDACertVerifierRouter to dynamically select the appropriate verifier contract:

    • The router maps certificate versions to their corresponding verifier contracts
    • This allows for seamless upgrades and support for multiple certificate formats
    • The client queries the router using the latest block number to get the verifier for the reference block

    This architecture provides improved throughput and eliminates single points of failure while maintaining the same security guarantees as V1.

    • Funds can be lost if the sequencer posts an invalid certificate and EigenDA operators do not make the data available for verification.

    • Funds can be frozen if the EigenDACertVerifierRouter fails to provide correct verifier contract addresses.

    1. EigenDA Integration Spec - Lifecycle Phases
    2. EigenDA - Documentation
    3. EigenDA Disperser - Source Code
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Roles:

    DisperserEOA 8

    Can disperse EigenDA blobs to the EigenDA node operators.

    Used in:
    RelayerEOA 7

    Can store and serve both unencoded blobs as well as encoded chunks.

    Used in:

    Actors:

    EigenDAOperationsMultisig0x0027…92D5

    A Multisig with 3/4 threshold.

    • Can upgrade with no delay
      • StakeRegistry
      • BLSApkRegistry
      • RegistryCoordinator
      • EjectionManager
      • EigenDACertVerifierRouter
      • SocketRegistry
      • EigenDADisperserRegistry
      • EigenDAServiceManager
      • PaymentVault
      • IndexRegistry
      • EigenDARelayRegistry
      • EigenDAThresholdRegistry
    • Can interact with RegistryCoordinator
      • can add and remove strategies
    • Can interact with EigenDAServiceManager
      • can transfer ownership of the contract, update the metadata URI, set reward initiator and set batch confirmer
    Used in:
    PauserRegistry0x0c43…7060

    Defines and stores pauser and unpauser roles for EigenDA contracts.

    • Can interact with EigenDAServiceManager
    Used in:
    EigenLayerRewardsInitiatorMultisig0x178e…1b8A

    A Multisig with 3/4 threshold.

    • Can interact with EigenDAServiceManager
      • can create rewards submissions
    Used in:
    EigenDA Multisig0x3384…4B34

    A Multisig with 3/8 threshold.

    • Can interact with EjectionManager
      • can eject DA operators from a quorum
    Used in:
    EOA 1, EOA 2 and EOA 4 (3)0x454E…ca4e0x5A49…61ED0x8ED8…84D8
    • Can interact with EigenDAServiceManager
    EOA 3 and EOA 5 (2)0x8642…72360xD2Ee…8eA8
    • Can interact with EjectionManager
      • can eject DA operators from a quorum
    • Can interact with RegistryCoordinator
      • can approve the replacement of churned operators from a quorum
    Used in:
    • A DA Relayer - acting directly
    Used in:
    • A Disperser - acting directly
    Used in:
    A dashboard to explore contracts and permissions
    Go to Disco
    Disco UI Banner

    Ethereum

    Keeps track of the total stake of each operator.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:

    Keeps track of the BLS public keys of each operator and the quorum aggregated keys.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:

    Operators register here with an AVS The coordinator has three registries 1) a StakeRegistry that keeps track of operators’ stakes, 2) a BLSApkRegistry that keeps track of operators’ BLS public keys and aggregate BLS public keys for each quorum, 3) an IndexRegistry that keeps track of an ordered list of operators for each quorum.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
      • churnApprover: EOA 6
      • owner: EigenDAOperationsMultisig
    Proxy used in:

    Contract used for ejection of operators from the RegistryCoordinator for violating the Service Legal Agreement (SLA).

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
      • ejectors: EOA 3, EOA 5, EigenDA Multisig
    Proxy used in:
    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:

    Registry for EigenDA disperser info such as disperser key to address mapping.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
      • dispersers: EOA 8
    Proxy used in:

    Bridge contract that accepts blob batches data availability attestations. Batches availability is attested by EigenDA operators signatures and relayed to the service manager contract by the EigenDA disperser.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
      • batchConfirmers: EOA 1, EOA 2, EOA 4
      • owner: EigenDAOperationsMultisig
      • pauserRegistry: PauserRegistry
      • rewardsInitiator: EigenLayerRewardsInitiatorMultisig
    Proxy used in:

    Entrypoint for making reservations and on demand payments for EigenDA.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:

    A registry contract that keeps track of an ordered list of operators for each quorum.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:

    Registry for EigenDA relay keys, maps key to address.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
      • relayers: EOA 7
    Proxy used in:

    Registry of EigenDA threshold (i.e, adversary and confirmation threshold percentage for a quorum)

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:

    A router contract for DA Certificate verifiers. Verifier routing depends on the certificate reference block number.

    • Roles:
      • admin: ProxyAdmin; ultimately EigenDAOperationsMultisig
    Proxy used in:
    EigenDACertVerifier0x4676…6846

    A DA verifier contract for EigenDA V2 certificates. The verifier is used to verify the certificate against operator signatures and stake thresholds.

    Implementation used in:
    EigenDACertVerifier0x6169…3FB7

    A DA verifier contract for EigenDA V2 certificates. The verifier is used to verify the certificate against operator signatures and stake thresholds.

    Implementation used in:
    ProxyAdmin0x8247…2E99
    • Roles:
      • owner: EigenDAOperationsMultisig
    Implementation used in:
    EigenDACertVerifier0xE1Ae…7BD6

    A legacy DACert verifier contract. It is used to verify v2 DA certificates. New verifiers should use the new verifier router contract.

    Implementation used in:
    OperatorStateRetriever0xEC35…63Ce

    A contract for retrieving AVS operators state (e.g., quorum bitmaps, ordered operator lists, stakes, sockets, signatures indices—at) at a given block directly from on-chain registries.

    Implementation used in:

    The current deployment carries some associated risks:

    • Funds can be lost if the EigenDACertVerifier or EigenDACertVerifierRouter contracts receive a malicious code upgrade and accept invalid certificates. There is no delay on code upgrades.

    • Funds can be lost if the EigenDAServiceManager (BLS signature verifier) contract receives a malicious code upgrade. There is no delay on code upgrades.

    • Funds can be lost if the EigenDA middleware contracts (StakeRegistry, BLSApkRegistry, RegistryCoordinator) receive a malicious code upgrade and report incorrect stake or keys to the cert verifier. There is no delay on code upgrades.

    • Funds can be lost if the EigenLayer EIGEN token contract receives a malicious code upgrade. There is a 10d delay on code upgrades.

    • Funds can be lost if the churn approver or ejectors act maliciously and eject EigenDA operators from a quorum without cause.

    • Funds can be lost if a sequencer posts an incorrect or malicious DA certificate that is accepted by the verifier contract.