Move is the programming language these three chains run their contracts in, and that shared language is what makes them a family. They record what a transaction changed in two different ways, so their tables come in two shapes.
Aptos and Movement list the changes themselves, in blocks, transactions, events, changes, resources, modules and table_items. Sui treats everything on the chain as an object with an owner and records the objects a transaction touched, in blocks, transactions, events, move_calls, move_packages, objects, transaction_objects and wrapped_objects.
The Tables section below says which tables each shape has and where their columns are documented.
| Chain | chain_id | blocks | transactions | events |
|---|
| Aptos | aptos | โ | โ | โ |
| Movement | movement | โ | โ | โ |
| Sui | sui | โ | โ | โ |
All three chains have blocks, transactions and events: the blocks the network agreed on, the transactions inside them, and the notes the chain wrote while running each one. On top of those, each shape adds tables of its own.
The Aptos shape adds changes, resources, modules and table_items, which record what a transaction wrote. Its columns are documented on the Aptos page, and Movement uses those same tables exactly.
The Sui shape adds move_calls, move_packages, objects, transaction_objects and wrapped_objects, which record the objects a transaction touched and the code it called. Its columns are documented on the Sui page.
On both shapes every table except blocks splits by day on block_timestamp, and blocks on timestamp. Bound that column in every query; without a bound the query reads the whole table.
Exceptions
Sui is where the family splits, and it splits because the chain itself works differently.
- Suiโs
blocks rows are checkpoints, the groups it batches transactions into, rather than blocks in the usual sense.
- Suiโs
transactions and events hold gas costs and execution effects where the Aptos ones hold Move-style changes.
- Suiโs object tables stand in for the Aptos change tables:
objects, transaction_objects and wrapped_objects record every version of every object a transaction touched.