# Avail Markdown version of https://l2beat.com/data-availability/projects/avail/vector ## Summary - Type: Public Blockchain - Total Value Secured: $7.07 M (Total value secured (TVS) is the sum of the total value secured across all L2s & L3s that use this DA layer and are listed on L2BEAT. It does not include the TVS of sovereign rollups.) - Economic security: $0.00 (The assets that are slashable in case of a data withholding attack. For public blockchains, it is equal to 2/3 of the total validating stake.) - Secured by: 70 validators - Duration of storage: — - Max throughput: 0.2 MiB/s - DA Bridge: Vector (TVS $7.07 M) - Used by: Sophon, Lens ### Risks - Economic security (DA layer Avail): Staked assets (sentiment: bad) - Fraud detection (DA layer Avail): DAS (sentiment: warning) - Committee security (DA bridge Vector): Validator set (sentiment: good) - Upgradeability (DA bridge Vector): No delay (sentiment: bad) - Relayer failure (DA bridge Vector): No mechanism (sentiment: bad) ### Links - Website: https://www.availproject.org/ - Bridge: https://bridge.availproject.org/ - Docs: https://docs.availproject.org/, https://docs.succinct.xyz/ - Explorer: https://explorer.avail.so/#/explorer, https://avail.subscan.io/ - Repository: https://github.com/availproject/, https://github.com/succinctlabs/sp1-vector - Social: https://x.com/AvailProject, https://t.me/AvailCommunity, https://discord.com/invite/AvailProject, https://www.linkedin.com/company/availproject/ ## Throughput **Warning:** No throughput data since 2026 October 09, 21: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. The interactive throughput chart and its past day stats are shown on [the HTML page](https://l2beat.com/data-availability/projects/avail/vector#throughput). ## Milestones & Incidents - 2025-02-18: [Block size increase](https://avail.subscan.io/tech/27). Avail doubles the block size to 4 MB. - 2024-07-23: [Mainnet Launch](https://blog.availproject.org/avail-da-mainnet-is-live/). Avail mainnet and the AVAIL token launch. ## Risk summary ### Avail risks #### Funds can be lost if 1. a dishonest supermajority of Avail validators finalizes an unavailable block, and there aren't light nodes on the network verifying data availability, or they fail at social signaling unavailable data, 2. a dishonest supermajority of Avail validators finalizes an unavailable block, and the light nodes on the network cannot collectively reconstruct the block. ### Vector risks #### Funds can be lost if 1. the bridge contract or its dependencies receive a malicious code upgrade. There is no delay on code upgrades, 2. the DA bridge accepts an incorrect or malicious data commitment provided by 2/3 of Avail validators. #### Funds can be frozen if 3. the bridge contract is frozen by the Guardian (AvailMultisig), 4. excluding L2-specific DA fallback - the permissioned relayers are unable to submit DA commitments to the Vector contract. ## Avail Avail is a public blockchain and data availability network combining erasure coding, KZG polynomial commitments, and data availability sampling. ### Risk analysis #### Economic security Staked assets (sentiment: bad) There are staked assets on the DA layer that can be slashed in case of a data withholding attack. A dishonest supermajority of validators must collude to finalize a block with missing or invalid data. The invalid block would be added to the chain but rejected by honest full nodes. #### Fraud detection DAS (sentiment: warning) The DA layer uses data availability sampling (DAS) to protect against data withholding attacks. However, the block reconstruction protocol, which enables the minimum number of light nodes to collectively reconstruct the block, is still under development. ### Technology #### Architecture ![Avail architecture](https://l2beat.com/images/da-layer-technology/avail/architecture.png#center) #### Consensus Avail implements a Nominated Proof-of-Stake (NPoS) Sybil resistance mechanism, combined with the BABE/GRANDPA consensus protocol. BABE handles block production by assigning block production slots according to validators' stake and using a Verifiable Random Function (VRF). At the start of each epoch, nodes run the Block-Production-Lottery algorithm to assign block production slots and share the results with other nodes. Slots are randomly assigned, meaning multiple validators might be selected for the same slot (with a 'race' determining who gets to propose the block) and some slots may remain empty. To ensure liveness, secondary block producers are pre-determined and can step in if necessary, preventing any slot from being skipped. Finality is achieved through GRANDPA, a GHOST-based finality gadget that provides finality through consecutive rounds of validators voting. #### Blobs Data submitted to the Avail blockchain through submitData transactions is organized into a data matrix, with each block data divided into equal-sized cells. This matrix is erasure coded using Reed-Solomon (RS) codes and committed using Kate-Zaverucha-Goldberg (KZG) polynomial commitments. Each block header on Avail includes two types of attestations: KZG polynomial commitments of the submitted data and the root of a Merkle tree, where the leaves represent the data blobs. #### Data Availability Sampling (DAS) Avail ensures data availability through a data availability sampling (DAS) mechanism, which involves both Light clients and App clients. Light clients sample the data matrix by requesting data cells, and for each cell they then check the KZG polynomial openings against the commitments in the block header. Light clients first attempt to fetch cells using a Kademlia-based Distributed Hash Table (DHT) within a light clients peer-to-peer (P2P) network. If the randomly selected cells are not available via DHT, the light client resorts to RPC calls to the Avail node(s) to obtain the data. Cells retrieved this way are then shared back into the DHT network, enhancing the overall availability of block data. After gathering the data, the light client verifies the cells and calculates a confidence level, which is stored locally for reference. App clients focus on data specific to a given application ID. They reconstruct entire rows of the data matrix by requesting and assembling any missing cells from the network. #### Erasure Coding Proof Avail uses Kate-Zaverucha-Goldberg (KZG) polynomial commitments as validity proofs of erasure-coded data. Light clients verify the commitments by checking the KZG polynomial openings against the commitments in the block header. #### L2s Data Availability L2s can post application-specific data blobs to the Avail blockchain through submitData transactions. Each transaction contains an application ID that identifies the L2 and adheres to a size limit based on the Avail blockchain’s block size. App-specific data can be reconstructed by app clients, which request and assemble missing cells from the network to complete the data reconstruction process. **Risks** - Funds can be lost if a dishonest supermajority of Avail validators finalizes an unavailable block, and there aren't light nodes on the network verifying data availability, or they fail at social signaling unavailable data. - Funds can be lost if a dishonest supermajority of Avail validators finalizes an unavailable block, and the light nodes on the network cannot collectively reconstruct the block. **References** - [Avail Documentation](https://docs.availproject.org/docs/welcome-to-avail-docs) - [Avail Light Client - Source Code](https://github.com/availproject/avail-light/blob/main/core/src/light_client.rs) - [Avail App Client - Source Code](https://github.com/availproject/avail-light/blob/a9e1741a6c7579d6ab1988eb409808b33f999180/core/src/app_client.rs) ## Vector Vector is a data availability bridge using Zero-Knowledge proofs to verify Avail data availability attestations on Ethereum. ### Liveness This section shows how frequently DA attestations are submitted. It also highlights anomalies - significant deviations from the typical schedule. No ongoing anomalies detected. The interactive liveness chart is shown on [the HTML page](https://l2beat.com/data-availability/projects/avail/vector#da-bridge-liveness). #### Tracked transactions ##### Proof submissions - functionCall: 2024-07-03 02:47 UTC - now; currently used; address: [0x02993cdC11213985b9B13224f3aF289F03bf298d](https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d); selector: 0x8455a3cf; signature: `function commitHeaderRange(bytes proof, bytes publicValues)` ### Risk analysis #### Committee security Validator set (sentiment: good) 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. Participation in the committee is permissionless, based only on stake requirements and an honest majority of validators processing the new operator's request to join the active set. #### Upgradeability No delay (sentiment: bad) 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 No mechanism (sentiment: bad) The relayer role is permissioned, and the DA bridge does not have a Security Council or a governance mechanism to propose new relayers. In case of relayer failure, the DA bridge will halt and be unable to recover without the intervention of a centralized entity. ### Technology #### Architecture ![Avail vector architecture](https://l2beat.com/images/da-bridge-technology/avail/vector/architecture.png#center) The Vector bridge is a data availability bridge that facilitates data availability commitments to be bridged between Avail and Ethereum. The SP1 Vector bridge is composed of three main components: the **Vector** contract, the **Succinct Gateway** contracts, and the **Verifier** contracts. By default, Vector operates asynchronously, handling requests in a fulfillment-based manner. First, zero-knowledge proofs of Avail block ranges are requested for proving. Requests can be submitted either off-chain through the Succinct API, or onchain through the requestCall() method of the Succinct Gateway smart contract. Alternatively, it is possible to run an SP1 Vector operator with local proving, allowing for self-generating the proofs. Once a proving request is received, the off-chain prover generates the proof and relays it to the Vector contract. The Vector contract verifies the proof with the corresponding verifier contract and, if successful, stores the data commitment in storage. By default, Vector on Ethereum is updated by the Succinct operator at a cadence of approximately 1.5 hours. **Risks** - Funds can be lost if the DA bridge accepts an incorrect or malicious data commitment provided by 2/3 of Avail validators. - Funds can be frozen if excluding L2-specific DA fallback - the permissioned relayers are unable to submit DA commitments to the Vector contract. **References** - [SP1 Vector Operator](https://github.com/succinctlabs/sp1-vector/blob/a9689768ff4052e0933cc575b79001d4bcfa0cd5/script/bin/operator.rs) - [Succinct Gateway - Etherscan](https://etherscan.io/address/0x6c7a05e0AE641c6559fD76ac56641778B6eCd776#code#F1#L148) ### Permissions Explore these contracts and permissions in Disco, L2BEAT's contract explorer: https://disco.l2beat.com/ui/p/vector #### Ethereum ##### Actors ###### Avail Multisig 1 Addresses: [0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666](https://etherscan.io/address/0x7F2f87B0Efc66Fea0b7c30C61654E53C37993666) A Multisig with 4/7 threshold. - Can upgrade **with no delay** - Vector - Can upgrade **with 1d delay** - AvailBridgeV1 [via: TimelockController with 1d delay → ProxyAdmin] - Can interact with Vector - can freeze the Vector contract and update the list of authorized relayers - Can interact with AvailBridgeV1 - manage the pauser role and all other access control configurations, set the address of the target contract for DA verification, manage fees **with 1d delay** [via: TimelockController with 1d delay] - Can interact with TimelockController - cancel queued transactions - execute transactions that are ready - manage all access control roles **with 1d delay or with no delay** [via: TimelockController with 1d delay - or - acting directly] - propose transactions Participants (7): [0x70a4F624A4E62C539abf0002634377b646612b1C](https://etherscan.io/address/0x70a4F624A4E62C539abf0002634377b646612b1C), [0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A](https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A), [0xAD379D3275a18bd4BB741C3b291a3778D51c3304](https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304), [0x72Ff26D9517324eEFA89A48B75c5df41132c4f54](https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54), [0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5](https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5), [0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2](https://etherscan.io/address/0xBe1D614F13662Aff0a2Ec1e76f9c82D332Ae78A2), [0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d](https://etherscan.io/address/0x4983A5ebE79c0570aa368cE84f281A8aAc50cE4d) Used in: [Lens](https://l2beat.com/layer2s/projects/lens#Avail%20Multisig%201), [Sophon](https://l2beat.com/layer2s/projects/sophon#Avail%20Multisig%201) ###### Avail Multisig 2 Addresses: [0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930](https://etherscan.io/address/0x1a5BA9447D02Ddaf7bcB5594Fc27dE2Daf588930) A Multisig with 3/5 threshold. - Can interact with AvailBridgeV1 - pause the bridge Participants (5): [0xE458b870F2F59a49915591282f1Bb688901767AD](https://etherscan.io/address/0xE458b870F2F59a49915591282f1Bb688901767AD), [0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A](https://etherscan.io/address/0x340e77D5e114A9D4891d3a1EbC7419CC85Ca8E4A), [0xAD379D3275a18bd4BB741C3b291a3778D51c3304](https://etherscan.io/address/0xAD379D3275a18bd4BB741C3b291a3778D51c3304), [0x72Ff26D9517324eEFA89A48B75c5df41132c4f54](https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54), [0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5](https://etherscan.io/address/0x1fbABAbDcFE0b40a9B5D2aDB054fB74F8fE985f5) Used in: [Lens](https://l2beat.com/layer2s/projects/lens#Avail%20Multisig%202), [Sophon](https://l2beat.com/layer2s/projects/sophon#Avail%20Multisig%202) ###### SP1VerifierGatewayMultisig Addresses: [0xCafEf00d348Adbd57c37d1B77e0619C6244C6878](https://etherscan.io/address/0xCafEf00d348Adbd57c37d1B77e0619C6244C6878) A Multisig with 2/3 threshold. - Can interact with SP1VerifierGateway - affect the liveness and safety of the gateway - can transfer ownership, add and freeze verifier routes Participants (3): [0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126](https://etherscan.io/address/0xBaB2c2aF5b91695e65955DA60d63aD1b2aE81126), [0x72Ff26D9517324eEFA89A48B75c5df41132c4f54](https://etherscan.io/address/0x72Ff26D9517324eEFA89A48B75c5df41132c4f54), [0x9395e83720bf2D8ac6435f9c520b48E289Cb8885](https://etherscan.io/address/0x9395e83720bf2D8ac6435f9c520b48E289Cb8885) Used in: [Blobstream](https://l2beat.com/data-availability/projects/celestia/blobstream#SP1VerifierGatewayMultisig), [Celo](https://l2beat.com/layer2s/projects/celo#SP1VerifierGatewayMultisig), [Fluent](https://l2beat.com/layer2s/projects/fluent#SP1VerifierGatewayMultisig), [Lens](https://l2beat.com/layer2s/projects/lens#SP1VerifierGatewayMultisig), [Mantle](https://l2beat.com/layer2s/projects/mantle#SP1VerifierGatewayMultisig), [RISE](https://l2beat.com/layer2s/projects/rise#SP1VerifierGatewayMultisig), [Sophon](https://l2beat.com/layer2s/projects/sophon#SP1VerifierGatewayMultisig), [Taiko Alethia](https://l2beat.com/layer2s/projects/taiko#SP1VerifierGatewayMultisig), [X Layer](https://l2beat.com/layer2s/projects/xlayer#SP1VerifierGatewayMultisig) ###### EOA 1 Addresses: [0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35](https://etherscan.io/address/0x7EBe0bf025ca5993551cE6CEe3f541B24FDF7c35) - Can interact with Vector - it is a ‘Relayer’ and can call commitHeaderRange() to commit block ranges to the Vector contract. Since adding and removing Relayers emits no events, there can be more relayers than are presented here Used in: [Lens](https://l2beat.com/layer2s/projects/lens#EOA%203), [Sophon](https://l2beat.com/layer2s/projects/sophon#EOA%207) ### Contracts Explore these contracts and permissions in Disco, L2BEAT's contract explorer: https://disco.l2beat.com/ui/p/vector #### Ethereum ##### AvailBridgeV1 Addresses: [0x054fd961708D8E2B9c10a63F6157c74458889F0a](https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code), [0x737539737b44493F65c17eAfE165197b6410d254](https://etherscan.io/address/0x737539737b44493F65c17eAfE165197b6410d254#code) (Implementation (Upgradable)), [0x36194271a00dBBBae314E83dA56d0FF75fDa367B](https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code) (Admin) **Past upgrades** (Count of upgrades: No upgrades, Last upgrade: N/A, Avg upgrade interval: N/A) - 2024-07-09 23:48 UTC, deployment of [AvailBridgeV1](https://etherscan.io/address/0x054fd961708D8E2B9c10a63F6157c74458889F0a#code): transaction [0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c](https://etherscan.io/tx/0x980ea7f295336624f103c47b5ec482f90c2c90f4b7d05140ceb5d40aa077963c), implementations: [0x737539737b44493F65c17eAfE165197b6410d254](https://etherscan.io/address/0x737539737b44493F65c17eAfE165197b6410d254#code) Bridge contract that verifies merkle proofs of inclusion in the proven data of the Vector DA- and arbitrary message bridge. Also used for token- and arbitrary message transfers between Avail and Ethereum. - Roles: - **admin**: ProxyAdmin; ultimately Avail Multisig 1 - **defaultAdmin**: TimelockController; ultimately Avail Multisig 1 - **pauser**: Avail Multisig 2 Can be upgraded by: Avail Multisig 1 with 1d delay Proxy used in: [Lens](https://l2beat.com/layer2s/projects/lens#AvailBridgeV1), [Sophon](https://l2beat.com/layer2s/projects/sophon#AvailBridgeV1) ##### Vector Addresses: [0x02993cdC11213985b9B13224f3aF289F03bf298d](https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code), [0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D](https://etherscan.io/address/0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D#code) (Implementation (Upgradable)), [0x0000000000000000000000000000000000000000](https://etherscan.io/address/0x0000000000000000000000000000000000000000#code) (Admin) **Past upgrades** (Count of upgrades: 1, Last upgrade: 2y 2mo ago, Avg upgrade interval: 1y 1mo) - 2024-07-20 01:29 UTC, upgrade of [Vector](https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code): transaction [0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e](https://etherscan.io/tx/0x13d7977b9fca12882ea6ba47ce1b20a87de540c358b5e260584e0d921e786f5e), implementations: [0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D](https://etherscan.io/address/0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D#code) ([diff](https://disco.l2beat.com/diff/eth:0x2434564f3524b44258B11643729343Ef57D60989/eth:0xc6217f1549Cab6f22ac4AC56d42e6C248731a33D)) - 2024-07-04 21:23 UTC, deployment of [Vector](https://etherscan.io/address/0x02993cdC11213985b9B13224f3aF289F03bf298d#code): transaction [0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc](https://etherscan.io/tx/0x6c2c609d7a13fbdad53b1530d34d740ffa36653f29b5f14220429d7c0d6a3ffc), implementations: [0x2434564f3524b44258B11643729343Ef57D60989](https://etherscan.io/address/0x2434564f3524b44258B11643729343Ef57D60989#code) The Vector bridge contract that accepts and stores Avail data availability commitments on Ethereum. - Roles: - **guardians**: Avail Multisig 1 - **relayers**: EOA 1 - **timelocks**: Avail Multisig 1 Can be upgraded by: Avail Multisig 1 with no delay Proxy used in: [Lens](https://l2beat.com/layer2s/projects/lens#Vector), [Sophon](https://l2beat.com/layer2s/projects/sophon#Vector) ##### ProxyAdmin Addresses: [0x36194271a00dBBBae314E83dA56d0FF75fDa367B](https://etherscan.io/address/0x36194271a00dBBBae314E83dA56d0FF75fDa367B#code) - Roles: - **owner**: TimelockController Implementation used in: [Lens](https://l2beat.com/layer2s/projects/lens#ProxyAdmin), [Sophon](https://l2beat.com/layer2s/projects/sophon#ProxyAdmin) ##### TimelockController Addresses: [0x45828180bbE489350D621d002968A0585406d487](https://etherscan.io/address/0x45828180bbE489350D621d002968A0585406d487#code) A timelock with access control. The current minimum delay is 1d. - Roles: - **canceller**: Avail Multisig 1 - **defaultAdmin**: Avail Multisig 1, TimelockController; ultimately Avail Multisig 1 - **executor**: Avail Multisig 1 - **proposer**: Avail Multisig 1 Implementation used in: [Lens](https://l2beat.com/layer2s/projects/lens#TimelockController), [Sophon](https://l2beat.com/layer2s/projects/sophon#TimelockController) ##### SP1Verifier (0x0459…C459) Addresses: [0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459](https://etherscan.io/address/0x0459d576A6223fEeA177Fb3DF53C9c77BF84C459#code) Verifier contract for SP1 proofs (v5.0.0). Implementation used in: [Mantle](https://l2beat.com/layer2s/projects/mantle#SP1Verifier), [Celo](https://l2beat.com/layer2s/projects/celo#SP1Verifier), [X Layer](https://l2beat.com/layer2s/projects/xlayer#SP1Verifier), [Katana](https://l2beat.com/layer2s/projects/katana#SP1Verifier), [RISE](https://l2beat.com/layer2s/projects/rise#SP1Verifier), [Lumia Prism](https://l2beat.com/layer2s/projects/lumia#SP1Verifier), [Taiko Alethia](https://l2beat.com/layer2s/projects/taiko#SP1Verifier), [Haust Network](https://l2beat.com/layer2s/projects/haust#SP1Verifier), [Silicon](https://l2beat.com/layer2s/projects/silicon#SP1Verifier), [Polygon zkEVM](https://l2beat.com/layer2s/projects/polygonzkevm#SP1Verifier), [Sophon](https://l2beat.com/layer2s/projects/sophon#SP1Verifier), [Pentagon Chain](https://l2beat.com/layer2s/projects/penchain#SP1Verifier), [Lens](https://l2beat.com/layer2s/projects/lens#SP1Verifier), [Facet](https://l2beat.com/layer2s/projects/facet#SP1Verifier), [Wirex Pay Chain](https://l2beat.com/layer2s/projects/wirex#SP1Verifier), [Forknet](https://l2beat.com/layer2s/projects/forknet#SP1Verifier), [Blobstream](https://l2beat.com/data-availability/projects/celestia/blobstream#SP1Verifier), [Ethscriptions](https://l2beat.com/layer2s/projects/ethscriptions#SP1Verifier) ##### SP1VerifierGateway Addresses: [0x3B6041173B80E77f038f3F2C0f9744f04837185e](https://etherscan.io/address/0x3B6041173B80E77f038f3F2C0f9744f04837185e#code) 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. - Roles: - **owner**: SP1VerifierGatewayMultisig Implementation used in: [Blobstream](https://l2beat.com/data-availability/projects/celestia/blobstream#SP1VerifierGateway), [Celo](https://l2beat.com/layer2s/projects/celo#SP1VerifierGateway), [Lens](https://l2beat.com/layer2s/projects/lens#SP1VerifierGateway), [Mantle](https://l2beat.com/layer2s/projects/mantle#SP1VerifierGateway), [RISE](https://l2beat.com/layer2s/projects/rise#SP1VerifierGateway), [Sophon](https://l2beat.com/layer2s/projects/sophon#SP1VerifierGateway), [Taiko Alethia](https://l2beat.com/layer2s/projects/taiko#SP1VerifierGateway) ##### SP1Verifier (0x8a0f…Fc5C) Addresses: [0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C](https://etherscan.io/address/0x8a0fd5e825D14368d90Fe68F31fceAe3E17AFc5C#code) Verifier contract for SP1 proofs (v6.0.0). Implementation used in: [Mantle](https://l2beat.com/layer2s/projects/mantle#SP1Verifier), [Celo](https://l2beat.com/layer2s/projects/celo#SP1Verifier), [RISE](https://l2beat.com/layer2s/projects/rise#SP1Verifier), [Taiko Alethia](https://l2beat.com/layer2s/projects/taiko#SP1Verifier), [Sophon](https://l2beat.com/layer2s/projects/sophon#SP1Verifier), [Lens](https://l2beat.com/layer2s/projects/lens#SP1Verifier), [Blobstream](https://l2beat.com/data-availability/projects/celestia/blobstream#SP1Verifier) ##### SP1Verifier (0xc3c6…AF2A) Addresses: [0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A](https://etherscan.io/address/0xc3c6dDDAc8829b233Dc6536Ec024775a57b0AF2A#code) Verifier contract for SP1 proofs (v6.1.0). Implementation used in: [Base Chain](https://l2beat.com/layer2s/projects/base#SP1Verifier), [Mantle](https://l2beat.com/layer2s/projects/mantle#SP1Verifier), [Celo](https://l2beat.com/layer2s/projects/celo#SP1Verifier), [X Layer](https://l2beat.com/layer2s/projects/xlayer#SP1Verifier), [Katana](https://l2beat.com/layer2s/projects/katana#SP1Verifier), [RISE](https://l2beat.com/layer2s/projects/rise#SP1Verifier), [Lumia Prism](https://l2beat.com/layer2s/projects/lumia#SP1Verifier), [Taiko Alethia](https://l2beat.com/layer2s/projects/taiko#SP1Verifier), [Haust Network](https://l2beat.com/layer2s/projects/haust#SP1Verifier), [Silicon](https://l2beat.com/layer2s/projects/silicon#SP1Verifier), [Polygon zkEVM](https://l2beat.com/layer2s/projects/polygonzkevm#SP1Verifier), [Sophon](https://l2beat.com/layer2s/projects/sophon#SP1Verifier), [Pentagon Chain](https://l2beat.com/layer2s/projects/penchain#SP1Verifier), [Lens](https://l2beat.com/layer2s/projects/lens#SP1Verifier), [Wirex Pay Chain](https://l2beat.com/layer2s/projects/wirex#SP1Verifier), [Forknet](https://l2beat.com/layer2s/projects/forknet#SP1Verifier), [Blobstream](https://l2beat.com/data-availability/projects/celestia/blobstream#SP1Verifier) The current deployment carries some associated risks: - Funds can be lost if the bridge contract or its dependencies receive a malicious code upgrade. There is no delay on code upgrades. - Funds can be frozen if the bridge contract is frozen by the Guardian (AvailMultisig). #### Program Hashes ##### Avail VectorX DA bridge program ZK-friendly implementation of Avail Vector DA bridge that proves that a given data root was finalized on Avail. - Hash: `0x005f3914526e9f0d261b56a3613985801d3060584f95874548c70fda5f81efdb` - Repository: https://github.com/availproject/sp1-vector/tree/c649310e79de376926863504d49eddbf09532980/program - Verification: successful - Used in: [Vector](https://l2beat.com/layer2s/projects/vector) ###### Verification steps Prepare: 1. Install cargo make: `cargo install --debug --locked cargo-make` 2. Install sp1 toolchain v6.3.1: `curl -L https://sp1up.succinct.xyz/ | bash`, then `sp1up -v v6.3.1` (the toolchain version must match the program's `sp1-zkvm = "6.3.1"` dependency and the docker tag used below). 3. Install docker [https://docs.docker.com/get-started/get-docker/](https://docs.docker.com/get-started/get-docker/) Verify: 1. Checkout the correct branch in [availproject/sp1-vector](https://github.com/availproject/sp1-vector/tree/v2.0.1) repo: `git checkout c649310e79de376926863504d49eddbf09532980`. 2. Make sure docker is running by running `docker ps`. 3. From the `sp1-vector/program` dir run: `cargo prove build --docker --tag v6.3.1 --elf-name vector-elf --output-directory ../elf` to build the vector program elf within a docker container and place it in `sp1-vector/elf`. 4. From `sp1-vector` run: `cargo run --bin vkey --release` to print the vkey of the `vector-elf` program.