Sui Data: Index Checkpoints, Transactions, and Balance Changes

Index Sui checkpoints, transaction status and gas, and per-transaction coin balance changes, delivered to your own database. Real-time and complete historical data, no Move indexer framework to run.


Sui is a non-EVM chain built in Move with an object-centric model. State does not live in contract storage mappings the way it does on EVM chains. Instead it lives in owned and shared objects, data is serialized with BCS (Binary Canonical Serialization), and contracts emit Move events. Transactions are batched into checkpoints, which are the unit you stream to follow the chain. See it in their words at sui.io.

That means indexing Sui is tracking objects, Move events, and transactions through checkpoints, not parsing EVM logs. Native tooling is Sui-specific: the sui-indexer-alt-framework in Rust, plus gRPC and GraphQL RPC for reads. Indexing Co streams Sui checkpoints with each transaction's status, gas costs, and coin balance changes, and delivers them to your own PostgreSQL, warehouse, or webhook. No Move indexer framework to run, no node to operate.

Source Sui checkpoints
Ingest checkpoints + transactions
Decode status, gas, balances
Transform your JavaScript
Deliver your database

Why Sui data is hard

Object-Centric, Not Account-And-Log State lives in owned and shared objects, each with its own ID, type, and version, not in per-contract storage mappings. Following an app means tracking object creates, mutations, and transfers across checkpoints, a model with no EVM equivalent to lean on.
BCS Serialization Object contents and transaction data are BCS-encoded on chain. Reading them is not JSON parsing: you deserialize BCS bytes against Move struct layouts, and gRPC responses hand you Uint8Array and BigInt fields that standard JSON tooling cannot handle directly.
Value Moves Through Coin Objects There are no ERC-20 Transfer logs to follow. Value moves as coin objects are split, merged, and transferred, so the cleanest record of who gained or lost what is each transaction's balance changes: owner, coin type, and signed amount.
Native Framework Is DIY The official path is the sui-indexer-alt-framework, a Rust framework where you write pipelines, manage checkpoint ingestion over gRPC, handle watermarks and backpressure, and operate it yourself. Powerful, but it is infrastructure you build and run.

What Indexing Co delivers for Sui

The DIY Path

Stand up and maintain the Sui indexing stack yourself.

  • Write Rust pipelines on the sui-indexer-alt-framework.
  • Stream checkpoints over gRPC and add a polling fallback for history.
  • Deserialize BCS object and transaction bytes against Move layouts.
  • Operate watermarks, backpressure, backfill, and delivery yourself.
Indexing Co

Sui transactions and balance changes, shaped by you, delivered to your store.

  • Every checkpoint's transactions with status, gas costs, and balance changes, as plain JSON.
  • Shaped by your JavaScript transform, not a Rust pipeline.
  • Lands in your PostgreSQL, BigQuery, warehouse, or webhook.
  • Real-time delivery plus complete backfilled history. No framework, no node.

What you can index

Checkpoint and transaction data Coin and balance data
Checkpoint sequence and timestamp Balance changes per transaction
Transaction digests Owner address for each change
Success or failure status Coin type (SUI and any other coin)
Gas: computation, storage, and rebate Signed amounts, credits and debits

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: pick the transactions and balance changes you care about and return rows for your destination.

// Indexing Co transform: Sui balance changes per transaction
function transform(block) {
  const results = [];
  for (const tx of block.transactions || []) {
    for (const change of tx.balanceChanges || []) {
      results.push({
        chain: block._network,
        checkpoint: Number(block.sequence),
        tx_digest: tx.digest,
        status: tx.effects?.status?.status,
        owner: change.owner?.AddressOwner || JSON.stringify(change.owner),
        coin_type: change.coinType,
        amount: change.amount,
      });
    }
  }
  return results;
}

Sui with Indexing Co

Run it yourself if

You want full control of Sui infrastructure and have a Rust team to operate the sui-indexer-alt-framework, checkpoint ingestion, BCS decoding, and your own database delivery.

Use Indexing Co if

You want Sui transactions, gas, and coin balance changes delivered to your own database, shaped by your JavaScript, with real-time plus complete history and no framework to run.

Get a DemoOpen the Console

Related Reading

FAQ

What Sui data does Indexing Co deliver?

Each checkpoint with its transactions: digest, success status, gas costs (computation, storage, and rebate), and balance changes per owner and coin type. It arrives as plain JSON, so you do not deserialize BCS bytes yourself. If you need object or Move event data, talk to us.

Do I need to run the sui-indexer-alt-framework or a Sui node?

No. Indexing Co handles checkpoint ingestion for you. You do not stand up a Rust indexer pipeline, manage gRPC streaming and watermarks, or operate a full node.

How is indexing Sui different from indexing an EVM chain?

Sui is object-centric. Instead of parsing EVM logs against contract storage, you track objects, Move events, and transactions through checkpoints. Indexing Co hands your transform each checkpoint's transactions and balance changes as plain fields.

Can I get complete historical Sui data?

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

Where does the Sui data go?

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

Get Started

Index Sui in minutes. Set up your first balance-change or transaction pipeline without running a node or the Move indexer framework.

Get a DemoOpen the Console