Avail bridge API reference
TRANSACTION NESTING LIMITATIONS
To ensure network stability and security, the Avail network is generally subject to the following limits:
- 
General Transactions: Transaction nesting is limited to a maximum of 5 levels. Transactions exceeding this limit are not guaranteed to be processed successfully. 
- 
Bridge Transactions (Avail to Ethereum): For vector.sendMessageoperations, only direct calls and nesting only with proxy/multisig (up to 2 levels) are supported. Any other combination is not guaranteed to work.
- 
Data Availability Submissions: dataAvailability.submitDataoperations should only be performed with standard accounts.
- 
Batching Restrictions: - vector.sendMessageand- dataAvailability.submitDatacalls should not be included in batch calls.
- vector.sendMessageshould not be included in schedule calls.
- Transactions with more than 2 levels of batching are not guaranteed to work.
 
Understanding Nesting Levels:
- Level 0: Direct call (e.g., dataAvailability.submitData)
- Level 1: One wrapper (e.g., multisig → dataAvailability.submitData)
- Level 2: Two wrappers (e.g., proxy → multisig → dataAvailability.submitData)
BEFORE WE START
- The Avail VectorX bridge can be used to pass messages and tokens between 
 Avail DA Turing - Ethereum Sepolia (testnet bridge), and between Avail DA mainnet - Ethereum mainnet (mainnet bridge).
- You can check out a complete list of endpoints required to use the bridge API in the networks page.
TWO WAYS OF USING THE BRIDGE API
- You can build and run the bridge API locally using the instructions outlined in this repo: availproject/bridge-api
- We have included two public endpoints for the bridge API in the networks page that you can use. For the sake of simplicity that is what we will be using in this guide.
- For the sake of simplicity, we will use the Turing testnet bridge API in this guide.
Setting up the dev environment
CURL
- To use the Avail bridge API with curl, you just need to havecurlinstalled on your system. You can check if it is installed by running:
CURL
curl --version- If this does not work, go to curl’s website to install it on your system.
Last updated on