Optimism Data: Index OP Mainnet and the Superchain

Index OP Mainnet contracts and any OP Stack chain in one pipeline, decoded and delivered to your own database. Real-time and complete historical data, no node to run.


Optimism calls itself the most used blockchain infrastructure and sells the OP Stack as the audited core under 50-plus chains, configured per deployment so teams "focus on your business, not your infrastructure." OP Mainnet was the first production rollup built on that stack; the Superchain is the set of OP Stack chains that share governance, fault proofs, and a common revenue pool funding RetroPGF. ETH is the gas token, OP is the governance token. See optimism.io for their pitch.

Indexing Co's answer is the data layer underneath all of it. We index OP Mainnet, and any OP Stack chain you run, in one pipeline, decode the events into the shape you want, and deliver them to your own PostgreSQL, warehouse, or webhook. Real-time and full history, with no node to operate.

Source OP Mainnet + OP Stack chains
Ingest blocks, logs, traces
Decode ABIs to structured
Transform your JavaScript
Deliver your database

Why Optimism data is hard

It Is Never Just One Chain OP Mainnet is one node in a Superchain of OP Stack rollups: Unichain, Ink, World Chain, and your own deployment if you run one. The same contract logic shows up across many chains, and an app's real picture only forms when you index all of them together rather than one at a time.
L2 Blocks, Not L1 Blocks An OP Stack chain sequences its own blocks and posts batches and proofs back to Ethereum. Reconstructing a complete, ordered history means following the L2 chain itself, including deposits, withdrawals, and the system contracts, not just reading finalized L1 state.
Native DeFi, Native Quirks Velodrome's ve(3,3) gauge votes, Aave and Uniswap deployments: each emits its own events with its own ABI. Turning that into clean positions, swaps, and balances is per-protocol decoding work.
Throughput at Sub-Cent Fees OP Mainnet runs some of the cheapest transactions of any major L2, which means high transaction volume. Capturing every event in real time, without falling behind the chain head, is a sustained ingestion problem rather than a one-off scrape.

What Indexing Co delivers for Optimism

The DIY Path

Stand up and maintain the whole stack yourself.

  • Run an op-geth or op-reth node per OP Stack chain you care about.
  • Decode logs and traces against each protocol's ABI by hand.
  • Track deposits, withdrawals, and system-contract events across L2 and L1.
  • Build backfill, reorg handling, and real-time delivery from scratch.
Indexing Co

One pipeline covers OP Mainnet and the wider Superchain, delivered to your store.

  • OP Mainnet plus any OP Stack chain in a single pipeline.
  • Decoded data, shaped by your JavaScript transform.
  • Lands in your PostgreSQL, BigQuery, warehouse, or webhook.
  • Real-time delivery plus complete backfilled history. No node, no infra.

What you can index

OP Mainnet and OP Stack chains Application data
Contract events and logs Velodrome (merging into Aero) pools, gauges, and votes
Token transfers (ERC-20, ERC-721) Stablecoin and ETH transfers
Decoded transactions and traces Aave deposits, borrows, and liquidations
Deposits, withdrawals, system contracts Uniswap swaps and liquidity

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;
}

Optimism with Indexing Co

Run it yourself if

You want full control of node infrastructure and have the team to operate op-geth nodes, per-chain decoding, and L2 history reconstruction across every OP Stack chain you touch.

Use Indexing Co if

You want OP Mainnet and the Superchain 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 OP Mainnet or the whole Superchain?

Both. OP Mainnet is supported directly, and because every Superchain member shares the OP Stack, the same pipeline extends to Unichain, Ink, World Chain, and any OP Stack chain you run.

Do I need to run an Optimism node?

No. Indexing Co handles sourcing from OP Mainnet and any OP Stack chain, including the L2 history, so you do not run op-geth or op-reth yourself.

Can I index a custom OP Stack chain I deployed?

Yes. If your chain is built on the OP Stack, point us at it and the same decode-and-deliver pipeline applies, no bespoke integration needed.

Where does the Optimism data go?

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

Can I get complete historical Optimism data?

Yes. We backfill OP Mainnet history from your chosen start block and merge it with real-time data so your dataset is gap-free.

Get Started

Index Optimism in minutes. Set up your first OP Mainnet or OP Stack pipeline without running a node.

Get a DemoOpen the Console