Arbitrum Data: Index Arbitrum One, Nitro, and Stylus

Index Arbitrum One contracts, Stylus programs, and DeFi activity, decoded and delivered to your own database. Real-time and full history, no node to run.


Arbitrum calls itself the finance-native blockchain platform, and Arbitrum One is one of the major DeFi ecosystems on Ethereum Layer 2, with stablecoin liquidity that routes derivatives and lending flows. Under the hood, the Nitro stack is a fork of Geth compiled to WASM, so most of the code is identical to Ethereum and contracts run with minimal changes. Stylus extends that with Rust, C, and C++ programs that interoperate with Solidity. In October 2026 the Arbitrum Security Council paused new Stylus activations; existing Stylus programs keep running. See it in their words at arbitrum.io.

That is a lot of surface area for a data team. Indexing Co covers Arbitrum One, decodes events, logs, and traces into the shape you want, and delivers them to your own PostgreSQL, warehouse, or webhook. Real-time and full history, with no node to operate.

Source Arbitrum One
Ingest blocks and receipts
Decode logs, traces, ABIs
Transform your JavaScript
Deliver your database

Why Arbitrum data is hard

Rollup Settlement Arbitrum One is an optimistic rollup that posts transaction batches to Ethereum. Deposits, withdrawals, and batch settlement add structure that a plain EVM scraper never sees, and your history should reflect how the rollup actually settles.
Stylus Beyond Solidity Stylus lets contracts ship in Rust, C, and C++ through a WASM runtime that interoperates with Solidity. Indexers built only around Solidity ABIs and EVM assumptions can miss or misdecode the activity those programs emit.
Arbitrum-Specific Block Fields Nitro is a Geth fork with its own quirks: L1 batch posting, an L1-block-number notion distinct from the L2 block, and gas accounting split across L1 data and L2 execution. Naive EVM tooling fudges these and your timestamps and fee math drift.
High Throughput, Deep History Arbitrum has processed years of high-volume DeFi activity from Aave, GMX, Uniswap, Curve, and Camelot. Backfilling that history gap-free while keeping pace with the chain head is real archive-node and pipeline engineering.

What Indexing Co delivers for Arbitrum

The DIY Path

Stand up and maintain the whole stack yourself.

  • Run a Nitro archive node for Arbitrum One.
  • Handle L1 batch data, L1/L2 block-number mapping, and split gas accounting.
  • Decode Stylus and Solidity events against the right ABIs.
  • Build backfill, reorg handling, and real-time delivery from scratch.
Indexing Co

One pipeline covers Arbitrum One, delivered to your store.

  • Arbitrum One in a single pipeline.
  • Decoded logs, traces, and transfers shaped by your JavaScript transform.
  • Lands in your PostgreSQL, BigQuery, warehouse, or webhook.
  • Real-time delivery plus complete backfilled history. No node to run.

What you can index

EVM data type On Arbitrum One, for example
Contract events and logs Uniswap and Camelot swaps, GMX trades
Token transfers (ERC-20, ERC-721, ERC-1155) Stablecoin transfers and balances
Decoded transactions and traces Router calls, Stylus program activity (Rust, C, C++)
Protocol and account state Aave, GMX, and Curve positions

A transform, not a subgraph

You write the transform in JavaScript, not AssemblyScript, and change it without re-indexing from block zero. Indexing Co runs your function over each block server-side: decode the logs you care about and return rows for your destination.

// Indexing Co transform: reshape each block into rows for your database
function transform(block) {
  const results = [];
  const signatures = [
    'event Transfer(address indexed from, address indexed to, uint256 value)'
  ];

  for (const tx of block.transactions || []) {
    for (const log of tx.receipt?.logs || []) {
      const event = utils.evmDecodeLogWithMetadata(log, signatures);
      if (!event) continue;
      results.push({
        chain: block._network,
        block: Number(block.number),
        tx_hash: tx.hash,
        contract_address: log.address?.toLowerCase(),
        from: event.decoded.from,
        to: event.decoded.to,
        value: event.decoded.value,
      });
    }
  }
  return results;
}

Arbitrum with Indexing Co

Run it yourself if

You want full control of node infrastructure and have the team to operate Nitro archive nodes, handle batch and gas accounting, and decode Stylus and Solidity contracts on Arbitrum One.

Use Indexing Co if

You want Arbitrum One decoded and delivered to your own database, with real-time plus complete history and no infrastructure to run.

Get a DemoOpen the Console

Related Reading

FAQ

Does Indexing Co index Arbitrum Nova?

Our supported network is Arbitrum One. The Arbitrum DAO moved Nova into a maintenance state in 2026 and encourages users and developers to migrate to Arbitrum One.

Do I need to run an Arbitrum node?

No. Indexing Co sources Arbitrum One for you, including the full Nitro history, so you do not run an archive node or manage L1 batch ingestion.

Can Indexing Co handle Stylus contracts?

Yes. Stylus programs written in Rust, C, or C++ emit events and traces we decode alongside Solidity contracts, so your data covers both execution paths on the chain.

Is the gas and fee data accurate on Arbitrum?

Yes. We account for Arbitrum's split L1 data and L2 execution gas and its distinct L1/L2 block-number mapping, so your fee and timestamp fields stay correct rather than drifting on naive EVM assumptions.

Where does the Arbitrum data go?

Into your own destination: PostgreSQL, BigQuery, a warehouse, or a webhook. You define the output schema and own the storage.

Get Started

Index Arbitrum in minutes. Set up your first Arbitrum One pipeline without running a node.

Get a DemoOpen the Console