Sui Data: Index Objects, Move Events, and Transactions

Index Sui's objects, Move events, and transactions decoded and 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.

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 decodes Sui objects, Move events, and transactions 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 + objects
Decode objects, Move events
Transform your TypeScript
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.
Move Events, Not EVM Logs Contracts emit Move events keyed by package ID, transaction module, and sender, with a typed payload, not ABI-encoded EVM logs. Decoders built for EVM topics and ABIs do not apply, so every Sui event source needs Move-aware decoding.
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

Decoded Sui data, shaped by you, delivered to your store.

  • Objects, Move events, and transactions decoded for you.
  • Shaped by your TypeScript 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

Sui object and transaction data Sui event and contract data
Owned and shared objects Move events by package and module
Object creates, mutations, and transfers Decoded event payloads
Object versions and dynamic fields Package and module activity
Transactions and checkpoints Coin and token movements

A transform, not a subgraph

You write the indexing logic in TypeScript, not a Rust pipeline or AssemblyScript, and change it without re-indexing from the genesis checkpoint. The example below shapes a decoded Sui Move event into a row for your database.

// Illustrative: shape a decoded Sui Move event into an output row
export function onMoveEvent(event: DecodedMoveEvent): TradeRow {
  return {
    checkpoint: event.checkpointSequence,
    timestamp: event.timestampMs,
    packageId: event.packageId,
    module: event.transactionModule,
    sender: event.sender,
    poolId: event.fields.pool_id,
    amountIn: event.fields.amount_in,
    amountOut: event.fields.amount_out,
  };
}

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 objects, Move events, and transactions decoded and delivered to your own database, shaped by your TypeScript, with real-time plus complete history and no framework to run.

Related Reading

FAQ

Does Indexing Co decode Sui objects and Move events?

Yes. We decode owned and shared objects, their dynamic fields, and Move events into structured data, then deliver it to your destination. You do not deserialize BCS bytes or write Move-aware decoders yourself.

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

No. Indexing Co handles checkpoint ingestion and decoding 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. We handle that Sui-specific model so your transform sees clean, decoded data.

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 TypeScript and own the storage.

Get Started

Index Sui in minutes. Set up your first objects, Move events, and transactions pipeline without running a node or the Move indexer framework.

Get a Demo | Open the Console