Skip to main content

Transactions

Transactions are reported in a universal format. No matter which chain is used, you only need to worry about a single transaction schema.

Transactions have a couple layers. A transaction may have multiple movements, and each movement has an array of balance changes. Each balance change indicates a change of some asset on a specific address.

On account-based chains like Solana or EVM, there is always a distinct sender and receiver per transfer of funds. So this would be modeled has multiple movements, each with a two balance changes (one for the sender, one for the receiver).

On "UTXO" based chains like Sui or Bitcoin, there are often many senders sending to many receivers, with no clear 1-to-1 links. These would be modeled as a single movement per asset, with a balance change for every sender and receiver.

Events

A movement or a balance-change will be linked to an on-chain event if possible. Usually this is an index into a list of events within the specific transaction.

See the API reference for examples of event links for various chains.