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

# validator.balances_latest migration

> beacon.validator.balances_latest → beacon.raw.balances_latest

[← Back to schema changes overview](/historical-data/supported-blockchains/evm/beacon/schema-changes)

Latest snapshot of each validator’s balances (one row per validator).

* **Effective date:** April 7, 2026
* **End of life:** May 23, 2026
* **Replacement:** `beacon.raw.balances_latest`
* **Last published:** April 7, 2026

### Schema comparison

| Column Name | Old Schema (`beacon.validator.balances_latest`) | New Schema (`beacon.raw.balances_latest`) | Change Type | Notes |
| - | - | - | - | - |
| `SLOT_NUMBER` | Integer | Integer | No change | Slot number remains the same |
| `SLOT_TIMESTAMP` | Timestamp | Timestamp | No change | Timestamp format unchanged |
| `VALIDATOR_INDEX` | Integer | Integer | No change | Validator index unchanged |
| `RAW_BALANCE` | Integer (Wei) | Integer (Wei) | **Reordered** | Now appears BEFORE `BALANCE` column |
| `BALANCE` ⚠️ | Integer (Wei) - stored as `32787459477` | Float (ETH) - stored as `32.78744189` | **BREAKING** | Changed from Wei integer to ETH float |
| `EFFECTIVE_BALANCE` ⚠️ | Integer (Wei) - stored as `32000000000` | Float (ETH) - stored as `32` | **BREAKING** | Changed from Wei integer to ETH float |
| `RAW_EFFECTIVE_BALANCE` | Integer (Wei) | Integer (Wei) | No change | Raw value unchanged |
| `STATUS` | String | String | No change | Status values unchanged |
| `PUBKEY` | String (hex) | String (hex) | No change | Public key format unchanged |
| `WITHDRAWAL_CREDENTIALS` | String (hex) | String (hex) | No change | Credentials unchanged |
| `WITHDRAWAL_PREFIX` | ❌ Not present | String (hex) - `0x02` | **NEW** | Extracted from withdrawal credentials |
| `WITHDRAWAL_ADDRESS` | ❌ Not present | String (hex) - `0x0d369bb...` | **NEW** | Extracted withdrawal address |
| `SLASHED` | Boolean | Boolean | No change | Slashing status unchanged |
| `ACTIVATION_ELIGIBILITY_EPOCH` | Integer | Integer | No change | Epoch values unchanged |
| `ACTIVATION_EPOCH` | Integer | Integer | No change | Epoch values unchanged |
| `EXIT_EPOCH` | Integer | Integer | No change | Epoch values unchanged |
| `WITHDRAWABLE_EPOCH` | Integer | Integer | No change | Epoch values unchanged |
| `EXECUTION_OPTIMISTIC` | Boolean (`FALSE`) | String (empty) or Boolean | **BREAKING** | Type changed, may be empty string |
| `FINALIZED` | Boolean (`FALSE`) | Boolean (`TRUE`) | **BREAKING** | Type may differ, default changed |
| `UNIQUE_ID` | ❌ Not present | String - `validator_index-0` | **NEW** | New unique identifier field |
| `_CREATED_AT` | Timestamp | Timestamp | No change | Creation timestamp unchanged |
| `_UPDATED_AT` | ❌ Not present | Timestamp | **NEW** | New update tracking field |
| `INDEX` | Integer - `0` | ❌ Removed | **REMOVED** | Replaced by `UNIQUE_ID` |

### Breaking changes summary

<Warning>
  **Critical breaking changes** — address these in your queries:

  1. **Column order changed**: `RAW_BALANCE` now appears before `BALANCE` (affects `SELECT *` queries)
  2. **Balance data types changed**:
     * `BALANCE`: **Integer (Wei)** → **Float (ETH)**
       * Old: `32787459477` (Wei)
       * New: `32.78744189` (ETH)
     * `EFFECTIVE_BALANCE`: **Integer (Wei)** → **Float (ETH)**
       * Old: `32000000000` (Wei)
       * New: `32` (ETH)
  3. **New columns**: `WITHDRAWAL_PREFIX`, `WITHDRAWAL_ADDRESS`, `UNIQUE_ID`, `_UPDATED_AT`
  4. **Removed column**: `INDEX` (replaced by `UNIQUE_ID`)
  5. **Type changes**: `EXECUTION_OPTIMISTIC` may be empty string; `FINALIZED` behavior may differ
</Warning>
