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

# Immutable X Deprecation

Immutable X was Immutable's first rollup, which was merged into [Immutable Chain](https://docs.immutable.com/docs/products/immutable-chain/overview.md) in early 2026.

Built in partnership with [StarkWare](https://www.starkware.co/) as a customised deployment of [StarkEx](https://www.starkware.co/starkex), Immutable X processed hundreds of millions of transactions and billions of dollars in game asset trading volume.

# Merge with Immutable Chain

The Immutable X [bridge](https://docs.immutable.com/docs/products/immutable-chain/bridging.md) was merged with the primary bridge for Immutable Chain through a non-custodial bridge contract upgrade.

If you had ETH, IMX or any other ERC-20 on Immutable X, your assets were migrated directly to Immutable Chain, and are available in the same wallet you used on Immutable X (e.g. MetaMask, [Passport](https://docs.immutable.com/docs/products/passport/overview.md)). Immutable had no access to your private keys or funds during this process.

If you had NFTs on Immutable X, their status depends on the specific game and collection. Most assets were migrated automatically,
but many games and projects chose to implement custom logic for migrating their assets. In these cases, please consult with the project directly.

> [card] [Migration Contracts](https://github.com/immutable/imx-migration-contracts)
>
> Bridge upgrade smart contracts

> [card] [Migration Audit](https://github.com/immutable/imx-migration-contracts/blob/main/audit/20260209-nethermind-audit.pdf)
>
> Nethermind audit report

# Historical Data

The full history of Immutable X is preserved as a public BigQuery dataset. Anyone signed in to a Google account can query it, and queries are billed to your own Google Cloud project.

Dataset: `ext-im-immutable-x.immutable_x_v1`

| Table | Contents |
| - | - |
| `transactions` | Every mint, transfer, deposit, withdrawal and trade, one row each |
| `trade_fees` | Every fee paid on a trade, who paid it and who it was for |
| `filled_orders` | Every order that was filled, and when it was placed |
| `nfts` | Every NFT, with its metadata and where it ended up |
| `tokens` | ETH and every ERC-20 that moved on Immutable X, with its decimals |
| `collections` | Every collection that has NFTs |
| `final_holdings` | What every account held when Immutable X shut down, from the final state committed to Ethereum |

Every table and column is described in BigQuery itself.

## Ready-made tables

These combine the tables above to answer the most common questions:

| Table | What it shows |
| - | - |
| `asset_movements` | Every time an asset changed hands, whatever the transaction type, as one row with a sender, a receiver, the asset and the amount. A trade appears as two movements, one each way, plus one per fee. The 2026 move of token balances to Immutable zkEVM appears as `zkevm_migration`. |
| `wallet_history` | The same movements once for each side, so filtering on `address` gives a wallet's full history, with `direction` (`in` or `out`) and the other party. |
| `nft_history` | Every movement of every NFT, starting from its mint (a view). Filter on `token_address` and `token_id` to follow one NFT. |
| `sales` | Every trade of an NFT for a payment, as a sale: seller, buyer, NFT, price, the fees each side paid, what the buyer paid in total and what the seller received. |

Tables are clustered on the columns people look things up by: `wallet_history` and `final_holdings` by address, `nfts`, `nft_history` and `asset_movements` by `token_address` and `token_id`, and `sales` by collection and token id. Filtering on those columns keeps a lookup of one wallet or NFT well under 1 GB, against BigQuery's free allowance of 1 TB a month.

## Reading the data

* Amounts are exact whole numbers in each token's smallest unit (wei for ETH). Divide by `10^decimals` from `tokens`; `asset_movements`, `wallet_history` and `sales` also show amounts in whole tokens.
* ETH has no contract address, so it appears as `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`.
* Addresses are stored in lowercase, as most blockchain datasets do. Wrap yours in `LOWER()` so an address with capital letters still matches.
* Order a history by `txn_id`: it is the order Immutable X processed transactions in. `txn_time` can be out of order by hours, and several transactions can share one.
* Email addresses that creators typed into NFT names, descriptions and metadata are replaced with `[email removed]`.
* `transactions.migrated_to_zkevm` marks the withdrawals that were the 2026 migration of token balances to Immutable zkEVM, rather than withdrawals to Ethereum.
* `transactions.batch_sequence_number` is the StarkEx batch a transaction was committed to Ethereum in.
* A small number of trades have no transaction id; `maker_order_id` and `taker_order_id` identify them, in `transactions` and in `trade_fees`.

To see everything a wallet did:

```sql theme={null}
SELECT *
FROM `ext-im-immutable-x.immutable_x_v1.wallet_history`
WHERE address = LOWER('YOUR_WALLET_ADDRESS')
ORDER BY txn_id
```

To follow one NFT:

```sql theme={null}
SELECT *
FROM `ext-im-immutable-x.immutable_x_v1.nft_history`
WHERE token_address = LOWER('COLLECTION_ADDRESS')
  AND token_id = 'TOKEN_ID'
ORDER BY txn_id
```

To see what a wallet held when Immutable X shut down:

```sql theme={null}
SELECT *
FROM `ext-im-immutable-x.immutable_x_v1.final_holdings`
WHERE address = LOWER('YOUR_WALLET_ADDRESS')
```

## NFTs and Immutable zkEVM

Many games migrated their NFT collections to Immutable zkEVM; some chose not to. This dataset records what happened on Immutable X itself, so it doesn't show whether an NFT also exists on Immutable zkEVM. For that, check with the game.

`nfts.final_location` shows where each NFT ended up on Immutable X:

| Value | Meaning |
| - | - |
| `immutable_x` | Still on Immutable X at shutdown |
| `ethereum` | Withdrawn to Ethereum |
| `burned` | Sent to the zero address, which some games did as part of migrating to Immutable zkEVM |
| `withdrawal_incomplete` | A withdrawal was started but never finished |

NFTs left on Immutable X at shutdown can no longer be withdrawn.

## StarkEx state

Immutable X committed its state to Ethereum in batches. These tables hold that record, from the StarkEx Data Availability Committee, for anyone who wants to check the data against Ethereum:

| Table | Contents |
| - | - |
| `batches` | Every batch committed to Ethereum: its Ethereum block and transaction, and the vault and order tree roots it committed |
| `vault_updates` | Every vault each batch changed, with its owner, asset and balance after the batch |
| `order_fills` | Every order each batch changed, with how much of it had been filled |
| `assets` | StarkEx asset ids and the tokens and NFTs they stand for |
| `accounts` | Immutable X account keys and the Ethereum addresses they belong to |

Balances in `vault_updates` are in each asset's quantum; multiply by `assets.quantum` for the token's smallest unit.

> [card] [Open in BigQuery](https://console.cloud.google.com/bigquery?ws=!1m4!1m3!3m2!1sext-im-immutable-x!2simmutable_x_v1)
>
> Browse the dataset in the Google Cloud console

# Deprecation Process and Status

All Immutable X functionality is now deprecated and will be removed in future.

| Interface | Status |
| - | - |
| Sequencer RPC (Writes) | No longer processing new transactions |
| Sequencer RPC (Reads) | Deprecated, will be removed in future |
| [Explorer](https://immutascan.io) | Deprecated, will be removed on 1 December 2026. Use the [historical dataset](#historical-data) |
| [Marketplace](https://marketplace.x.immutable.com) | Removed |
| `@imtbl/sdk` (Immutable X code and packages) | Deprecated |
| `@imtbl/core-sdk` | Deprecated, please migrate to `@imtbl/sdk` |
| `@imtbl/imx-sdk-js` | Deprecated, please migrate to `@imtbl/sdk` |

## Next Steps

> [card] [Chain Overview](https://docs.immutable.com/docs/products/immutable-chain/overview.md)
>
> Learn about Immutable Chain

> [card] [Bridging](https://docs.immutable.com/docs/products/immutable-chain/bridging.md)
>
> Understand bridge migration

> [card] [Passport](https://docs.immutable.com/docs/products/passport/overview.md)
>
> Set up Passport wallet integration

> [card] [Contracts](https://docs.immutable.com/docs/products/asset-contracts/overview.md)
>
> Deploy NFT contracts on Immutable Chain


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.