Raw Tables
Last updated
Last updated
Based on the Cosmos SDK schema every chain will have the following raw tables. They are marked with the dotted icon and contain more details in the description about how they are partitioned and clustered. Partitions and clusters are important to optimizing your queries so please refer to this section on how to optimize your queries.
Update frequency: real-time
transactions
blocks
event_atributes
message_event_attributes
Here are some screenshots of the columns so that you understand how these tables map to a specific transaction:
Transactions: contain high-level data about the transaction itself
Blocks: high-level information about each block, its timestamp, proposer, and more.
message_event_attributes: this table contains all events related to a message. As you might already know, Cosmos transactions can have more than one message per transaction. This table contains all events and their corresponding attributes that are triggered by state changes of that message. For reference here is a txn from Mintscan where you can see a txn from Mintscan, where you can see how events are emitted once in the logs
field. As you can see in the screenshot, there are 2 different messages emitted in this txn and so are their corresponding events:
In Numia, you can use the column message_index to retrieve events from one or the other messages from the same transaction.
event_attributes: this table contains all relevant events related to a transaction. This includes message_events from the message_event_attributes
table but mapped sequentially to the transaction, not the message. This is important because imagine you have a transfer event from 2 different messages on the first transaction, the SDK won't necessarily tell us in this table what message it belongs to. In the screenshot below you can see that events are indexed and ordered differently than message_event_attribtues
. Again, events are relative to txns and message_events are relative to messages. This includes all events from messages and also tx events of type tx
that are not related to messages.
message_event_attributes
vs event_atribtues
?In general, we recommend using message_event_attributes
this as this table is smaller and will lead to lower amounts of data being queried. Otherwise, refer to the following questions to decide:
Use message_event_attributes
when:
You are analyzing multiple messages in the same transaction
You have multiple events of the same type in the same transaction emitted by different messages
Use event_attributes when:
You need data about failed txns, since failed txns don't emit message_events, only txn events
You need to retrieve the transaction signer via event_type = txn
and attribute_key = acc_seq