Fogo Data: Index SVM Trading Activity, Programs, and Token Balances

Index Fogo transactions, program calls, logs, and SPL token balance changes in one pipeline, delivered to your own database. Real-time data from a fast SVM Layer 1, no node to run.


Fogo is an SVM Layer 1 purpose-built for trading. It keeps full compatibility with the Solana Virtual Machine and runs a custom Firedancer-based client tuned for consistent, low-latency block production, with validators colocated near major exchanges. Solana programs and tooling carry over, and so does the Solana data model: transactions are lists of instructions over accounts, identified by signature, with meaning spread across logs and balance changes. You can read how the team frames it at fogo.io.

Short blocks and trading-heavy traffic are the data problem. Fogo produces blocks fast, and much of what lands in them is order flow, cancels, and failed attempts. Indexing Co delivers Fogo blocks in the Solana JSON-RPC shape, runs your transform over every transaction server-side, and lands the rows in your own PostgreSQL, warehouse, or webhook. Real-time, with no node to operate.

Source Fogo SVM blocks
Ingest transactions and meta
Parse instructions, logs, balances
Transform your JavaScript
Deliver your database

Why Fogo data is hard

Block Cadence Built for Trading Fogo is tuned for very short block times. Polling an RPC endpoint block by block falls behind quickly, and every gap shows up as missing fills or stale balances in whatever you build on top.
Failures Are Data Too Trading traffic produces a steady stream of transactions that land on chain but fail with a program error. Each still pays a fee and still tells you something about order flow, so you need the err field and the logs, not just the successes.
Meaning Lives in Meta What a transaction did is spread across instructions, inner instructions, raw log messages, and pre and post token balances. Versioned transactions add address lookup tables, so resolving which program an instruction called takes more than reading the static account list.
Signatures, Not Hashes Fogo inherits Solana's identifiers: a transaction is keyed by its first signature, and blocks carry a block height and parent slot. EVM-shaped pipelines that expect tx.hash and block.number do not fit.

What Indexing Co delivers for Fogo

The DIY Path

Stand up and maintain the whole stack yourself.

  • Run a Fogo RPC node or find a provider that keeps up with block production.
  • Fetch every block and resolve account keys, including lookup-table addresses.
  • Parse logs, inner instructions, and token balance deltas per program.
  • Build backfill, retries, and real-time delivery from scratch.
Indexing Co

One pipeline sources, shapes, and delivers Fogo to your store.

  • Full Fogo blocks: transactions, instructions, logs, balances, and rewards.
  • Shaped by your JavaScript transform into the schema you define.
  • Lands in your PostgreSQL, BigQuery, warehouse, or webhook.
  • The same pipeline carries your Solana and EVM chains. No node.

What you can index

SVM data type On Fogo, for example
Transactions and signatures Fee payer, fee, success or program error per transaction
Instructions and inner instructions Which trading programs a transaction called, and the calls they made
Program log messages Raw program logs for your own parsing
SPL token balance changes Pre and post token balances by mint and owner
Block metadata and rewards Block height, block time, blockhash, validator rewards

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. This one returns a row per transaction with the programs it called and whether it succeeded.

// Indexing Co transform: one row per Fogo transaction, with the programs it called
function transform(block) {
  const results = [];

  for (const tx of block.transactions || []) {
    const msg = tx.transaction?.message || {};
    const loaded = tx.meta?.loadedAddresses || {};
    // v0 transactions append lookup-table addresses after the static account keys
    const keys = [...(msg.accountKeys || []), ...(loaded.writable || []), ...(loaded.readonly || [])];
    const programs = [...new Set((msg.instructions || []).map((ix) => keys[ix.programIdIndex]))];

    results.push({
      chain: block._network,
      block_height: block.blockHeight,
      block_time: block.blockTime,
      signature: tx.transaction?.signatures?.[0],
      fee_payer: keys[0],
      programs: programs.join(','),
      fee: tx.meta?.fee,
      succeeded: tx.meta?.err === null,
      token_balance_changes: (tx.meta?.postTokenBalances || []).length,
    });
  }
  return results;
}

Fogo with Indexing Co

Run it yourself if

You want full control of node infrastructure and have the team to keep a Fogo RPC node at the chain head, resolve SVM account keys and lookup tables, and build delivery in-house.

Use Indexing Co if

You want Fogo transactions, program calls, logs, and token balance changes delivered to your own database, on a schema shared with your other chains, with no infrastructure to run.

Get a DemoOpen the Console

Related Reading

FAQ

Is Fogo data the same shape as Solana?

Yes. Fogo is SVM compatible, so blocks carry Solana-style transactions with signatures, account keys, instructions, and a meta object with logs, fees, errors, and balances. Your Solana transform logic carries over.

How do I identify a Fogo transaction?

By its first signature, tx.transaction.signatures[0]. Blocks carry blockHeight, blockTime, and parentSlot. There is no EVM-style transaction hash or block number.

Can I capture failed transactions?

Yes. Failed transactions are in the block with their fee, logs, and an err value. Keep them or filter them out in your transform.

Does Indexing Co decode Fogo program data?

Indexing Co delivers instructions, inner instructions, raw program log messages, and pre and post token balances. Your transform decides how to interpret them for the programs you care about. There is no automatic IDL decoding claimed here.

Where does the Fogo 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 Fogo in minutes. Set up your first Fogo trading or token pipeline without running a node.

Get a DemoOpen the Console