Overview
Stellar’s Horizon API is being deprecated. Allium has re-built its Stellar raw and enriched datasets directly from the Stellar RPC. These are thev2 datasets that will be supported moving forward.
One of the core benefits of the v2 datasets is complete, accurate historical token transfers and balances. The Stellar RPC exposes a unified events stream that captures all token movement — classic operations and contract events — in one place. This lets Allium ingest a full history of token transfers and compute balances directly from on-chain events.
Migration approach
Migration happens in two phases:Switch to the v2 datasets
Update your workflows to query the
_v2 tables (and the new RPC-sourced enriched tables) listed below. Both v1 and v2 pipelines run in parallel during this transition period.Suffix removal (future, separate notice)
Once customers have transitioned, the
_v2 suffix will be dropped — e.g. stellar.raw.ledgers_v2 will be renamed back to stellar.raw.ledgers. We’ll send a separate notice with the timeline before this rename happens — no action is needed on this step yet. (see What to do).Table migration
| Current table (v1, Horizon) | New table (v2, Stellar RPC) | Notes |
|---|---|---|
stellar.raw.ledgers | stellar.raw.ledgers_v2 | v2 adds count columns for the new related entities, e.g. token_transfer_count, balance_snapshot_count, event_count. Some existing count columns are updated to reflect v2 entity logic. |
stellar.raw.transactions | stellar.raw.transactions_v2 | Some columns removed (see schema changes); shape of some data may differ. |
stellar.raw.operations | stellar.raw.operations_v2 | Some columns removed and the operation_details JSON shape has changed (see schema changes). |
stellar.raw.diagnostic_events | stellar.raw.diagnostic_events_v2 | v2 contains only diagnostic events. In v1 this table also included contract events — those now live in the new stellar.raw.events entity. |
stellar.raw.effects | Deprecated — no replacement | Removed in v2. As advised by the Stellar Foundation, effects are no longer required. Use stellar.raw.events / stellar.raw.token_transfers for token movement instead. |
stellar.raw.contract_events | Deprecated — folded into stellar.raw.events | Contract events are now part of the new unified stellar.raw.events entity. |
stellar.assets.fungible_balances | stellar.raw.balance_snapshots (unhydrated) / stellar.assets.balances (hydrated) | Action required. The legacy fungible_balances computes balances via a cumulative sum of transfers and is prone to errors. Switch to balance_snapshots / assets.balances for accurate data. assets.fungible_balances will later be re-pointed at balance_snapshots. |
New entities (v2 only)
The Stellar RPC migration introduces new RPC-sourced entities that have nov1 equivalent:
| Entity | Table | Description |
|---|---|---|
| Events | stellar.raw.events | Unified events stream — classic operations + contract events in one entity. |
| Token transfers | stellar.raw.token_transfers, stellar.assets.fungible_token_transfers | Complete historical token transfers from the events stream. |
| Balance snapshots | stellar.raw.balance_snapshots, stellar.assets.balances | Accurate per-ledger balances. |
| Tokens | stellar.tokens | Token metadata. |
NFT token transfers and balances are also available in the same tables — filter on
token_id is not null (e.g. select * from stellar.raw.token_transfers where token_id is not null).Schema changes
Raw transactions — removed columns
Raw transactions — removed columns
The following columns are removed in
stellar.raw.transactions_v2:SOURCE_ACCOUNT_MUXEDSOURCE_ACCOUNT_SEQUENCEMEMO_BYTESFEE_ACCOUNT_MUXEDFEE_ACCOUNT_MUXED_IDENVELOPE_XDRFEE_META_XDRRESULT_XDRRESULT_META_XDR
Raw operations — removed columns & operation_details shape
Raw operations — removed columns & operation_details shape
Removed columns in New (v2):Note that amounts are now raw integers (not decimal strings) and asset details are nested under the asset type.
stellar.raw.operations_v2:SOURCE_ACCOUNT_MUXEDSOURCE_ACCOUNT_MUXED_ID
operation_details JSON shape has changed. Example:Old (v1):Diagnostic events — narrowed scope
Diagnostic events — narrowed scope
stellar.raw.diagnostic_events_v2 contains only diagnostic events. In v1, this table also included contract events. Contract events are now available in the new unified stellar.raw.events entity.What to do
- Update your queries to read from the
_v2tables and the new RPC-sourced entities using the mappings above. - Switch your balances source from
stellar.assets.fungible_balancestostellar.raw.balance_snapshots(unhydrated) orstellar.assets.balances(hydrated) for accurate historical balances. - Stop referencing deprecated entities —
stellar.raw.effectsandstellar.raw.contract_eventswill be removed. Move token-movement logic tostellar.raw.events/stellar.raw.token_transfers. - Adjust for removed columns and the new
operation_detailsshape in transactions and operations. - Prepare for the eventual suffix removal — after the transition period the
_v2suffix will be dropped (ledgers_v2→ledgers, etc.). We’ll send a separate notice with the timeline before this happens, so no action is needed yet.