> ## Documentation Index
> Fetch the complete documentation index at: https://seilabs-docs-evm-cookbook.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# SIP-03 Migration Guide

> Practical steps and resources for users and exchanges migrating during SIP-03, including asset transfer, USDC, and exchange migration guidance.

<Danger>
  **IBC is now disabled on Sei in both directions. IBC assets can no longer be bridged off Sei.**

  [Proposal #121](https://seistream.app/proposals/121) passed on July 31, 2026 and set the `ibc` module's `OutboundEnabled` parameter to `false`. Inbound IBC was already disabled by [Proposal #116](https://seistream.app/proposals/116) and [Proposal #120](https://seistream.app/proposals/120). Both directions are now closed.

  If you hold any IBC asset on Sei, **there is no longer a route to redeem or bridge it back to its origin chain**. This includes [USDC.n](https://seiscan.io/address/0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1) (USDC via Noble), [USDT.kava](https://seiscan.io/address/0xb75d0b03c06a926e488e2659df1a861f860bd3d1) (Kava USDT), ATOM, and WBTC. The bridge-out and IBC-based migration routes that were available before no longer work.

  These balances still exist on Sei and can still be transferred between Sei addresses. However, they can no longer be redeemed for the underlying asset. For the current state, see [IBC is disabled](#ibc-is-disabled). For the status of each asset, see [Affected IBC assets](#affected-ibc-assets).
</Danger>

This page lists the most important practical actions for the SIP-03 migration, with links to the official resources.

<Info>
  For the full proposal text, see:

  * The [official SIP-03](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md)

  * Governance [Proposal #99](https://seistream.app/proposals/99): started the migration.

  * Governance [Proposal #115](https://seistream.app/proposals/115): disabled CosmWasm code uploads and contract instantiations. No new CosmWasm contracts can be deployed on Sei.

  * Governance [Proposal #116](https://seistream.app/proposals/116): disabled inbound IBC transfers by setting the `ibc` module's `InboundEnabled` parameter to `false`. IBC assets bridged from Cosmos chains can no longer arrive on Sei.

  * Governance [Proposal #120](https://seistream.app/proposals/120): set `InboundEnabled` to `false` again, as a follow-up to Proposal #116. Outbound IBC was unchanged at the time.

  * Governance [Proposal #121](https://seistream.app/proposals/121): disabled outbound IBC transfers by setting the `ibc` module's `OutboundEnabled` parameter to `false`. IBC assets can no longer leave Sei. It passed on July 31, 2026.
</Info>

## What most users need to do

* If you use Keplr or Leap (Cosmos-style wallets), move any assets on the native address (sei1...) to an EVM-compatible address (0x...). Use the Asset Transfer tool linked below.
* If you already use Compass or another EVM wallet, you do not need to do anything. Continue as normal.

## IBC is disabled

IBC (Inter-Blockchain Communication) is the Cosmos protocol that moved tokens between Sei and other Cosmos-SDK chains such as Noble, Kava, and Cosmos Hub. Assets that arrived this way exist on Sei as vouchers. A voucher is an `ibc/...` denom in the bank module, backed by the real asset escrowed on the origin chain. The only way to redeem a voucher is to send it back over the same channel that it came in on.

Both directions are now closed. Two parameters on Sei's `ibc` module control this, and both are `false`:

| Parameter | Gates | Current value |
| :- | :- | :- |
| `InboundEnabled` | IBC transfers arriving on Sei | `false` |
| `OutboundEnabled` | IBC transfers leaving Sei | `false` |

Each parameter was set by a governance parameter change, which takes effect when the proposal executes. There is no separate upgrade or activation step. Inbound IBC was closed first, by Proposals #116 and #120. Outbound IBC closed on July 31, 2026, with Proposal #121.

| Proposal | Change | Effect |
| :- | :- | :- |
| [#115](https://seistream.app/proposals/115) | `wasm.uploadAccess` and `wasm.instantiateAccess` → `Nobody` | No new CosmWasm contracts can be deployed |
| [#116](https://seistream.app/proposals/116) | `ibc.InboundEnabled` → `false` | IBC assets can no longer arrive on Sei |
| [#120](https://seistream.app/proposals/120) | `ibc.InboundEnabled` → `false` | Re-applied the inbound block |
| [#121](https://seistream.app/proposals/121) | `ibc.OutboundEnabled` → `false` | IBC assets can no longer leave Sei |

### What this means in practice

**No longer possible:**

* Bridging any asset onto Sei over IBC.
* Bridging any asset off Sei over IBC, including sending a voucher back to its origin chain to redeem the underlying asset.
* IBC-based migration routes, such as sending USDC.n back to Noble to convert it to native USDC, or routing ATOM and WBTC out through Skip:Go.
* The **IBC precompile** at `0x0000000000000000000000000000000000001009`. Its transfer methods cannot succeed, and there is no replacement. Do not build against it.

**Unaffected:**

* Native SEI transfers, staking, delegations, and rewards.
* The Sei EVM, ERC-20 tokens, and native and CW pointer contracts.
* Existing `ibc/...` balances in the bank module. They remain queryable and transferable between Sei addresses, including through their ERC-20 pointers. Only the redemption path off Sei is gone.
* Already-deployed CosmWasm contracts, which can still be executed and queried. [Proposal #115](https://seistream.app/proposals/115) blocked only uploads and instantiations. It is a separate change from the IBC parameters.

<Note>
  If you have an IBC transfer that was submitted but never completed, contact [Sei Tech Chat](https://t.me/+KZdhZ1eE-G01NmZk) or [Discord](https://discord.com/invite/sei). Both directions are closed, so do not assume that a pending transfer will settle or refund on its own.
</Note>

## Affected IBC assets

The assets below reached Sei over a bridge that is now closed. None of them has a route back to its origin chain.

| Asset | Token contract | Arrived via | Route off Sei |
| :- | :- | :- | :- |
| **USDC.n (USDC via Noble)** | [seiscan](https://seiscan.io/address/0x3894085ef7ff0f0aedf52e2a2704928d1ec074f1) [seistream](https://seistream.app/address/0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1) | IBC (Noble) | None (outbound IBC disabled) |
| **USDT.kava (USDT via Kava)** | [seiscan](https://seiscan.io/token/0xb75d0b03c06a926e488e2659df1a861f860bd3d1) [seistream](https://seistream.app/address/0xB75D0B03c06A926e488e2659DF1A861F860bD3d1) | IBC (Kava) | None (outbound IBC disabled) |
| **ATOM** | [seistream](https://seistream.app/address/0xaF5fd7Df92B103B40b9Ed8D0d002696a5436E4D8) | IBC (Cosmos Hub) | None (outbound IBC disabled) |
| **WBTC** | [seistream](https://seistream.app/address/0xe369ddC65Ec947FCB10262AA0E08C3fB9823001a) | IBC | None (outbound IBC disabled) |
| **USDCso (Wormhole, Solana)** | [seistream](https://seistream.app/address/0x8eEDF32a4FC6fB78DDF231Cd3CcF6b7B8dF9D99d) | Wormhole | None (Portal Bridge withdrawn) |
| **Wormhole-bridged WETH** | [mintscan](https://www.mintscan.io/sei/assets/factory%2Fsei189adguawugk3e55zn63z8r9ll29xrjwca636ra7v7gxuzn98sxyqwzt47l%2F4tLQqCLaoKKfNFuPjA9o39YbKUwhR1F8N29Tz3hEbfP2) | Wormhole | None (Portal Bridge withdrawn) |
| **USDCet (Wormhole, Ethereum)** | [seistream](https://seistream.app/address/0xa272ee55434655970f7226c95eF0068a22994B84) | Wormhole | None (Portal Bridge withdrawn) |
| **USDCop (Wormhole, Optimism)** | [seistream](https://seistream.app/address/0xC489C59b1131D379Cbc3A42AD154bBD6f1050F7c) | Wormhole | None (Portal Bridge withdrawn) |
| **USDTbs (Wormhole, BSC Chain)** | [seistream](https://seistream.app/address/0x0bf5F17f0a71cf2bC014DD875e35E4B02311b8F1) | Wormhole | None (Portal Bridge withdrawn) |

The Wormhole-bridged assets are not IBC vouchers and were not affected by Proposals #116, #120, or #121. They are listed here because Portal Bridge (legacy) is no longer available as a route off Sei.

### What you can still do

* **Transfer within Sei.** These balances move normally between Sei addresses and through their ERC-20 pointer contracts.
* **Swap on a Sei DEX.** Swaps do not use IBC and still execute. These tokens can no longer be redeemed for the underlying asset, so the liquidity available for them is limited and may decline further. Check the quote before you trade.
* **Contact support.** For anything else, including incomplete transfers and assets not listed above, ask for help in [Sei Tech Chat](https://t.me/+KZdhZ1eE-G01NmZk) or [Discord](https://discord.com/invite/sei).

The mention of third-party platforms does not constitute an endorsement. You should do your own research before you use any third-party service.

## Key tools and resources

### 1) Asset Transfer (native ↔ EVM)

* Use the official Sei Dashboard to move assets between native addresses (Keplr, Leap, Fin) and EVM addresses (MetaMask, Compass, and others). Go to [Sei Dashboard Transfer](https://dashboard.sei.io/evm-upgrade) or to the **Bridge** tab at [Sei Dashboard Bridge](https://dashboard.sei.io/bridge).

When to use this:

* You used Keplr or Leap before, and you want your assets to be available in an EVM wallet from now on.
* You need to access tokens in dApps that now expect an EVM (0x) address.

### 2) USDC on Sei

Sei now supports native USDC and Circle's CCTP V2. USDC from Noble (USDC.n) is deprecated.

* QuickStart: [USDC on Sei](/evm/usdc-on-sei)
* Background: [USDC & CCTP v2 announcement](https://www.circle.com/blog/native-usdc-and-cctp-v2-are-coming-to-sei)

#### If you still hold USDC.n

<Warning>
  The route that sent USDC.n back to Noble to be reissued as native USDC required outbound IBC. As of [Proposal #121](https://seistream.app/proposals/121), this route **no longer works**. USDC.n can no longer be redeemed through Noble or through Circle's CCTP.
</Warning>

The only remaining option on Sei is an on-chain swap, which does not use IBC:

* [DragonSwap](https://dragonswap.app/) or [Symphony](https://symph.ag/?tokenIn=0x3894085ef7ff0f0aedf52e2a2704928d1ec074f1\&tokenOut=0xe15fc38f6d8c56af07bbcbe3baf5708a2bf42392). Slippage depends on whatever liquidity remains for USDC.n.

**For DeFi suppliers of USDC.n (Yei, Takara Lend, and other protocols):**

* If you have not already done so, wind down and withdraw your positions. Supplied USDC.n cannot be redeemed off Sei.

If you hold a balance that you cannot resolve this way, contact [Sei Tech Chat](https://t.me/+KZdhZ1eE-G01NmZk) or [Discord](https://discord.com/invite/sei).

### 3) Address association (Seistream)

[Seistream's SIP-03 migration page](https://seistream.app/migrate-sip03) links your EVM (`0x...`) and Cosmos (`sei1...`) addresses for the **native SEI token** in three guided steps. It is a community-built tool that simplifies the standard association flow.

Address association is the one-time, on-chain step that links your `0x...` and `sei1...` addresses, so that a single key controls both. You must complete it **before** the SIP-03 upgrade. After the upgrade, Cosmos (`sei1...`) interfaces stop working, and addresses can no longer be associated. To learn how association works, see [Account Linking](/learn/accounts).

What the tool does:

1. **Connect wallet**: Connect any EVM wallet with an injected provider (MetaMask, Keplr, Rabby, Compass, Tangem, Trust Wallet, OKX, and most others).
2. **Gas + association**: Cover the small amount of SEI needed for gas. Seistream has a faucet for Sei Mainnet to help with this. Then submit the transaction that associates your `0x...` and `sei1...` addresses on-chain. Any outgoing EVM transaction registers the link automatically.
3. **Transfer from Cosmos**: Send your existing native SEI from the old Cosmos wallet to the linked `sei1...` address. The SEI then becomes spendable from your EVM wallet.

This tool is a simpler alternative to the manual association flow in [Migrating a hardware or mnemonic-only wallet](#migrating-a-hardware-or-mnemonic-only-wallet).

<Warning>
  Seistream handles association for the **native SEI token only**. It does nothing for USDC.n, USDT.kava, ATOM, WBTC, or other IBC-bridged assets. For their status, see [Affected IBC assets](#affected-ibc-assets). Seistream is a third-party tool, and its inclusion here is not an endorsement. You should do your own research before you connect a wallet.
</Warning>

## Migrating a hardware or mnemonic-only wallet

If your wallet can export a raw private key, the simplest path is to import that key into an EVM wallet. A private key does not depend on the coin type. It gives the same `0x...` and `sei1...` addresses in any wallet, so you do not need to move any funds.

If your wallet cannot export a private key, you can still migrate: move your funds to a new EVM-native account, as described below.

### When private-key export isn't an option

A raw private key always works, but two common setups do not give you one:

* **Mnemonic-only wallets.** Some wallets back up only a recovery phrase, not a raw private key. Sei's Cosmos (`sei1...`) accounts use coin type 118 (`m/44'/118'/0'/0/0`). If you import the same phrase into an EVM wallet such as MetaMask, the wallet derives it on coin type 60 (`m/44'/60'/0'/0/0`). The result is a different account with no access to the original funds. The underlying private key would import correctly if the wallet exposed it, but a mnemonic-only wallet does not.
* **Hardware wallets (such as Ledger).** A Ledger does not export the private key or seed under any circumstances. It only lets you switch between the Cosmos app (coin type 118) and the Ethereum app (coin type 60). These apps control separate accounts with different addresses. The Cosmos-app account cannot be used from an EVM wallet.

For background, see [HD paths and coin types](/learn/accounts#hd-paths-and-coin-types).

### Migration steps

This procedure works because every account has exactly one EVM (`0x...`) address and one Cosmos (`sei1...`) address, both derived from the same key. Funds sent to the new account's `sei1...` address are therefore spendable from the EVM wallet that holds its `0x...` address.

<Tip>
  If you prefer a guided flow, use [Seistream's SIP-03 migration tool](https://seistream.app/migrate-sip03). It walks through the same steps: connect an EVM wallet, cover gas, associate addresses, and then transfer native SEI from the Cosmos side. See [Address association (Seistream)](#3-address-association-seistream). The tool covers native SEI only. The manual steps below work for any wallet that you control.
</Tip>

<Steps>
  <Step title="Create a new account in an EVM wallet you control">
    Use MetaMask, Compass, Rabby, or a Ledger with its Ethereum app. This creates a new `0x...` address.
  </Step>

  <Step title="Fund the new address with a small amount of SEI">
    Approximately 0.1 SEI is enough. Association is an on-chain transaction, so the account needs SEI for gas. Fund the address from an exchange withdrawal or from any EVM wallet that already holds SEI.
  </Step>

  <Step title="Associate the new account on the Sei Dashboard">
    Connect the new EVM account to the [Sei Dashboard](https://dashboard.sei.io). Then complete address association. This records the public key on-chain and links the `0x...` address to its `sei1...` counterpart. The dashboard then shows the linked `sei1...` address, which is the destination for the next step. For details on association, see [Account Linking](/learn/accounts).
  </Step>

  <Step title="Send a test transfer of 1 SEI">
    From the original Cosmos wallet (Keplr, Leap, the Ledger Cosmos app, and so on), send 1 SEI to the `sei1...` address from step 3. This is a standard Cosmos-to-Cosmos transfer.
  </Step>

  <Step title="Confirm receipt">
    Because the addresses are associated, the test amount should appear under the new account on the dashboard. It should also appear as a spendable balance in the EVM wallet.
  </Step>

  <Step title="Transfer the remaining balance">
    After you confirm the test transfer, send the rest of the funds the same way. The assets are then held by an account whose key you control from an EVM wallet.
  </Step>
</Steps>

<Warning>
  Send the 1 SEI test transfer and confirm receipt before you move the full balance. Verify that the destination matches the exact `sei1...` address shown after association in step 3.
</Warning>

### Notes and limitations

* **Complete this before the SIP-03 upgrade.** After the Cosmos interface is deprecated, addresses can no longer be associated, and `sei1...` transfers can no longer be broadcast. You must complete steps 3 and 4 before then.
* **This procedure moves liquid balances only.** Staked SEI must be unbonded first, and the unbonding period is 21 days. See the staking question in the [FAQ](#faq).
* **Associate before sending.** If you associate the new account before you transfer, the funds arrive at the correct, immediately spendable address instead of a temporary holding address.
* **Optional verification.** To confirm the paired `sei1...` address independently, call `getSeiAddr(0x...)` on the `addr` precompile. See [Query linked addresses](/learn/accounts#query-linked-addresses).

## FAQ

### I am a Keplr / Leap wallet user; do I need to do anything?

Yes. Use the Asset Transfer tool to make your assets available in an EVM wallet. See the Asset Transfer section above.

### I use Compass wallet; do I need to do anything?

No, you do not need to do anything. Compass makes sure that your assets are available through EVM. Continue to connect to Sei as you would to any EVM chain.

### My wallet only shows a recovery phrase, or I use a Ledger — how do I migrate?

If you can export a raw private key, import it into an EVM wallet. This always works, because the key gives the same addresses in any wallet.

Some setups cannot export a private key, such as a wallet that exports only a recovery phrase, or a Ledger that only switches between apps. In that case, follow these steps:

1. Create a new account in an EVM wallet that you control.
2. Fund the new account with a small amount of SEI.
3. Associate the new account to reveal its paired `sei1...` address.
4. Send a 1 SEI test transfer to that address. Then send your existing Cosmos funds to the same address.

For the full procedure, see [Migrating a hardware or mnemonic-only wallet](#migrating-a-hardware-or-mnemonic-only-wallet).

### I stake SEI — do I need to do anything?

It depends on whether your Cosmos (`sei1...`) and EVM (`0x...`) addresses are **associated (linked)**. The Cosmos staking module handles staking on Sei. After SIP-03, Cosmos-native transaction interfaces will no longer be available. However, the underlying staking state is preserved, and associated addresses can access it through EVM.

**If your addresses are associated:** You do not need to do anything. After the upgrade, your existing delegations, rewards, and unbonding state will be fully accessible through EVM. You can continue to manage your stake from an EVM wallet with the [Staking Precompile](/evm/precompiles/staking) or the [Sei Dashboard](https://dashboard.sei.io/stake).

**If your addresses are NOT associated:** You must act before the upgrade. After SIP-03, you will not be able to associate addresses or manage delegations through a Cosmos wallet.

Your options:

1. **Associate your addresses** before the upgrade. To do this, connect your Cosmos wallet on the [Sei Dashboard](https://dashboard.sei.io), or use any of the methods described in [Accounts](/learn/accounts). After association, your staking state is accessible through EVM, and you do not need to unbond.
2. **Unbond your stake**, and then migrate the assets to an EVM wallet with the [Asset Transfer tool](https://dashboard.sei.io/evm-upgrade). **The unbonding period is 21 days.** For your tokens to be liquid in time, you must start this process at least 21 days before the Cosmos shutdown.

To check whether your addresses are linked, see [Query linked addresses](/learn/accounts#query-linked-addresses).

<Warning>
  **Do not confuse address linking with staking migration.** The `sei1...` and `0x...` addresses point to the same underlying account only after explicit association. Before that, the chain cannot recognize the link. Without association, your staked SEI will not be accessible through EVM after the upgrade. You will also have no way to unbond or claim rewards.
</Warning>

### Can I still bridge assets into or out of Sei over IBC?

No. [Proposal #116](https://seistream.app/proposals/116) and [Proposal #120](https://seistream.app/proposals/120) disabled inbound IBC. [Proposal #121](https://seistream.app/proposals/121) disabled outbound IBC on July 31, 2026. The `InboundEnabled` and `OutboundEnabled` parameters on the `ibc` module are now both `false`, so the chain does not accept IBC transfers in either direction. See [IBC is disabled](#ibc-is-disabled).

### I hold an IBC asset on Sei — is it gone?

The balance is not gone. It still exists in the bank module, and it is still visible in explorers and wallets. You can still transfer it between Sei addresses and through its ERC-20 pointer. However, you can no longer send it back over IBC to redeem the underlying asset on its origin chain. See [What you can still do](#what-you-can-still-do).

### I hold USDC.n (USDC via Noble) — what should I do?

USDC.n can no longer be redeemed. The migration route sent USDC.n back to Noble over IBC and reissued it as native USDC through Circle's CCTP. That route required outbound IBC, which [Proposal #121](https://seistream.app/proposals/121) disabled on July 31, 2026.

An on-chain swap to native USDC on a Sei DEX does not use IBC and still executes, subject to whatever liquidity remains. See [If you still hold USDC.n](#if-you-still-hold-usdc-n) above. For background, read the original announcement: [Holders of USDC.n Need to Swap or Migrate](https://blog.sei.io/announcements/holders-of-usdcn-need-to-swap-or-migrate/).


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