Building on the Arbitrum Nitro stack with Avail DA
How Arbitrum Orbit chains integrate with Avail DA — architecture, transaction lifecycle, and supported configurations.
What is Nitro?
Arbitrum Orbit integration with Avail DA
-
Transaction Submission
- Process: Users send transactions to the Sequencer.
- Role: The Sequencer temporarily holds the transactions before they are batched.
-
Batch Processing
- Component:
Sequencer - Function: Collects and orders transactions into batches for more efficient processing.
- Component:
-
Batch Submission on Avail
- component:
arbnode/batch-poster - Process: Sequencer posts a batch of L2 transactions onto the underlying data availability provider.
- component:
-
BlobPointer Reference Creation
- Outcome: Avail returns a unique transaction reference with Merkle proof of batch submission.
-
BlobPointer Submission to Settlement layer ( Arbitrum One, Ethereum etc.)
- Process: BlobPointer with Avail header byte(0x0a) is being sent over
to
sequencerInboxrollup contract for on-chain DA verification over Avail bridge and batch addition to canonical chain. - component:
SequncerInbox.sol
- Process: BlobPointer with Avail header byte(0x0a) is being sent over
to
-
on-chain Data availability verification
- Component:
Avail bridge - Function: Verify
Merkle prooffor the batch submission withdataRootCommitmentfromVectorX.
- Component:
-
Replay batch execution over WASM binary STF
- Component:
Arbitrator, ArbState - Process: Recover payload from Avail DA (
RecoverPayloadFromAvailBatch), and re-executes the State Transition Function against input messages to determine the correct output block.
- Component:
How is this guide?