| BLOCK_TIMESTAMP | TIMESTAMP_NTZ | The timestamp (UTC) at which the block was produced on the Solana blockchain. This field is recorded as a TIMESTAMP data type and represents the precise moment the block was finalized and added to the chain. It is essential for time-series analysis, block production monitoring, and aligning transaction and event data to specific points in time. Used extensively for analytics involving block intervals, network activity trends, and historical lookups. Format: YYYY-MM-DD HH:MI:SS (UTC). |
| BLOCK_ID | NUMBER | A unique identifier for the block in which this transaction was included on the Solana blockchain. Typically a sequential integer or hash, depending on the data source. Used to group transactions by block and analyze block-level activity. Example: 123456789 Business Context: Supports block-level analytics, such as block production rate and transaction throughput. Useful for tracing transaction inclusion and block explorer integrations. Relationships: All transactions with the same ‘blockid’ s… |
| TX_ID | TEXT | The unique transaction signature (hash) for each transaction on the Solana blockchain. This field is a base58-encoded string, typically 88 characters in length, and serves as the primary identifier for transactions across all Solana data models. Used to join transaction data with related tables (blocks, events, transfers, logs, decoded instructions) and to trace the full lifecycle and effects of a transaction. Essential for transaction-level analytics, debugging, and cross-referencing with bl… |
| RECENT_BLOCK_HASH | TEXT | The hash of the most recent block prior to this transaction, as recorded on the Solana blockchain. Used to prevent transaction replay and ensure transaction freshness. This value is a base58-encoded string representing the block hash at the time the transaction was submitted. For more details, see the Solana documentation on transaction structure: https://docs.solana.com/developing/clients/jsonrpc-api#sendtransaction |
| SIGNERS | ARRAY | List of accounts that signed the transaction. This field captures all wallet addresses that provided signatures for the transaction, enabling multi-signature analysis and transaction authority tracking. Data type: ARRAY (list of Solana addresses) Business context: Used to track transaction signers, analyze multi-signature patterns, and identify transaction authorities. Analytics use cases: Multi-signature analysis, transaction authority tracking, and signer pattern studies. Example:… |
| FEE | NUMBER | The transaction fee paid for processing this transaction, denominated in lamports (the smallest unit of SOL). This fee is deducted from the payer’s account and is determined by the compute resources consumed and the current network fee rate. For more information, see: https://docs.solana.com/implemented-proposals/transaction-fees |
| SUCCEEDED | BOOLEAN | Boolean flag indicating whether the transaction was successfully executed and confirmed on the Solana blockchain. A value of TRUE means the transaction was processed without errors; FALSE indicates failure due to program errors, insufficient funds, or other issues. Example: true false Business Context: Used to filter for successful transactions in analytics and reporting. Important for error analysis, user experience, and program debugging. |
| ACCOUNT_KEYS | ARRAY | An array of all account addresses referenced by this transaction, including signers, writable, and read-only accounts. Each entry is a base58-encoded Solana address. This list is used to resolve account balances and permissions for transaction execution. See: https://docs.solana.com/developing/programming-model/accounts |
| PRE_BALANCES | ARRAY | List of pre-transaction balances for different accounts. This field captures the SOL balances of all accounts involved in the transaction before execution, enabling balance change analysis and transaction impact measurement. Data type: ARRAY (SOL amounts) Business context: Used to track balance changes, analyze transaction impact, and measure SOL movement between accounts. Analytics use cases: Balance change analysis, transaction impact measurement, and SOL movement tracking. Example:… |
| POST_BALANCES | ARRAY | List of post-transaction balances for different accounts. This field captures the SOL balances of all accounts involved in the transaction after execution, enabling balance change analysis and transaction impact measurement. Data type: ARRAY (SOL amounts) Business context: Used to track balance changes, analyze transaction impact, and measure SOL movement between accounts. Analytics use cases: Balance change analysis, transaction impact measurement, and SOL movement tracking. Example:… |
| PRE_TOKEN_BALANCES | ARRAY | List of pre-transaction token balances for different token accounts. This field captures the token balances of all token accounts involved in the transaction before execution, enabling token balance change analysis. Data type: ARRAY (token balance objects) Business context: Used to track token balance changes, analyze token movements, and measure token transaction impact. Analytics use cases: Token balance change analysis, token movement tracking, and token transaction impact measurement. Exa… |
| POST_TOKEN_BALANCES | ARRAY | List of post-transaction token balances for different token accounts. This field captures the token balances of all token accounts involved in the transaction after execution, enabling token balance change analysis. Data type: ARRAY (token balance objects) Business context: Used to track token balance changes, analyze token movements, and measure token transaction impact. Analytics use cases: Token balance change analysis, token movement tracking, and token transaction impact measurement. Exa… |
| INSTRUCTIONS | ARRAY | An array of program instructions executed as part of this transaction. Each instruction includes the program ID, accounts involved, and input data. Instructions define the actions performed by the transaction. See: https://docs.solana.com/developing/programming-model/transactions#instructions |
| INNER_INSTRUCTIONS | ARRAY | An array of instructions invoked by programs during the execution of the main transaction instructions. Inner instructions are generated by CPI (cross-program invocation) and provide details on program-to-program calls. See: https://docs.solana.com/developing/programming-model/calling-between-programs |
| LOG_MESSAGES | ARRAY | An array of log messages emitted by programs during transaction execution. Useful for debugging, tracing program logic, and analyzing transaction outcomes. Each entry is a string message as output by the Solana runtime. See: https://docs.solana.com/developing/programming-model/runtime#logging |
| UNITS_CONSUMED | NUMBER | The number of compute units consumed by this transaction. Compute units measure the computational resources used and are used to calculate transaction fees. For more information, see: https://docs.solana.com/developing/runtime-facilities/programs#compute-budget |
| UNITS_LIMIT | NUMBER | The maximum number of compute units allowed for this transaction, as set by the compute budget instruction. Transactions exceeding this limit will fail. For more information, see: https://docs.solana.com/developing/runtime-facilities/programs#compute-budget |
| TX_SIZE | NUMBER | The size of the transaction in bytes, including all instructions, signatures, and account references. Used to analyze transaction complexity and network resource usage. See: https://docs.solana.com/developing/clients/jsonrpc-api#sendtransaction |
| TX_INDEX | NUMBER | The position of this transaction within its containing block, starting from zero. Used to order transactions within a block and analyze intra-block activity. Example: 0 15 Business Context: Useful for reconstructing block order and analyzing transaction sequencing. Can be used to identify priority transactions or block congestion. Relationships: Used with ‘blockid’ and ‘blocktimestamp’ for full ordering. |
| FACT_TRANSACTIONS_ID | TEXT | A unique, stable identifier for each record in this table. The primary key (PK) ensures that every row is uniquely identifiable and supports efficient joins, lookups, and data integrity across models. The PK may be a natural key (such as a blockchain transaction hash) or a surrogate key generated from one or more fields, depending on the table’s structure and requirements. |
| INSERTED_TIMESTAMP | TIMESTAMP_NTZ | The timestamp when this transaction record was first inserted into the analytics database. Used for data freshness tracking and incremental model logic. Format: YYYY-MM-DD HH:MI:SS. Not derived from the blockchain, but from the ETL process. |
| MODIFIED_TIMESTAMP | TIMESTAMP_NTZ | The timestamp when this transaction record was last updated in the analytics database. Used for tracking updates and supporting incremental model logic. Format: YYYY-MM-DD HH:MI:SS. Not derived from the blockchain, but from the ETL process. |