Skip to main content
Schema: solana.core Table: fact_token_account_owners Type: View

View DBT Documentation

View the complete technical documentation and data lineage for this table

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), and core.ez_transfers (for transfer events)
  • Use core.fact_token_balances to analyze token balance changes and account activity
  • Use core.fact_sol_balances for SOL balance analytics
  • Use core.ez_transfers for asset movement and transfer analytics
  • Joins with core.fact_blocks for block context and core.fact_transactions for transaction context

Commonly-used Fields

  • account_address, owner: For account and ownership analytics
  • start_block_id, end_block_id: For historical ownership period analysis
  • fact_token_account_owners_id: For unique identification and joins

Columns

Column NameData TypeDescription
ACCOUNT_ADDRESSTEXTThe 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.
OWNERTEXTThe 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.
START_BLOCK_IDNUMBERThe 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.
END_BLOCK_IDNUMBERThe 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.
FACT_TOKEN_ACCOUNT_OWNERS_IDTEXTA unique identifier for the record.
INSERTED_TIMESTAMPTIMESTAMP_NTZThe 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_TIMESTAMPTIMESTAMP_NTZThe 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.

Column Details

ACCOUNT_ADDRESS

Example:
  • 9xQeWv...
Business Context:
  • Enables attribution of token balances and transfers to specific accounts.
  • Used in analytics for tracking token holdings, transfers, and ownership changes.

OWNER

Example:
  • 7GgkQ2...
Business Context:
  • Enables historical tracking of token account ownership.
  • Supports analytics on user activity, protocol attribution, and token flows.

START_BLOCK_ID

Example:
  • 123456789
Business Context:
  • 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

Example:
  • 123456999 (ownership ended at this block)
  • null (current owner)
Business Context:
  • Enables historical attribution of token balances and transfers to the correct owner.
  • Supports analytics on ownership changes, user activity, and protocol events.