Skip to main content
Solana datasets are changing:
  • 13 October (live): fees, for new data
  • 19 October (complete): fees, history backfill
  • 22 October (live): transfers, for new data
  • 23 October (complete): transfers, history backfill
  • TBD (delayed): staking commission
  • TBD (delayed): the two transfers preview tables are removed
The staking commission change was planned for 28 October and the preview table removal for 30 October. The go-live date has been delayed. Further updates will be communicated once a new date is known.Most changes add rows or update values, and table names stay the same. Check the table guide to see if your queries need to change.
Changes since the September noticeMarked on this page with Added (not in the September notice) or Changed (in the notice, but different now).
  • Timing: fees went live for new data on 13 October, and the fees history backfill was completed on 19 October. Transfers went live for new data on 22 October, and the transfers history backfill was completed on 23 October.
  • Transfers: the scope is wider than the four p-token and prefund instructions in the notice.
    • Rows are also added for nonce withdrawals, Token-2022 fees, permissionedBurn, confidential transfers, and lookup-table and program closes.
    • A new batch_instruction_index column keeps each member of a batch instruction as its own row.
    • New transfer_type values, including four for stake and vote movements in solana.assets.transfers_and_stake.
    • token_type changes from SPL-TOKEN to SOL on native SOL rows.
  • Fees:
    • Rows are added for transactions in the new Transaction V1 format (from 15 September 2026), which pay their priority fee without a ComputeBudget instruction.
    • priority_fee and base_fee match the fees paid on chain.
    • effective_compute_unit_limit matches the runtime’s limit, which is more detailed than the rule in the notice.
  • Staking commission: solana.raw.rewards.commission is no longer backfilled. It stays NULL from 16 July 2026 and keeps its type, matching what the RPC returns.
    • Commission is computed from on-chain data and stored in solana.staking.rewards (new commission_bps and commission_percent) and solana.staking.validator.
    • A new per-validator commission dataset is added.
    • For 16 July – 8 September 2026, the commissionBps value the RPC returned is in solana.raw.rewards._extra_fields.
  • Raw tables: new keys in _extra_fields, live since 7 October.

Timeline

These changes follow Solana upgrades between March 2025 and September 2026:
  • p-token (SIMD-0266)
  • Prefunded accounts (SIMD-0312)
  • Commission in basis points (SIMD-0291)
  • Custom commission collectors (SIMD-0232)
  • Transaction V1 (SIMD-0385): a new Solana transaction format that sets its compute limit and priority fee in the transaction itself, instead of in separate ComputeBudget instructions
  • Default compute-limit changes (SIMD-0170)

7 October 2026 — new raw fields (complete)

Added New keys in _extra_fields on Solana raw tables. No action required. Details

13 October 2026 — fees, new data (live)

Updated compute limits and Transaction V1 rows in solana.raw.fees for new data (Fees)

15 October 2026 — transfers history in preview tables

Added The transfers history backfill, from December 2020, in two temporary tables in the Allium App and Explorer (Preview the backfill)

19 October 2026 — fees, history backfill (complete)

The fee changes applied to all historical rows of solana.raw.fees (Fees)

22 October 2026 — transfers, new data (live)

More value movements in the transfer tables, and a new batch_instruction_index column (Transfers)

23 October 2026 — transfers, history backfill (complete)

The same changes applied to historical rows of solana.raw.token_transfers, solana.assets.transfers and solana.assets.transfers_and_stake, from December 2020 (Transfers)
7

Date TBD — staking commission (delayed)

Planned for 28 October 2026. The go-live date has been delayed. Further updates will be communicated once a new date is known.Changed Commission in solana.staking.rewards and solana.staking.validator. Staking commission
8

Date TBD — transfers preview tables removed (delayed)

Planned for 30 October 2026. The go-live date has been delayed. Further updates will be communicated once a new date is known.solana.assets.transfers_backfill and solana.assets.transfers_with_backfill are removed. Query solana.assets.transfers instead (Preview the backfill)

Do I need to change anything?

