VectorX DA verification
Verify Avail DA data availability on Ethereum using VectorX zero-knowledge proof bridge.
VectorX is the implementation of Avail's data attestation bridge that is used to bridge
data from Avail to the EVM compatible chains in form of data roots commitments. It is implemented as a set of
zero-knowledge proof circuits in SP1.
SP1 is the most feature completed zero-knowledge virtual machine that can prove execution of arbitrary Rust and any other LLVM compiled languages.
In order to verify data availability on Ethereum it is necessary
to first submit data to Avail DA as a data submission(DA) transaction. Data
submitted this way will be included in Avail DA's blocks, but not
interpreted or executed in any way.
You can submit data to Avail DA in a variety of ways, but we recommend using our dedicated SDKs.
To submit new data to Avail DA, you need to sign the extrinsic This way your DA transaction becomes a part of the Avail's block When the data root is bridged to the Ethereum network, it is possible to query for the inclusion proof(Merkle proof) using the
SP1 is the most feature completed zero-knowledge virtual machine that can prove execution of arbitrary Rust and any other LLVM compiled languages.
Verify data availability on Ethereum
Note
You can check out examples on how to submit new data to Avail DA in our API reference.
You can check out a complete example on submitting data and verifying the data blob inclusion on our github.
You can check out a complete example on submitting data and verifying the data blob inclusion on our github.
Submit data to Avail DA
dataAvailability.submitData(data) with the data being passed as a param.
Once the transaction is included in an Avail DA block and that block is finalized, a data root is generated for the entire block, ready to be bridged to
Ethereum.Bridge data to Ethereum
data-root and it's inclusion can thus be verified.
The data submitted to Avail DA is bridged to Ethereum every 360 Avail blocks and the commitment is included in the VectorX contract.
VectorX is an implementation of zero-knowledge proof circuits for Vector, Avail's Data Attestation Bridge in SP1.Note
Deployed VectorX contract for Turing testnet on the Sepolia testnet:
Deployed VectorX contract for Avail mainnet on the Ethereum network:
Deployed VectorX contract for the Holesky network
0xe542db219a7e2b29c7aeaeace242c9a2cd528f96. Deployed VectorX contract for Avail mainnet on the Ethereum network:
0x02993cdC11213985b9B13224f3aF289F03bf298d. Deployed VectorX contract for the Holesky network
0x8a48b5184dEc29E7276BF74d1C1d30d032F31e19Verify data availability on Ethereum
bridge-api
deployed for Turing testnet.Note
By submitting a Merkle proof to the verification contract it is possible to verify if a piece of data is available on Avail DA.A merkle proof is a list of hashes that can be used to prove that the given leaf is a member of the Merkle tree. An example of submitting a proof to the bridge verification contract
deployed on Sepolia network for Turing (
0x967F7DdC4ec508462231849AE81eeaa68Ad01389)
and Ethereum mainnet (0x054fd961708d8e2b9c10a63f6157c74458889f0a)
can be done by calling verifyBlobLeaf function.
This will call deployed contracts function verificationContract.verifyBlobLeaf(merkleProofInput)
and return true or false depending on the provided proof.