Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.spire.dev/llms.txt

Use this file to discover all available pages before exploring further.

Get up and running with DA Builder quickly. This guide covers the essential steps to start aggregating transactions and reducing costs.

Prerequisites

  • Basic understanding of EIP-7702
  • ETH for GasTank deposit

Quick Setup (4 Steps)

1. Deploy Proposer Contract

Deploy a TrustlessProposer contract or implement the IProposer interface:
interface IProposer {
    function onCall(address _target, bytes calldata _data, uint256 _value) external returns (bool);
}
See the sample integration↗ for a complete implementation.

2. Set Up EIP-7702 Account Code

Submit an EIP-7702 transaction to associate your proposer contract with your EOA:
// Using Alloy
let authorization = Authorization {
    chain_id: U256::from(chain_id),
    address: proposer_address,
    nonce: auth_nonce,
};

let signed_authorization = authorization.into_signed(signature);
let tx = TransactionRequest::default()
    .with_authorization_list(vec![signed_authorization])
    .with_chain_id(chain_id);

3. Fund Your GasTank

Deposit ETH to the GasTank contract to cover transaction costs:
gas_tank_contract.deposit()
    .value(deposit_amount)
    .send()
    .await?;
Important: After depositing to the GasTank, it can take a couple minutes for the deposit to be indexed and processed before you can execute aggregated transactions through DA Builder. Use dab_accountInfo to check when your balance is available.
Contract addresses and endpoints are in the Quick Reference.

4. Submit Your First Transaction

Submit transactions through DA Builder’s RPC endpoint:
let pending_tx = da_builder_client
    .send_da_builder_transaction(tx_request, deadline_secs)
    .await?;

let receipt = pending_tx.await?;

RPC Endpoints

Next Steps

Support

Questions? Reach out at hello@spire.dev.