Skip to main content
Metadata columns are identified with a _ prefix to the column name and is often data about the data transformation process, rather than of the blockchain data itself.

_updated_at & _created_at

Some tables include the columns _updated_at & _created_at. These columns are currently not officially supported, so treat them as experimental if used in a prod environment. The general behavior of these columns are:
  1. _created_at is populated when a record is first created. The value does not change thereafter, unless a full refresh of the table is done.
  2. _updated_at is populated when a record is first created, and at all subsequent updates to any column in the table. The value starts out equivalent as _created_at.
  3. Caveats about _updated_at: a. These timestamps represent changes in our primary database, which is Snowflake us-central1 or in the Allium App. It does not reflect when changes are made in our replicated regions. b. It can be updated even if there’s no change to the record content. We sometimes do repeated upserts to the same record. c. There is no guarantee between the relationship of _updated_at and any time-related column in the table (e.g. block_timestamp). d. In most cases, _updated_at occurs shortly after block_timestamp, depending on the latency of our data pipeline, but this is not always the case. e. _updated_at can be updated significantly later than block_timestamp in cases such as (non-exhaustive):
    • the table is recreated (full refreshed)
    • patching old data on the table via upserts (_updated_at < _created_at )
    • patching missing data on the table (_updated_at == _created_at )
If you use these columns for pulling data incrementally from Allium, make sure to account for the possible behaviors of the _updated_at & _created_at.

_changed_since_full_refresh

Some tables include the column _changed_since_full_refresh. The general behaviour of this column is:
  1. _changed_since_full_refresh is set to false when a table is first created or full refreshed.
  2. _changed_since_full_refresh is set to true for any record that is added or updated after the initial table creation, or after a full refresh.
We do not recommend using _changed_since_full_refresh for pulling data incrementally from Allium as you will re-pull a growing amount of the same records on each subsequent run. For example, a record that has _changed_since_full_refresh = true from 2024 will remain that way until the table is full refreshed again.