Skip to main content
Important: Stellar’s raw and assets datasets are migrating from the Horizon API to the Stellar RPC. The Stellar-RPC-sourced (v2) tables are available now — migrate your queries to them before the cutover. Some legacy entities (effects, contract_events) are being deprecated entirely.

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 the v2 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:
1

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.
2

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.ledgersstellar.raw.ledgers_v2v2 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.transactionsstellar.raw.transactions_v2Some columns removed (see schema changes); shape of some data may differ.
stellar.raw.operationsstellar.raw.operations_v2Some columns removed and the operation_details JSON shape has changed (see schema changes).
stellar.raw.diagnostic_eventsstellar.raw.diagnostic_events_v2v2 contains only diagnostic events. In v1 this table also included contract events — those now live in the new stellar.raw.events entity.
stellar.raw.effectsDeprecated — no replacementRemoved 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_eventsDeprecated — folded into stellar.raw.eventsContract events are now part of the new unified stellar.raw.events entity.
stellar.assets.fungible_balancesstellar.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 no v1 equivalent:
EntityTableDescription
Eventsstellar.raw.eventsUnified events stream — classic operations + contract events in one entity.
Token transfersstellar.raw.token_transfers, stellar.assets.fungible_token_transfersComplete historical token transfers from the events stream.
Balance snapshotsstellar.raw.balance_snapshots, stellar.assets.balancesAccurate per-ledger balances.
Tokensstellar.tokensToken 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

The following columns are removed in stellar.raw.transactions_v2:
  • SOURCE_ACCOUNT_MUXED
  • SOURCE_ACCOUNT_SEQUENCE
  • MEMO_BYTES
  • FEE_ACCOUNT_MUXED
  • FEE_ACCOUNT_MUXED_ID
  • ENVELOPE_XDR
  • FEE_META_XDR
  • RESULT_XDR
  • RESULT_META_XDR
Removed columns in stellar.raw.operations_v2:
  • SOURCE_ACCOUNT_MUXED
  • SOURCE_ACCOUNT_MUXED_ID
The operation_details JSON shape has changed. Example:Old (v1):
{
  "amount": "8.1569786",
  "buying_asset_type": "native",
  "offer_id": "1804392843",
  "parameters": null,
  "price": "0.1199950",
  "price_r": { "d": 200000, "n": 23999 },
  "selling_asset_code": "WGS",
  "selling_asset_issuer": "GBBTHBKKYEO72Y2ZC5URURGQU6XWD26FFQVZELRSE5YDLRHPS6MITWGS",
  "selling_asset_type": "credit_alphanum4"
}
New (v2):
{
  "amount": 81569786,
  "buying": "native",
  "offer_id": 1804392843,
  "price": { "d": 200000, "n": 23999 },
  "selling": {
    "credit_alphanum4": {
      "asset_code": "WGS",
      "issuer": "GBBTHBKKYEO72Y2ZC5URURGQU6XWD26FFQVZELRSE5YDLRHPS6MITWGS"
    }
  }
}
Note that amounts are now raw integers (not decimal strings) and asset details are nested under the asset type.
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

  1. Update your queries to read from the _v2 tables and the new RPC-sourced entities using the mappings above.
  2. Switch your balances source from stellar.assets.fungible_balances to stellar.raw.balance_snapshots (unhydrated) or stellar.assets.balances (hydrated) for accurate historical balances.
  3. Stop referencing deprecated entitiesstellar.raw.effects and stellar.raw.contract_events will be removed. Move token-movement logic to stellar.raw.events / stellar.raw.token_transfers.
  4. Adjust for removed columns and the new operation_details shape in transactions and operations.
  5. Prepare for the eventual suffix removal — after the transition period the _v2 suffix will be dropped (ledgers_v2ledgers, etc.). We’ll send a separate notice with the timeline before this happens, so no action is needed yet.

Support

If this migration impacts your workflows or you need help, reach out to support@allium.so or your account team.