- 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_indexcolumn keeps each member of abatchinstruction as its own row. - New
transfer_typevalues, including four for stake and vote movements insolana.assets.transfers_and_stake. token_typechanges fromSPL-TOKENtoSOLon native SOL rows.
- Rows are also added for nonce withdrawals, Token-2022 fees,
- 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_feeandbase_feematch the fees paid on chain.effective_compute_unit_limitmatches the runtime’s limit, which is more detailed than the rule in the notice.
- Staking commission:
solana.raw.rewards.commissionis no longer backfilled. It staysNULLfrom 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(newcommission_bpsandcommission_percent) andsolana.staking.validator. - A new per-validator commission dataset is added.
- For 16 July – 8 September 2026, the
commissionBpsvalue the RPC returned is insolana.raw.rewards._extra_fields.
- Commission is computed from on-chain data and stored in
- 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)
_extra_fields on Solana raw tables. No action required. Details13 October 2026 — fees, new data (live)
solana.raw.fees for new data (Fees)15 October 2026 — transfers history in preview tables
19 October 2026 — fees, history backfill (complete)
solana.raw.fees (Fees)22 October 2026 — transfers, new data (live)
batch_instruction_index column (Transfers)23 October 2026 — transfers, history backfill (complete)
solana.raw.token_transfers, solana.assets.transfers and solana.assets.transfers_and_stake, from December 2020 (Transfers)Date TBD — staking commission (delayed)
solana.staking.rewards and solana.staking.validator. Staking commissionDate TBD — transfers preview tables removed (delayed)
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.| Table | Change | Action needed? |
|---|---|---|
solana.raw.token_transferssolana.assets.transfers |
| Only if you:
|
solana.assets.transfers_and_stake | Four new transfer_type values for stake and vote movements Added | Only if you filter on transfer_typeTransfers |
solana.raw.fees |
| Only if you:
|
solana.assets.transfers_w_tx_colssolana.dex.trades_w_tx_colssolana.dex.aggregator_trades_w_tx_colssolana.decoded.instructions_w_tx_cols | priority_fee includes Transaction V1 Added | No |
solana.raw.rewards | commission is NULL from 16 Jul 2026 Changed | Yes, if you read commission: use solana.staking.rewardsStaking commission |
solana.staking.rewards | New commission_bps and commission_percent Added | No |
solana.staking.validator | last_commission_rate is current again | No |
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 insolana.assets.transfers, two temporary tables in the Allium App and Explorer showed it, from December 2020 to 14 October 2026.
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.
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
closeAccountrow that follows anunwrapLamportsorwithdrawExcessLamportson 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-tokenbatchinstruction gets its own row, numbered by its position in the batch. - Added New
transfer_typevalues:withdraw_excess_lamports,transfer_fee_withheld,transfer_fee_withdrawal- in
solana.assets.transfers_and_stakeonly:stake_move,stake_split,stake_merge,vote_withdrawal
- Added
token_typechanges fromSPL-TOKENtoSOLon rows that move native SOL with no token account. - Added
closeAccountamounts afterunwrapLamportsorwithdrawExcessLamports. When either comes before acloseAccounton the same account in the same transaction, the close row’sraw_amountdrops 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,534closeAccount amounts.
- 20.9 million of the p-token rows are
batchtransfers 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
closeAccountrows from 13 May 2026 also get a lower amount (above). They are corrected rows, not added ones.
What to do
-
Deduplicate on
unique_id, the table’s key withblock_timestampandtxn_id. Two kinds of rows now shareinstruction_index,inner_instruction_indexandpseudo_instruction_order:- the members of one
batchinstruction - a Token-2022 transfer and its
transfer_fee_withheldrow
- the members of one
-
When ordering rows within a transaction, add
batch_instruction_indexand thenunique_idas the last keys. A fee row has no column of its own that orders it;unique_idputs it right after its transfer. See Query patterns. -
Review
transfer_typefilters for the new values above. -
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.Swap ending in an unwrap: partly recorded today
Swap ending in an unwrap: partly recorded today
unwrapLamports, where the wallet receives its SOL, is not.Unwrap with no rows today
Unwrap with no rows today
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.Unwrap, then close: the close amount is split
Unwrap, then close: the close amount is split
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.batch instruction: one row per member
batch instruction: one row per member
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.instruction_index 0 and inner_instruction_index 0. batch_instruction_index and the unique_id suffix tell them apart.Nonce withdrawal
Nonce withdrawal
Token-2022 transfer with a fee
Token-2022 transfer with a fee
instruction_index 3 and inner_instruction_index NULL; only transfer_type and the _fee suffix on unique_id tell them apart.Account created with createAccountAllowPrefund
Account created with createAccountAllowPrefund
createAccountAllowPrefund, 6 Oct 2026, slot 453,896,373 · Solscan ↗Deduplication
Deduplicate onunique_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.
Example: a batch loses 16 of its 17 rows
Example: a batch loses 16 of its 17 rows
instruction_index 0 and inner_instruction_index 0.unique_id values differ only in their suffix:Example: a Token-2022 fee can replace its transfer
Example: a Token-2022 fee can replace its transfer
instruction_index 3, inner_instruction_index NULL:unique_id, both rows stay.Query patterns
Query patterns
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
All instructions that get rows
All instructions that get rows
type is the instruction name; transfer_type is the category you filter on. Rows are written only when value moves.solana.assets.transfers_and_stake only Added:batch rows
batch rows
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 (NULLon all other rows)unique_idending in_b_index-<n>(other rows’unique_idis unchanged)- the wrapper’s
instruction_index,inner_instruction_indexandpseudo_instruction_order
batch_instruction_index, then unique_id.Token-2022 transfer fee rows
Token-2022 transfer fee rows
- The transfer row keeps the gross amount.
- A
transfer_fee_withheldrow records the fee moving into the recipient’s withheld balance. Itsunique_idis the transfer’s with_feeappended. - A
transfer_fee_withdrawalrow records the fee authority collecting it.
- The fee row has the transfer’s
instruction_index,inner_instruction_index,pseudo_instruction_orderandbatch_instruction_index. Tell them apart bytransfer_typeorunique_id. - The fee row has no
to_addressortoken_acc_to. Atransfer_fee_withdrawalrow has nofrom_addressortoken_acc_from. - Recipient’s net amount received: transfer
raw_amountminus the fee row’sraw_amount. - Fee amounts not stated by the instruction (a plain
transferon a fee mint, withdrawals) are derived from balance changes in the transaction, and assume no invisible movement of the same account’s balance.
program_name for p-token
program_name for p-token
- p-token runs at the same program ID as SPL Token, so
program_namestaysspl-token. - Token-2022 rows are also
spl-token. - Use
program_idto 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_limitnow matches the limit the Solana runtime applied.- Includes changes to how the default was calculated since 2022.
set_compute_unit_limitstill 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_feeandbase_feematch 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_feedirectly rather than deriving it fromset_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
- Validators can pay commission to any account.
- The RPC no longer returns a commission rate on rewards.
What changes
- Changed
solana.staking.rewardsis the recommended source:- new
commission_bpsandcommission_percent(NUMBER(38,10)) validator_vote_accountfilled for native staking rewards
- new
solana.staking.validator:last_commission_rateis current again, capped at 100.- Changed
solana.raw.rewardsmirrors the RPC:commissionisNULLfrom 16 Jul 2026- for 16 Jul – 8 Sep 2026, the RPC’s
commissionBpsis in_extra_fields - as of 6 October 2026, 54.8 million rows have a
NULLcommission acrossStaking,DeactivatedStakeandVotingrewards. 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
Votingreward.
What to do
- Read commission from
solana.staking.rewardsinstead ofsolana.raw.rewards.commission. - Don’t treat a
Votingreward’spubkeyas a vote account. From 8 Sep 2026 it can be a collector shared by several validators; use the per-validator commission dataset.
Which epoch's rate applies
Which epoch's rate applies
- 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_bpsis the rate the chain applied.
Reference
_extra_fields on raw tables (7 October 2026)
_extra_fields on raw tables (7 October 2026)
VARIANT column, _extra_fields.- New column on
solana.raw.blocksandsolana.raw.rewards. - New keys in
solana.raw.transactions._extra_fieldsfrom 7 October 2026:txn.version,message.transactionConfig(Transaction V1) andmessage.addressTableLookups.