If a Solana table isn’t listed, there are no changes.
TableChangeAction needed?
solana.raw.token_transfers
solana.assets.transfers
  • Rows added
  • New column batch_instruction_index Added
  • New transfer_type values Added
  • token_type on native SOL rows Added
  • Lower closeAccount amounts after unwrapLamports or withdrawExcessLamports Added
Only if you:
  • deduplicate by instruction position
  • filter on transfer_type or token_type
  • sum SOL from closeAccount rows alone
Transfers
solana.assets.transfers_and_stakeFour new transfer_type values for stake and vote movements AddedOnly if you filter on transfer_type
Transfers
solana.raw.fees
  • effective_compute_unit_limit updated on all history Changed
  • Transaction V1 rows added from 15 Sep 2026 Added
Only if you:
  • use effective_compute_unit_limit
  • count rows
Fees
solana.assets.transfers_w_tx_cols
solana.dex.trades_w_tx_cols
solana.dex.aggregator_trades_w_tx_cols
solana.decoded.instructions_w_tx_cols
priority_fee includes Transaction V1 AddedNo
solana.raw.rewardscommission is NULL from 16 Jul 2026 ChangedYes, if you read commission: use solana.staking.rewards
Staking commission
solana.staking.rewardsNew commission_bps and commission_percent AddedNo
solana.staking.validatorlast_commission_rate is current againNo
If you copy these tables into your own warehouse, reload the rows changed on each date. Updated rows have an _updated_at on or after that date.

Transfers

  • When: new data from 22 October 2026 (live); history backfilled on 23 October 2026 (complete)
  • Tables: solana.raw.token_transfers, solana.assets.transfers, solana.assets.transfers_and_stake

Preview the backfill

Added Before the history backfill landed in solana.assets.transfers, two temporary tables in the Allium App and Explorer showed it, from December 2020 to 14 October 2026. Both have the columns of solana.assets.transfers plus batch_instruction_index, which is NULL on rows that are not backfilled. Backfilled rows use the new token_type. Filter on block_timestamp to keep queries fast.
The backfill landed in solana.raw.token_transfers and solana.assets.transfers on 23 October 2026, so these tables will be removed. The removal was planned for 30 October 2026 and is now TBD. The go-live date has been delayed. Further updates will be communicated once a new date is known. Point any query that reads them at solana.assets.transfers, which now has every row they had.

What changes

  • More value movements get a row. Existing rows keep their amounts and addresses, except a closeAccount row that follows an unwrapLamports or withdrawExcessLamports on the same account in the same transaction (below). New rows include:
    • the new p-token and prefund instructions (49.2 million rows from 13 May 2026; see Rows added)
    • nonce withdrawals Added
    • Token-2022 fees Added
    • lookup-table and program closes Added
  • Added New column batch_instruction_index. Each member of a p-token batch instruction gets its own row, numbered by its position in the batch.
  • Added New transfer_type values:
    • withdraw_excess_lamports, transfer_fee_withheld, transfer_fee_withdrawal
    • in solana.assets.transfers_and_stake only: stake_move, stake_split, stake_merge, vote_withdrawal
  • Added token_type changes from SPL-TOKEN to SOL on rows that move native SOL with no token account.
  • Added closeAccount amounts after unwrapLamports or withdrawExcessLamports. When either comes before a closeAccount on the same account in the same transaction, the close row’s raw_amount drops by the new row’s amount, so the SOL is not counted twice. The account’s total outflow is unchanged. This applies from 13 May 2026, when p-token added these instructions. See the example “Unwrap, then close” below.

Rows added

Counted in the backfill from December 2020 to 14 October 2026 21:00 UTC. Rows from then until the change went live on 22 October came from the new decoder; with them, the backfill added 421,328,039 rows and lowered 7,004,534 closeAccount amounts.
  • 20.9 million of the p-token rows are batch transfers of a single token (EqUoWB2umVoJzGQfe2nikceRqEgZw8FoDwS6AtMv8it8), almost all on 18 and 29 May 2026. Without it the p-token and prefund total is 28.2 million.
  • 6,643,161 existing closeAccount rows from 13 May 2026 also get a lower amount (above). They are corrected rows, not added ones.

