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.
Why Sui data is hard
What Indexing Co delivers for Sui
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.
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
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.
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
- DeFi Data Infrastructure
- Gaming and NFT Data
- Subgraph Migration: Moving Off The Graph's Hosted Service
- Indexing Co vs Subgraphs
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.