> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allium.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Solana Network Upgrade Changes (October 2026)

> Changes to Solana transfers, fees and staking commission that align our datasets with the 2026 network upgrades. Transfers and fees change for new data on 12 October 2026, with history backfilled before 28 October; staking commission changes on 28 October 2026.

<Warning>
  **Solana datasets are changing in October 2026:**

  * **12 October:** transfers and fees, for new data
  * **Before 28 October (date TBC):** transfers and fees, history backfill
  * **28 October:** staking commission

  Most changes add rows or update values, and table names stay the same. Check the [table guide](#find-your-table) to see if your queries need to change.
</Warning>

<Info>
  **Changes since the September notice**

  Marked on this page with <Badge color="blue" size="sm">Added</Badge> (not in the September notice) or <Badge color="orange" size="sm">Changed</Badge> (in the notice, but different now).

  * **Backfill timing (clarification):** transfers and fees go live for new data on 12 October. The historical backfill runs after that, before 28 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.
</Info>

## 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)

<Steps>
  <Step title="7 October 2026 — new raw fields (complete)" icon="check">
    <Badge color="blue" size="sm">Added</Badge> New keys in `_extra_fields` on Solana raw tables. No action required. [Details](#extra-fields)
  </Step>

  <Step title="12 October 2026 — transfers and fees, new data">
    Live for new data from 12 October:

    * More value movements in the transfer tables, and a new `batch_instruction_index` column ([Transfers](#transfers))
    * Updated compute limits and Transaction V1 rows in `solana.raw.fees` ([Fees](#fees))
  </Step>

  <Step title="Date TBC, before 28 October 2026 — transfers and fees, history backfill">
    The same changes applied to historical rows. This page will be updated with the date.
  </Step>

  <Step title="28 October 2026 — staking commission">
    <Badge color="orange" size="sm">Changed</Badge> Commission in `solana.staking.rewards` and `solana.staking.validator`. [Staking commission](#staking-commission)
  </Step>
</Steps>

## Do I need to change anything?

<span id="find-your-table" />

If a Solana table isn't listed, **there are no changes**.

<table>
  <thead><tr><th>Table</th><th>Change</th><th>Action needed?</th></tr></thead>

  <tbody>
    <tr><td><code>solana.raw\.token\_transfers</code><br /><code>solana.assets.transfers</code></td><td><ul><li>Rows added</li><li>New column <code>batch\_instruction\_index</code> <Badge color="blue" size="sm">Added</Badge></li><li>New <code>transfer\_type</code> values <Badge color="blue" size="sm">Added</Badge></li><li><code>token\_type</code> on native SOL rows <Badge color="blue" size="sm">Added</Badge></li></ul></td><td><strong>Only if</strong> you:<ul><li>deduplicate by instruction position</li><li>filter on <code>transfer\_type</code> or <code>token\_type</code></li></ul><a href="#transfers">Transfers</a></td></tr>
    <tr><td><code>solana.assets.transfers\_and\_stake</code></td><td>Four new <code>transfer\_type</code> values for stake and vote movements <Badge color="blue" size="sm">Added</Badge></td><td><strong>Only if</strong> you filter on <code>transfer\_type</code><br /><a href="#transfers">Transfers</a></td></tr>
    <tr><td><code>solana.raw\.fees</code></td><td><ul><li><code>effective\_compute\_unit\_limit</code> updated on all history <Badge color="orange" size="sm">Changed</Badge></li><li>Transaction V1 rows added from 15 Sep 2026 <Badge color="blue" size="sm">Added</Badge></li></ul></td><td><strong>Only if</strong> you:<ul><li>use <code>effective\_compute\_unit\_limit</code></li><li>count rows</li></ul><a href="#fees">Fees</a></td></tr>
    <tr><td><code>solana.assets.transfers\_w\_tx\_cols</code><br /><code>solana.dex.trades\_w\_tx\_cols</code><br /><code>solana.dex.aggregator\_trades\_w\_tx\_cols</code><br /><code>solana.decoded.instructions\_w\_tx\_cols</code></td><td><code>priority\_fee</code> includes Transaction V1 <Badge color="blue" size="sm">Added</Badge></td><td>No</td></tr>
    <tr><td><code>solana.raw\.rewards</code></td><td><code>commission</code> is <code>NULL</code> from 16 Jul 2026 <Badge color="orange" size="sm">Changed</Badge></td><td><strong>Yes, if</strong> you read <code>commission</code>: use <code>solana.staking.rewards</code><br /><a href="#staking-commission">Staking commission</a></td></tr>
    <tr><td><code>solana.staking.rewards</code></td><td>New <code>commission\_bps</code> and <code>commission\_percent</code> <Badge color="blue" size="sm">Added</Badge></td><td>No</td></tr>
    <tr><td><code>solana.staking.validator</code></td><td><code>last\_commission\_rate</code> is current again</td><td>No</td></tr>
  </tbody>
</table>

<Tip>
  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.
</Tip>

***

## Transfers

<span id="transfers" />

* **When:** new data from 12 October 2026; history backfilled before 28 October (date TBC)
* **Tables:** `solana.raw.token_transfers`, `solana.assets.transfers`, `solana.assets.transfers_and_stake`

### What changes

* **More value movements get a row.** Existing rows keep their amounts and addresses. New rows include:
  * the new p-token and prefund instructions (about 26 million rows since 13 May 2026)
  * nonce withdrawals <Badge color="blue" size="sm">Added</Badge>
  * Token-2022 fees <Badge color="blue" size="sm">Added</Badge>
  * lookup-table and program closes <Badge color="blue" size="sm">Added</Badge>
* <Badge color="blue" size="sm">Added</Badge> **New column `batch_instruction_index`.** Each member of a p-token `batch` instruction gets its own row, numbered by its position in the batch.
* <Badge color="blue" size="sm">Added</Badge> **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`
* <Badge color="blue" size="sm">Added</Badge> **`token_type`** changes from `SPL-TOKEN` to `SOL` on rows that move native SOL with no token account.

### What to do

1. Deduplicate on `unique_id`. Rows inside one `batch` share `instruction_index`, `inner_instruction_index` and `pseudo_instruction_order`.
2. Review `transfer_type` filters for the new values above.
3. 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.

<AccordionGroup>
  <Accordion title="Swap ending in an unwrap: partly recorded today" icon="arrows-rotate">
    Jupiter swap of 20 USDC for SOL, 3 Oct 2026, slot 452,936,442 · [Solscan ↗](https://solscan.io/tx/121EDchpGQvkpGagoztGseo3hDM4KTFGz1My7KhdAcpigEE96vhEKtLZhTWU4DKSXeYZPLzMye9qGKoSmAqJFQ2C)

    The swap legs are recorded today. The final `unwrapLamports`, where the wallet receives its SOL, is not.

    | | `transfer_type` | `type` | mint | from → to | `raw_amount` |
    | - | - | - | - | - | - |
    | Today | `spl_token_transfer` | `transfer` | USDC | `9PCP…1Ngq` → `GMCJ…HpC` | 20,000,000 |
    | Today | `spl_token_transfer` | `transfer` | wSOL | `GMCJ…HpC` → `9PCP…1Ngq` | 167,518,534 |
    | Today | `spl_token_transfer` | `transfer` | wSOL | `9PCP…1Ngq` → `GP8S…nDf1` (fee) | 201,022 |
    | **Added** | `account_closure_sol_balance_transfer` | `unwrapLamports` | SOL | `9PCP…1Ngq` → `3L4Y…DRn4` | 167,317,512 |

    ```json Added row theme={null}
    {
      "type": "unwrapLamports",
      "transfer_type": "account_closure_sol_balance_transfer",
      "mint": "So11111111111111111111111111111111111111112",
      "from_address": "9PCP7gpY8B4oPrL5zr4bGqYZrXuMyeNkM3veHEtv1Ngq",
      "to_address": "3L4YLrxtz8vNk1ZEvCs1X4b3YJNeQKm7rg6snwiCDRn4",
      "token_acc_from": null,
      "token_acc_to": null,
      "raw_amount": 167317512,
      "batch_instruction_index": null,
      "unique_id": "txn_id-121EDchpGQvkpGagoztGseo3hDM4KTFGz1My7KhdAcpigEE96vhEKtLZhTWU4DKSXeYZPLzMye9qGKoSmAqJFQ2C_i_index-2_ii_index-5"
    }
    ```
  </Accordion>

  <Accordion title="Unwrap with no rows today" icon="arrow-right-from-bracket">
    A wallet unwraps its own wSOL with one `unwrapLamports`, 15 Sep 2026, slot 447,133,168 · [Solscan ↗](https://solscan.io/tx/2BtbL1tqf4XNKEnZw2KcUHfhWuX6LTgFgJLgkWkfMz1sPnWfDJRXCjGPDrZCfHSFS1ywEKY7rWYdiHkf1TpCm17w)

    The transaction has no transfer rows today. 36,338,315 lamports leave the wSOL account and become spendable SOL in the same wallet.

    | | `transfer_type` | `type` | mint | from → to | `raw_amount` |
    | - | - | - | - | - | - |
    | Today | no rows | | | | |
    | **Added** | `account_closure_sol_balance_transfer` | `unwrapLamports` | SOL | `GTd6…qFYt` → `GTd6…qFYt` | 36,338,315 |

    ```json Added row theme={null}
    {
      "type": "unwrapLamports",
      "transfer_type": "account_closure_sol_balance_transfer",
      "mint": "So11111111111111111111111111111111111111112",
      "from_address": "GTd6sNB1epWQeVk6afzcQrZ6RQrjgke9fLiAnDaeqFYt",
      "to_address": "GTd6sNB1epWQeVk6afzcQrZ6RQrjgke9fLiAnDaeqFYt",
      "token_acc_from": null,
      "token_acc_to": null,
      "raw_amount": 36338315,
      "batch_instruction_index": null,
      "unique_id": "txn_id-2BtbL1tqf4XNKEnZw2KcUHfhWuX6LTgFgJLgkWkfMz1sPnWfDJRXCjGPDrZCfHSFS1ywEKY7rWYdiHkf1TpCm17w_i_index-2_ii_index-null"
    }
    ```
  </Accordion>

  <Accordion title="batch instruction: one row per member" icon="layer-group">
    A wallet consolidates token accounts with one `batch` of 17 members, 6 Oct 2026, slot 453,898,051 · [Solscan ↗](https://solscan.io/tx/kNPinchsChynYrhzH6GFqFDuW8zMfs5cphBDcVqgBKQEat2d23dQk9rBxpYeFRBfpNvu8jfdeXyD3piLdWPbZAj)

    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.

    | | `transfer_type` | `type` | `batch_instruction_index` | token accounts | `raw_amount` |
    | - | - | - | - | - | - |
    | Today | 7 rows from other instructions | | `NULL` | | |
    | **Added** | `spl_token_transfer` | `transferChecked` | 0 | `Cg3T…ULmn` → `DcDx…qit9` | 7,963,165,663,461 |
    | **Added** | `account_closure_sol_balance_transfer` | `closeAccount` | 1 | `Cg3T…ULmn` closed | SOL in the account |
    | **Added** | … 3 more `closeAccount` | | 2 – 4 | | |
    | **Added** | `spl_token_transfer` | `transferChecked` | 5 | `9y76…2JUz` → `DcDx…qit9` | 1,150,771,931,789 |
    | **Added** | … 11 more `closeAccount` | | 6 – 16 | | |

    All 17 rows share `instruction_index` 0 and `inner_instruction_index` 0. `batch_instruction_index` and the `unique_id` suffix tell them apart.

    ```json Added row (first member) theme={null}
    {
      "type": "transferChecked",
      "transfer_type": "spl_token_transfer",
      "mint": "o6zqqiw7cKpTXCjjjEjAakp7qShGdS9WRFhtSnxUCvD",
      "from_address": "UWVz4w6PrbNe48yAraebk3hUNhMy4CCJbTET7vhGWmq",
      "to_address": "UWVz4w6PrbNe48yAraebk3hUNhMy4CCJbTET7vhGWmq",
      "token_acc_from": "Cg3TBydezGNuQL9fxg2P5WGWh5pR446TCXTH6EfjULmn",
      "token_acc_to": "DcDxPCneAo4aPWibKjYyXJe8FySpN7W2Lmemff3Cqit9",
      "raw_amount": 7963165663461,
      "batch_instruction_index": 0,
      "unique_id": "txn_id-kNPinchsChynYrhzH6GFqFDuW8zMfs5cphBDcVqgBKQEat2d23dQk9rBxpYeFRBfpNvu8jfdeXyD3piLdWPbZAj_i_index-0_ii_index-0_b_index-0"
    }
    ```
  </Accordion>

  <Accordion title="Nonce withdrawal" icon="key">
    SOL withdrawn from a durable-nonce account, 6 Oct 2026, slot 453,895,708 · [Solscan ↗](https://solscan.io/tx/129Q8VAQThMeoD94Sn8XgZKmt5qF87m6QJ1JisHciN4whY8Y7Z7ev6vVXNBc97b6nfsekavNduFMJ3kzY5gZy8Zn)

    | | `transfer_type` | `type` | mint | from → to | `raw_amount` |
    | - | - | - | - | - | - |
    | Today | no rows | | | | |
    | **Added** | `sol_transfer` | `withdrawFromNonce` | SOL | `HCi4…wP8p` (nonce account) → `6qwo…uWQN` | 1,056,640 |

    ```json Added row theme={null}
    {
      "type": "withdrawFromNonce",
      "transfer_type": "sol_transfer",
      "mint": "So11111111111111111111111111111111111111112",
      "from_address": "HCi4ZHSiE9jkYeoJE7JmV28XPBqCXXK86vsnHLfhwP8p",
      "to_address": "6qwo9vDb4LZc9UJDManiqANbT3Vptk2KZvK34XpTuWQN",
      "raw_amount": 1056640,
      "batch_instruction_index": null,
      "unique_id": "txn_id-129Q8VAQThMeoD94Sn8XgZKmt5qF87m6QJ1JisHciN4whY8Y7Z7ev6vVXNBc97b6nfsekavNduFMJ3kzY5gZy8Zn_i_index-0_ii_index-null"
    }
    ```
  </Accordion>

  <Accordion title="Token-2022 transfer with a fee" icon="percent">
    Transfer of 1,802.59 tokens on a mint with a 3% transfer fee, 6 Oct 2026, slot 453,898,831 · [Solscan ↗](https://solscan.io/tx/1KgG3F3GRhEKB982pNZzaLqkNaE7sUKhFEpsuqL1mP5MSZJ6ifnuXb7k98pYFS552eWhyxHAKHgXh9esTBuCecr)

    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.

    | | `transfer_type` | `type` | token accounts | `raw_amount` |
    | - | - | - | - | - |
    | Today | `spl_token_transfer` | `transferCheckedWithFee` | `5cSK…HeXn` → `Dzo9…AqtZ` | 1,802,590,000,000 |
    | **Added** | `transfer_fee_withheld` | `transferCheckedWithFee` | `Dzo9…AqtZ` → withheld | 54,077,700,000 |

    ```json Added row theme={null}
    {
      "type": "transferCheckedWithFee",
      "transfer_type": "transfer_fee_withheld",
      "mint": "HcRLc9VDgjLeK154xDawfb1dmVJ98DoSqcwTHGqiDeJR",
      "from_address": "FhRiiVdT5Q2NDb6szFyETdyZK9Ui2e84Mi9qPNhV8tTK",
      "to_address": null,
      "token_acc_from": "Dzo9GFasgPu1TNggmZ88CF5e1fscnGvNNfq8Uns8AqtZ",
      "token_acc_to": null,
      "raw_amount": 54077700000,
      "batch_instruction_index": null,
      "unique_id": "txn_id-1KgG3F3GRhEKB982pNZzaLqkNaE7sUKhFEpsuqL1mP5MSZJ6ifnuXb7k98pYFS552eWhyxHAKHgXh9esTBuCecr_i_index-3_ii_index-null_fee"
    }
    ```
  </Accordion>

  <Accordion title="Account created with createAccountAllowPrefund" icon="plus">
    A new account funded with `createAccountAllowPrefund`, 6 Oct 2026, slot 453,896,373 · [Solscan ↗](https://solscan.io/tx/2nsgmGeqBBGE6wsCbwsJub3QHHHYVJpQZZ1aLWCCaMrEU76ue37rL6VZ5dLaR8ghu6MWwMhtmgipKcaRhPq4HxPR)

    | | `transfer_type` | `type` | mint | from → to | `raw_amount` |
    | - | - | - | - | - | - |
    | Today | no row for this instruction | | | | |
    | **Added** | `sol_transfer` | `createAccountAllowPrefund` | SOL | `sRe1…vG41` → `5zMn…4N8W` | 1,112,520 |

    ```json Added row theme={null}
    {
      "type": "createAccountAllowPrefund",
      "transfer_type": "sol_transfer",
      "mint": "So11111111111111111111111111111111111111112",
      "from_address": "sRe1GfB5QaDp7hWrdriN6uakvkKUAaJqPfsiTBTvG41",
      "to_address": "5zMnhoZZkqj9yeyygjSdfm1GaDM854hMRBYd1CU74N8W",
      "raw_amount": 1112520,
      "batch_instruction_index": null,
      "unique_id": "txn_id-2nsgmGeqBBGE6wsCbwsJub3QHHHYVJpQZZ1aLWCCaMrEU76ue37rL6VZ5dLaR8ghu6MWwMhtmgipKcaRhPq4HxPR_i_index-2_ii_index-0"
    }
    ```
  </Accordion>
</AccordionGroup>

### Reference

<AccordionGroup>
  <Accordion title="All instructions that get rows" icon="list">
    `type` is the instruction name; `transfer_type` is the category you filter on. Rows are written only when value moves.

    | Instruction | `type` | `transfer_type` | Rows from |
    | - | - | - | - |
    | `unwrapLamports` (p-token) | `unwrapLamports` | `account_closure_sol_balance_transfer` | 13 May 2026 |
    | `withdrawExcessLamports` (p-token, Token-2022) | `withdrawExcessLamports` | `withdraw_excess_lamports` **(new)** | 13 May 2026 |
    | Members of a `batch` (p-token, Token-2022) | the member's own type | same as the standalone instruction | 13 May 2026 |
    | `createAccountAllowPrefund` (System) | `createAccountAllowPrefund` | `sol_transfer` | 1 Jun 2026 |
    | `withdrawFromNonce` (System) <Badge color="blue" size="sm">Added</Badge> | `withdrawFromNonce` | `sol_transfer` | all history |
    | `permissionedBurn` (Token-2022) <Badge color="blue" size="sm">Added</Badge> | `permissionedBurn` | `spl_token_transfer` | 31 Aug 2026 |
    | Confidential deposit / withdraw (Token-2022) <Badge color="blue" size="sm">Added</Badge> | `depositConfidentialTransfer`, `withdrawConfidentialTransfer` | `spl_token_transfer` | Mar 2025 |
    | Address lookup table close <Badge color="blue" size="sm">Added</Badge> | `closeLookupTable` | `account_closure_sol_balance_transfer` | all history |
    | Program / buffer close, upgrade refund <Badge color="blue" size="sm">Added</Badge> | `close`, `upgrade` | `account_closure_sol_balance_transfer` | all history |
    | Transfer fee on Token-2022 fee mints <Badge color="blue" size="sm">Added</Badge> | the transfer's type | `transfer_fee_withheld` **(new)** | all history |
    | `withdrawWithheldTokensFromMint` / `FromAccounts` <Badge color="blue" size="sm">Added</Badge> | the instruction name | `transfer_fee_withdrawal` **(new)** | all history |

    In `solana.assets.transfers_and_stake` only <Badge color="blue" size="sm">Added</Badge>:

    | Instruction | `transfer_type` (new) |
    | - | - |
    | Stake `moveLamports` / `moveStake` | `stake_move` |
    | Stake `split` | `stake_split` |
    | Stake `merge` | `stake_merge` |
    | Vote `withdraw` | `vote_withdrawal` |
  </Accordion>

  <Accordion title="batch rows and deduplication" icon="layer-group">
    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`

    ```sql theme={null}
    -- Before: keeps one member of each batch
    qualify row_number() over (partition by txn_id, instruction_index, inner_instruction_index order by ...) = 1

    -- After
    qualify row_number() over (partition by txn_id, unique_id order by ...) = 1
    -- order within a transaction:
    order by pseudo_instruction_order, coalesce(batch_instruction_index, -1)
    ```
  </Accordion>

  <Accordion title="Token-2022 transfer fee rows" icon="percent">
    <Badge color="blue" size="sm">Added</Badge>

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

    | `transfer_type` | from → to | `raw_amount` |
    | - | - | - |
    | `spl_token_transfer` | sender → recipient | 1,000 |
    | `transfer_fee_withheld` | recipient → withheld | 50 |
  </Accordion>

  <Accordion title="program_name for p-token" icon="tag">
    * 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.
  </Accordion>
</AccordionGroup>

***

## Fees

<span id="fees" />

* **When:** new data from 12 October 2026; history backfilled before 28 October (date TBC)
* **Table:** `solana.raw.fees`, all history

### What changes

* <Badge color="orange" size="sm">Changed</Badge> **`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.
* <Badge color="blue" size="sm">Added</Badge> **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.
* <Badge color="blue" size="sm">Added</Badge> **`priority_fee` and `base_fee`** match the fees paid on chain.

### What to do

* If you analyse compute headroom or utilisation, re-run it after the history backfill.
* 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

<span id="staking-commission" />

* **When:** 28 October 2026
* **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

* <Badge color="orange" size="sm">Changed</Badge> **`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.
* <Badge color="orange" size="sm">Changed</Badge> **`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`
* <Badge color="blue" size="sm">Added</Badge> **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.

<Accordion title="Which epoch's rate applies" icon="clock">
  * 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.
</Accordion>

***

## Reference

<span id="extra-fields" />

<AccordionGroup>
  <Accordion title="_extra_fields on raw tables (7 October 2026)" icon="code">
    <Badge color="blue" size="sm">Added</Badge>

    Solana 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`.

    ```sql theme={null}
    select txn_id,
           _extra_fields:"message.transactionConfig":computeUnitLimit::number as compute_unit_limit,
           _extra_fields:"message.transactionConfig":priorityFee::number     as priority_fee
    from solana.raw.transactions
    where block_timestamp >= '2026-10-08'
      and _extra_fields:"txn.version"::number = 1
    limit 10;
    ```
  </Accordion>
</AccordionGroup>

## Support

If these changes affect your workflows or you need help, reach out to [support@allium.so](mailto:support@allium.so) or your account team.
