solana.core Table: fact_token_account_owners Type: View
Description
This table contains one row per token account address, recording the range of blocks during which a given owner controlled the account. It enables historical tracking of token account ownership on the Solana blockchain, supporting attribution of token balances and transfers to the correct owner at any point in time. Each row represents a unique ownership period for a token account, with start and end block identifiers. Null end_block_id indicates current ownership.Key Use Cases
- Attribute token balances and transfers to the correct owner at any point in time
- Analyze historical changes in token account ownership
- Support analytics on token flows, DeFi protocol activity, and wallet histories
- Study token distribution, holder analysis, and whale tracking
- Enable time-series and event-based analytics on token account ownership
Important Relationships
- Closely related to
core.fact_token_balances(for balance changes),core.fact_sol_balances(for SOL balances), andcore.ez_transfers(for transfer events) - Use
core.fact_token_balancesto analyze token balance changes and account activity - Use
core.fact_sol_balancesfor SOL balance analytics - Use
core.ez_transfersfor asset movement and transfer analytics - Joins with
core.fact_blocksfor block context andcore.fact_transactionsfor transaction context
Commonly-used Fields
account_address,owner: For account and ownership analyticsstart_block_id,end_block_id: For historical ownership period analysisfact_token_account_owners_id: For unique identification and joins
Columns
| Column Name | Data Type | Description |
|---|---|---|
| ACCOUNT_ADDRESS | TEXT | The base58-encoded address of the token account. Used to uniquely identify SPL token accounts on the Solana blockchain. Each token account holds a balance of a specific SPL token and is controlled by an owner address. |
9xQeWv...
- Enables attribution of token balances and transfers to specific accounts.
- Used in analytics for tracking token holdings, transfers, and ownership changes. | | OWNER | TEXT | The base58-encoded address of the owner controlling the token account during the specified block range. Ownership may change over time due to transfers or account reassignment. Used to attribute token balances and transfers to the correct user or program at any point in time.
7GgkQ2...
- Enables historical tracking of token account ownership.
- Supports analytics on user activity, protocol attribution, and token flows. | | START_BLOCK_ID | NUMBER | The block ID (slot number) where the ownership period for the token account begins (inclusive). Used to determine the time range during which a specific owner controlled the account.
123456789
- Enables historical attribution of token balances and transfers to the correct owner.
- Supports analytics on ownership changes, user activity, and protocol events. | | END_BLOCK_ID | NUMBER | The block ID (slot number) where the ownership period for the token account ends (exclusive). A null value indicates the current owner. Used to determine the time range during which a specific owner controlled the account.
123456999(ownership ended at this block)null(current owner)
- Enables historical attribution of token balances and transfers to the correct owner.
- Supports analytics on ownership changes, user activity, and protocol events. | | FACT_TOKEN_ACCOUNT_OWNERS_ID | TEXT | A unique identifier for the record. | | 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. |