What to do

  1. Deduplicate on unique_id, the table’s key with block_timestamp and txn_id. Two kinds of rows now share instruction_index, inner_instruction_index and pseudo_instruction_order:
    • the members of one batch instruction
    • a Token-2022 transfer and its transfer_fee_withheld row
    Deduplicating on instruction position keeps one of those rows and drops the rest. See Deduplication.
  2. When ordering rows within a transaction, add batch_instruction_index and then unique_id as the last keys. A fee row has no column of its own that orders it; unique_id puts it right after its transfer. See Query patterns.
  3. Review transfer_type filters for the new values above.
  4. If you filter on token_type = 'SPL-TOKEN', native SOL rows no longer match.

Examples

Real transactions, showing the rows that exist today and the rows added. Payloads show a subset of columns.
Jupiter swap of 20 USDC for SOL, 3 Oct 2026, slot 452,936,442 · Solscan ↗The swap legs are recorded today. The final unwrapLamports, where the wallet receives its SOL, is not.
Added row
A wallet unwraps its own wSOL with one unwrapLamports, 15 Sep 2026, slot 447,133,168 · Solscan ↗The transaction has no transfer rows today. 36,338,315 lamports leave the wSOL account and become spendable SOL in the same wallet.
Added row
Swap of 9,174.80 USDC for 86.50 SOL that unwraps the wSOL, then closes the account, 13 Oct 2026, slot 456,435,445 · Solscan ↗Today the closeAccount row carries all 86,498,332,343 lamports that leave the wSOL account 8gFZ…BsMR. With the unwrapLamports row added, the close returns only the account’s rent. The two rows still total 86,498,332,343.
Changed row
A wallet consolidates token accounts with one batch of 17 members, 6 Oct 2026, slot 453,898,051 · Solscan ↗The transaction has 7 transfer rows today, none of them from the batch. The batch adds 17: two transferChecked members moving tokens into one account, and 15 closeAccount members returning each closed account’s SOL to the wallet.All 17 rows share instruction_index 0 and inner_instruction_index 0. batch_instruction_index and the unique_id suffix tell them apart.
Added row (first member)
SOL withdrawn from a durable-nonce account, 6 Oct 2026, slot 453,895,708 · Solscan ↗
Added row
Transfer of 1,802.59 tokens on a mint with a 3% transfer fee, 6 Oct 2026, slot 453,898,831 · Solscan ↗The transfer row stays as it is today, at the gross amount. A fee row is added for the 54.0777 tokens withheld in the recipient’s account. Both rows have instruction_index 3 and inner_instruction_index NULL; only transfer_type and the _fee suffix on unique_id tell them apart.
Added row
A new account funded with createAccountAllowPrefund, 6 Oct 2026, slot 453,896,373 · Solscan ↗
Added row

Deduplication

Deduplicate on unique_id. Deduplicating on instruction position (txn_id or txn_index, instruction_index, inner_instruction_index) was safe until now, because each instruction had at most one row. After this change it drops rows.
The batch example adds 17 rows, all with instruction_index 0 and inner_instruction_index 0.The 17 unique_id values differ only in their suffix:
The fee example has two rows at instruction_index 3, inner_instruction_index NULL:Deduplicating on instruction position keeps one of the two. If it keeps the fee row, the transfer you have today is gone and the volume reads 54 tokens instead of 1,802. On unique_id, both rows stay.
unique_id works only as the last key: a fee row’s unique_id is its transfer’s plus _fee, so it sorts right after the transfer. On its own, unique_id compares numbers as text (i_index-10 before i_index-2).

Reference

type is the instruction name; transfer_type is the category you filter on. Rows are written only when value moves.In solana.assets.transfers_and_stake only Added:
p-token’s batch instruction runs up to 62 token instructions inside one instruction. Each member gets a row with:
  • batch_instruction_index: its 0-based position in the batch (NULL on all other rows)
  • unique_id ending in _b_index-<n> (other rows’ unique_id is unchanged)
  • the wrapper’s instruction_index, inner_instruction_index and pseudo_instruction_order
To order rows within a transaction, see Query patterns: instruction position, then batch_instruction_index, then unique_id.
Added
  • The transfer row keeps the gross amount.
  • A transfer_fee_withheld row records the fee moving into the recipient’s withheld balance. Its unique_id is the transfer’s with _fee appended.
  • A transfer_fee_withdrawal row records the fee authority collecting it.
  • The fee row has the transfer’s instruction_index, inner_instruction_index, pseudo_instruction_order and batch_instruction_index. Tell them apart by transfer_type or unique_id.
  • The fee row has no to_address or token_acc_to. A transfer_fee_withdrawal row has no from_address or token_acc_from.
  • Recipient’s net amount received: transfer raw_amount minus the fee row’s raw_amount.
  • Fee amounts not stated by the instruction (a plain transfer on a fee mint, withdrawals) are derived from balance changes in the transaction, and assume no invisible movement of the same account’s balance.
  • p-token runs at the same program ID as SPL Token, so program_name stays spl-token.
  • Token-2022 rows are also spl-token.
  • Use program_id to tell SPL Token from Token-2022.

Fees

  • When: new data from 13 October 2026 (live); history backfilled on 19 October 2026 (complete)
  • Table: solana.raw.fees, all history

What changes

  • Changed effective_compute_unit_limit now matches the limit the Solana runtime applied.
    • Includes changes to how the default was calculated since 2022.
    • set_compute_unit_limit still holds the requested value.
  • Added Transaction V1 rows added from 15 Sep 2026, about 47 million per day.
    • Transaction V1 is a new Solana transaction format, live since 15 September 2026 and used by a large share of non-vote transactions.
    • It sets the compute limit and priority fee in the transaction itself, instead of in ComputeBudget instructions. These rows take both values from there.
  • Added priority_fee and base_fee match the fees paid on chain.

What to do

  • If you analyse compute headroom or utilisation, re-run it: the history backfill is complete.
  • If you count rows, expect about 47 million more per day from 15 Sep 2026.
  • Use priority_fee directly rather than deriving it from set_compute_unit_price.

Staking commission

  • When: TBD (planned for 28 October 2026). The go-live date has been delayed. Further updates will be communicated once a new date is known.
  • Tables: solana.staking.rewards, solana.staking.validator, solana.raw.rewards
Since SIMD-0232 (8 Sep 2026):
  • Validators can pay commission to any account.
  • The RPC no longer returns a commission rate on rewards.
Commission is now rebuilt from on-chain data and lives in the staking tables.

What changes

  • Changed solana.staking.rewards is the recommended source:
    • new commission_bps and commission_percent (NUMBER(38,10))
    • validator_vote_account filled for native staking rewards
  • solana.staking.validator: last_commission_rate is current again, capped at 100.
  • Changed solana.raw.rewards mirrors the RPC:
    • commission is NULL from 16 Jul 2026
    • for 16 Jul – 8 Sep 2026, the RPC’s commissionBps is in _extra_fields
    • as of 6 October 2026, 54.8 million rows have a NULL commission across Staking, DeactivatedStake and Voting rewards. 22.4 million of them are from 8 Sep 2026, when the RPC stopped returning a rate.
  • Added New per-validator commission dataset: each validator’s share of a commission collector’s Voting reward.

What to do

  1. Read commission from solana.staking.rewards instead of solana.raw.rewards.commission.
  2. Don’t treat a Voting reward’s pubkey as a vote account. From 8 Sep 2026 it can be a collector shared by several validators; use the per-validator commission dataset.
  • Since SIMD-0249 (22 Jun 2026), a commission change takes effect with a delay.
  • Rewards paid at the start of epoch N use the rate in force at the start of epoch N − 2.
  • commission_bps is the rate the chain applied.

Reference

AddedSolana raw tables keep RPC fields that aren’t modelled as columns in a VARIANT column, _extra_fields.
  • New column on solana.raw.blocks and solana.raw.rewards.
  • New keys in solana.raw.transactions._extra_fields from 7 October 2026: txn.version, message.transactionConfig (Transaction V1) and message.addressTableLookups.

Support

If these changes affect your workflows or you need help, reach out to [email protected] or your account team.