Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cosmos-sdk/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ Cosmos SDK and CosmWasm functionality is being deprecated in favor of EVM-only.

In addition, [Proposal 115](https://seistream.app/proposals/115) disables CosmWasm code uploads (`MsgStoreCode`) and contract instantiations (`MsgInstantiateContract`) chain-wide. No new CosmWasm contracts can be deployed; only `execute` and `query` against pre-existing contracts remain available via the [CosmWasm precompile](/evm/precompiles/cosmwasm-precompiles/cosmwasm).

[Proposal 116](https://seistream.app/proposals/116) additionally disables inbound IBC transfers. After this passes and is activated, IBC assets bridged from Cosmos chains can no longer arrive on Sei. [Proposal 120](https://seistream.app/proposals/120) re-disables inbound IBC (setting the `ibc` module's `InboundEnabled` parameter to `false`) while leaving outbound IBC unchanged. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.
**IBC is now disabled in both directions.** [Proposal 116](https://seistream.app/proposals/116) and [Proposal 120](https://seistream.app/proposals/120) set the `ibc` module's `InboundEnabled` parameter to `false`, and [Proposal 121](https://seistream.app/proposals/121) set `OutboundEnabled` to `false` on July 31, 2026. No asset can be bridged into or out of Sei over IBC, and IBC assets already on Sei can no longer be redeemed on their origin chain. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full explanation and the list of affected assets.

</Danger>
4 changes: 2 additions & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -663,7 +663,7 @@
},
{
"source": "/evm/precompiles/cosmwasm-precompiles/ibc",
"destination": "/learn/sip-03-migration",
"destination": "/learn/sip-03-migration#ibc-is-disabled",
"permanent": true
},
{
Expand Down Expand Up @@ -1673,7 +1673,7 @@
"library": "fontawesome"
},
"banner": {
"content": "**Action required: IBC assets on Sei will become inaccessible** If you hold [USDC.n](https://seiscan.io/address/0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1) (USDC via Noble), [USDT.kava](https://seiscan.io/address/0xb75d0b03c06a926e488e2659df1a861f860bd3d1) (Kava USDT), Wormhole-bridged tokens, or any other IBC asset on Sei, you **must** swap, migrate, or bridge out **before the governance proposal to disable inbound/outbound IBC transfers passes and is activated** to avoid permanent loss of access. After this, Sei will no longer support IBC bridging of assets from Cosmos-based chains to and from Sei Network. Consult the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full list of affected assets, required actions, and supported routes. For USDC.n specifically, see: [Holders of USDC.n Need to Swap or Migrate](https://blog.sei.io/announcements/holders-of-usdcn-need-to-swap-or-migrate/).",
"content": "**IBC is disabled on Sei in both directions** [Proposal #121](https://seistream.app/proposals/121) passed on July 31, 2026 and disabled outbound IBC transfers. Inbound IBC was already disabled by [Proposal #116](https://seistream.app/proposals/116) and [Proposal #120](https://seistream.app/proposals/120). No asset can be bridged into or out of Sei over IBC. If you hold [USDC.n](https://seiscan.io/address/0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1) (USDC via Noble), [USDT.kava](https://seiscan.io/address/0xb75d0b03c06a926e488e2659df1a861f860bd3d1) (Kava USDT), ATOM, WBTC, or any other IBC asset on Sei, it can no longer be redeemed on its origin chain. The balance still exists on Sei and can still be transferred within Sei. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for what changed, the full list of affected assets, and what remains possible.",
"dismissible": true
}
}
2 changes: 1 addition & 1 deletion evm/differences-with-ethereum.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

[Proposal 115](https://seistream.app/proposals/115) further disables CosmWasm code uploads and contract instantiations chain-wide — no new CosmWasm contracts can be deployed. Only `execute` and `query` against pre-existing CosmWasm contracts remain available.

[Proposal 116](https://seistream.app/proposals/116) additionally disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. [Proposal 120](https://seistream.app/proposals/120) re-disables inbound IBC (setting the `ibc` module's `InboundEnabled` parameter to `false`) while leaving outbound IBC unchanged. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.
**IBC is now disabled in both directions.** [Proposal 116](https://seistream.app/proposals/116) and [Proposal 120](https://seistream.app/proposals/120) set the `ibc` module's `InboundEnabled` parameter to `false`, and [Proposal 121](https://seistream.app/proposals/121) set `OutboundEnabled` to `false` on July 31, 2026. No asset can be bridged into or out of Sei over IBC, and IBC assets already on Sei can no longer be redeemed on their origin chain. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full explanation and the list of affected assets.

</Danger>

Expand All @@ -50,7 +50,7 @@
- User accounts on Sei have [two addresses](/learn/accounts) derived from the same public key (Cosmos Bech32 and EVM-compatible 0x…)
- Interoperability between EVM and Cosmos-SDK modules is governed and navigated via [precompiles](/evm/precompiles/example-usage) and [pointer contracts](/learn/pointers)

## Sei EVM Release

Check warning on line 53 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L53

Use sentence case for headings: 'Sei EVM Release'.

Sei EVM was originally deployed at the following block heights and versions:

Expand All @@ -66,7 +66,7 @@
- **Height:** `79123881`
- **Changelog:** https://github.com/sei-protocol/sei-chain/blob/main/CHANGELOG.md#v552

## Opcode Differences

Check warning on line 69 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L69

Use sentence case for headings: 'Opcode Differences'.

| Opcode | Sei EVM | Ethereum | Notes |
| --- | --- | --- | --- |
Expand All @@ -80,7 +80,7 @@
| Blob‑related opcodes | Not supported (Pectra without blobs) | Supported post‑Cancun (EIP‑4844) | Blob transactions are not enabled on Sei. |


### PREVRANDAO

Check warning on line 83 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L83

Use sentence case for headings: 'PREVRANDAO'.

Since Sei doesn't rely on the same pseudo‑randomness way of determining the next
validator like Proof of Stake (PoS) Ethereum does, it doesn't have the
Expand All @@ -94,19 +94,19 @@
Coinbase address on Sei is always set to (the EVM address of) the global fee
collector.

## State Root

Check warning on line 97 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L97

Use sentence case for headings: 'State Root'.

Since Sei uses AVL-tree instead of Merkle Patricia Trie (MPT) for data storage,
Sei doesn't have per-account state root. The global state root is the AVL-tree
root which is also not equivalent to Ethereum's overall state root (which is a
MPT root)

## Block Hash

Check warning on line 104 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L104

Use sentence case for headings: 'Block Hash'.

The block hash on Sei is computed based on the block header in Tendermint data
format, and is different from Ethereum's block Hash as a result.

## Base Fee & Tips

Check warning on line 109 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L109

Use sentence case for headings: 'Base Fee & Tips'.

Sei supports all non‑blob transaction types, including the Pectra `SetCode` transaction (EIP‑7702). However for a legacy (non EIP‑1559) type
transaction, you must specify a gas price at or above Sei's governance-set minimum gas price (currently `50 gwei` on mainnet). Query the live value with `eth_gasPrice` rather than hard-coding it. In addition to this, excess
Expand All @@ -131,7 +131,7 @@
value: '"0.007500000000000000"'
```

## Non-EVM Transactions

Check warning on line 134 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L134

Use sentence case for headings: 'Non-EVM Transactions'.

On Sei there exists non-EVM transactions which may update states accessible by
EVM transactions. The simplest example would be bank balances, which may be
Expand All @@ -145,7 +145,7 @@
committed (~400 ms) — meaning that commitment levels of "safe", "latest",
"justified", and "finalized" on Ethereum are all the same thing on Sei.

## Pending State

Check warning on line 148 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L148

Use sentence case for headings: 'Pending State'.

On Ethereum the block proposer would execute its proposed block first (and
update its local state) before broadcasting the proposal to others (the updated
Expand All @@ -156,7 +156,7 @@
the same time), so Sei does not have a window when "pending state"
exists.

## Gas Model & Fees

Check warning on line 159 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L159

Use sentence case for headings: 'Gas Model & Fees'.

Sei does not implement base‑fee burning. There is no base‑fee burn; all transaction fees accrue to validators. Fees are calculated as:

Expand All @@ -178,7 +178,7 @@

</Info>

## SSTORE Gas Cost

Check warning on line 181 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L181

Use sentence case for headings: 'SSTORE Gas Cost'.

On Sei, the `SSTORE` opcode gas cost is configurable as an on-chain parameter, meaning it can be adjusted via governance proposal without requiring a chain upgrade. This provides flexibility to tune storage costs based on EVM state size and network conditions.

Expand All @@ -192,7 +192,7 @@

<Info>Since `SSTORE` is a governance-controlled parameter, this value may change in the future through a governance proposal.</Info>

## ERC Token Standards Compatibility

Check warning on line 195 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L195

Use sentence case for headings: 'ERC Token Standards Compatibility'.

Sei’s EVM fully supports the common token standards:

Expand All @@ -202,7 +202,7 @@

Existing OpenZeppelin contracts and tools work unchanged.

## Testing & Migration Checklist

Check warning on line 205 in evm/differences-with-ethereum.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/differences-with-ethereum.mdx#L205

Use sentence case for headings: 'Testing & Migration Checklist'.

- ✅ Re‑deploy your Solidity code to Sei testnet; most contracts need no changes.
- ✅ If you used SELFDESTRUCT, refactor to a soft‑close pattern.
Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/cosmwasm-precompiles/bank.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,23 @@

<Info> **What is a precompile?** A precompile is a special smart contract deployed at a fixed address by the Sei protocol itself, that exposes custom native chain logic to EVM-based applications. It acts like a regular contract from the EVM's perspective, but executes privileged, low-level logic efficiently. </Info>

## How Does the Bank Precompile Work?

Check warning on line 13 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L13

Use sentence case for headings: 'How Does the Bank Precompile Work?'.

The bank precompile at address `0x0000000000000000000000000000000000001001` exposes functions like `send()`, `sendNative()`, `balance()`, `all_balances()`, and token metadata queries.

- **Direct Integration:** EVM contracts and dApps can call banking functions like any other smart contract method.
- **Native Execution:** Operations are executed at the Cosmos SDK level for maximum efficiency and security.
- **Cross-Chain Assets:** Manage both native SEI tokens and IBC assets seamlessly from EVM contracts.
- **Any native denom:** Manage native SEI, factory tokens, and existing IBC denoms from EVM contracts. IBC is disabled on Sei (see [SIP-03](/learn/sip-03-migration#ibc-is-disabled)), so no new IBC denoms can arrive, but balances already held remain readable and transferable.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] The reframing is the right call over deletion, but **Any native denom:** breaks the Title Case pattern of its two sibling bullets (**Direct Integration:**, **Native Execution:**). **Any Native Denom:** would keep the list consistent.


**When to use `send` vs `sendNative`:** `send` moves an arbitrary `denom` (any IBC or factory token) between two EVM addresses (`0x...`) by reading the balance directly from the bank module — no `msg.value` is attached. It is gated to the registered ERC20 native pointer for that denom, so it is typically invoked from the auto-deployed pointer contract rather than from arbitrary user code. `sendNative` is for sending native SEI (the attached `msg.value`) from the EVM caller to a Cosmos bech32 (`sei1...`) destination, which is useful for crossing the EVM→Cosmos boundary when the recipient has no associated EVM address (for example, paying a Cosmos-only contract or account).

## Use Cases

Check warning on line 23 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L23

Use sentence case for headings: 'Use Cases'.

- **DeFi Applications:** Build decentralized finance protocols that can handle native SEI and Cosmos assets.
- **Portfolio Management:** Build tools to track and manage multi-asset portfolios across Cosmos and EVM.
- **Token Information Services:** Query comprehensive token metadata for UI display and analytics.

## What You'll Learn in This Guide

Check warning on line 29 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L29

Use sentence case for headings: 'What You'll Learn in This Guide'.

By the end of this guide, you'll be able to:

Expand All @@ -38,7 +38,7 @@

The bank precompile exposes the following functions:

### Transaction Functions

Check warning on line 41 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L41

Use sentence case for headings: 'Transaction Functions'.

```solidity
/// Sends non-native tokens from one address to another. Callable only by the
Expand All @@ -64,7 +64,7 @@
) payable external returns (bool success);
```

### Query Functions

Check warning on line 67 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L67

Use sentence case for headings: 'Query Functions'.

```solidity
/// Queries the balance of the given account for the specified denom.
Expand Down Expand Up @@ -112,7 +112,7 @@
) external view returns (uint256 response);
```

## Using the Precompile

Check warning on line 115 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L115

Use sentence case for headings: 'Using the Precompile'.

### Setup

Expand All @@ -126,7 +126,7 @@
- **SEI tokens** for gas and testing transfers
- **Hardhat** for development and testing

#### Install Dependencies

Check warning on line 129 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L129

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

Expand All @@ -141,7 +141,7 @@
npm install @sei-js/precompiles@2.1.2
```

#### Setup Hardhat Environment

Check warning on line 144 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L144

Use sentence case for headings: 'Setup Hardhat Environment'.

Create a `hardhat.config.ts` file with the following content:

Expand Down Expand Up @@ -169,7 +169,7 @@
npx hardhat keystore set PRIVATE_KEY
```

#### Import Precompile Components

Check warning on line 172 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L172

Use sentence case for headings: 'Import Precompile Components'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -263,7 +263,7 @@
</Tab>
</Tabs>

### Native SEI vs Custom Tokens

Check warning on line 266 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L266

Use sentence case for headings: 'Native SEI vs Custom Tokens'.

**Native SEI Transfers:**

Expand All @@ -277,9 +277,9 @@
- Requires prior token approval or ownership
- Support various decimal configurations

## Step-by-Step Guide: Using the Bank Precompile

Check warning on line 280 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L280

Use sentence case for headings: 'Step-by-Step Guide: Using the Bank Precompile'.

### Send Native SEI Tokens

Check warning on line 282 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L282

Use sentence case for headings: 'Send Native SEI Tokens'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -330,7 +330,7 @@
</Tab>
</Tabs>

### Send Custom Tokens

Check warning on line 333 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L333

Use sentence case for headings: 'Send Custom Tokens'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -407,7 +407,7 @@
</Tab>
</Tabs>

### Query Account Balance

Check warning on line 410 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L410

Use sentence case for headings: 'Query Account Balance'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -464,7 +464,7 @@
</Tab>
</Tabs>

### Query All Balances

Check warning on line 467 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L467

Use sentence case for headings: 'Query All Balances'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -539,7 +539,7 @@
</Tab>
</Tabs>

### Query Token Metadata

Check warning on line 542 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L542

Use sentence case for headings: 'Query Token Metadata'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -622,7 +622,7 @@
</Tab>
</Tabs>

### Complete Integration Example

Check warning on line 625 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L625

Use sentence case for headings: 'Complete Integration Example'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -1103,15 +1103,15 @@
</Tab>
</Tabs>

## Security Considerations & Risks

Check warning on line 1106 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1106

Use sentence case for headings: 'Security Considerations & Risks'.

### Transaction Security

Check warning on line 1108 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1108

Use sentence case for headings: 'Transaction Security'.

- **Amount Validation:** Always validate transfer amounts and ensure sufficient balances
- **Address Verification:** Verify recipient addresses are valid before sending tokens
- **Reentrancy Protection:** Be aware of potential reentrancy when combining with other contracts

### Permission Management

Check warning on line 1114 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1114

Use sentence case for headings: 'Permission Management'.

```solidity
// Example of secure permission patterns
Expand All @@ -1129,9 +1129,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 1132 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1132

Use sentence case for headings: 'Common Issues and Solutions'.

#### Transaction Failures

Check warning on line 1134 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1134

Use sentence case for headings: 'Transaction Failures'.

```typescript
// Handle common transfer errors
Expand All @@ -1149,7 +1149,7 @@
}
```

#### Balance Query Issues

Check warning on line 1152 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1152

Use sentence case for headings: 'Balance Query Issues'.

```typescript
// Safe balance checking with error handling
Expand All @@ -1166,7 +1166,7 @@
}
```

### Error Code Reference

Check warning on line 1169 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1169

Use sentence case for headings: 'Error Code Reference'.

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -1177,7 +1177,7 @@
| `metadata not found` | Token metadata not available | Handle missing metadata gracefully |


## Important Notes

Check warning on line 1180 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1180

Use sentence case for headings: 'Important Notes'.

<Info>

Expand All @@ -1189,13 +1189,13 @@

</Info>

### Gas Optimization

Check warning on line 1192 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1192

Use sentence case for headings: 'Gas Optimization'.

- **Batch Operations:** Use batch functions for multiple operations to save gas
- **Query Efficiency:** Cache frequently accessed token metadata
- **Error Handling:** Implement proper error handling to avoid failed transaction costs

### Integration Best Practices

Check warning on line 1198 in evm/precompiles/cosmwasm-precompiles/bank.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/bank.mdx#L1198

Use sentence case for headings: 'Integration Best Practices'.

- **Balance Checks:** Always verify sufficient balance before transfers
- **Error Recovery:** Implement retry logic for failed transactions
Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

Per [governance Proposal 115](https://seistream.app/proposals/115), CosmWasm code uploads (`MsgStoreCode`) and contract instantiations (`MsgInstantiateContract`) are disabled chain-wide. The `instantiate()` function on this precompile **will revert** for all callers. Only `execute()`, `execute_batch()`, and `query()` against pre-existing CosmWasm contracts remain functional, and all CosmWasm functionality is deprecated in favor of EVM-only per [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md).

In addition, [Proposal 116](https://seistream.app/proposals/116) disables inbound IBC transfers — IBC assets bridged from Cosmos chains can no longer arrive on Sei after this passes and is activated. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for affected assets and migration routes.
In addition, IBC is disabled in both directions: Proposals [116](https://seistream.app/proposals/116) and [120](https://seistream.app/proposals/120) disabled inbound IBC, and [Proposal 121](https://seistream.app/proposals/121) disabled outbound IBC on July 31, 2026. No asset can be bridged into or out of Sei over IBC. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full explanation and the list of affected assets.

For new smart contract development, use the EVM directly. See [Deploy a Smart Contract](/evm/evm-general).
</Danger>
Expand All @@ -20,7 +20,7 @@

<Info> **What is a precompile?** A precompile is a special smart contract deployed at a fixed address by the Sei protocol itself, that exposes custom native chain logic to EVM-based applications. It acts like a regular contract from the EVM's perspective, but executes privileged, low-level logic efficiently. </Info>

## How Does the CosmWasm Precompile Work?

Check warning on line 23 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L23

Use sentence case for headings: 'How Does the CosmWasm Precompile Work?'.

The CosmWasm precompile at address `0x0000000000000000000000000000000000001002` exposes functions like `execute()`, `execute_batch()`, and `query()`.

Expand All @@ -28,7 +28,7 @@
- **Native Execution:** Operations are executed at the Cosmos SDK level for maximum efficiency and security.
- **Seamless Bridge:** No need for separate wallet integrations or complex cross-chain interactions.

## What You'll Learn in This Guide

Check warning on line 31 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L31

Use sentence case for headings: 'What You'll Learn in This Guide'.

By the end of this guide, you'll be able to:

Expand All @@ -41,7 +41,7 @@

The CosmWasm precompile exposes the following functions:

### Transaction Functions

Check warning on line 44 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L44

Use sentence case for headings: 'Transaction Functions'.

<Warning>The `instantiate()` function has been disabled by [Prop 115](https://seistream.app/proposals/115) and will revert. It is omitted from this reference. The ABI in `@sei-js/precompiles` may still expose it for backwards compatibility, but calling it on-chain will fail.</Warning>

Expand Down Expand Up @@ -71,7 +71,7 @@
) payable external returns (bytes[] memory responses);
```

### Query Functions

Check warning on line 74 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L74

Use sentence case for headings: 'Query Functions'.

```solidity
/// Queries a CosmWasm contract.
Expand All @@ -84,7 +84,7 @@
) external view returns (bytes memory response);
```

## Using the Precompile

Check warning on line 87 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L87

Use sentence case for headings: 'Using the Precompile'.

### Setup

Expand All @@ -97,7 +97,7 @@
- **EVM-compatible wallet**
- **SEI tokens** for gas and contract operations

#### Install Dependencies

Check warning on line 100 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L100

Use sentence case for headings: 'Install Dependencies'.

Install the required packages for interacting with Sei precompiles:

Expand All @@ -109,7 +109,7 @@
npm install @sei-js/precompiles@2.1.2
```

#### Import Precompile Components

Check warning on line 112 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L112

Use sentence case for headings: 'Import Precompile Components'.

```typescript
// Import CosmWasm precompile address and ABI
Expand All @@ -134,11 +134,11 @@
const cosmwasm = new ethers.Contract(WASM_PRECOMPILE_ADDRESS, WASM_PRECOMPILE_ABI, signer);
```

## Critical: Understanding Message Formats

Check warning on line 137 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L137

Use sentence case for headings: 'Critical: Understanding Message Formats'.

One of the most important concepts to understand when working with the Sei CosmWasm precompile:

### CosmWasm Message Structure

Check warning on line 141 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L141

Use sentence case for headings: 'CosmWasm Message Structure'.

The CosmWasm precompile requires **JSON-encoded messages** that conform to each contract's specific schema:

Expand All @@ -148,7 +148,7 @@
| `query()` | req parameter (input) | JSON bytes | `ethers.toUtf8Bytes(jsonString)` |
| **All functions** | response (output) | JSON bytes | `JSON.parse(ethers.toUtf8String(response))` |

### How Message Encoding Works

Check warning on line 151 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L151

Use sentence case for headings: 'How Message Encoding Works'.

**All CosmWasm functions require JSON-encoded byte arrays:**

Expand All @@ -160,7 +160,7 @@
- Use `msg.value` for SEI amounts
- Use `coins` parameter for other denominations (encoded as JSON bytes)

### Best Practice: Message Encoding Helpers

Check warning on line 163 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L163

Use sentence case for headings: 'Best Practice: Message Encoding Helpers'.

When working with CosmWasm messages, use proper JSON encoding:

Expand Down Expand Up @@ -203,7 +203,7 @@
});
```

## Message Format Helpers

Check warning on line 206 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L206

Use sentence case for headings: 'Message Format Helpers'.

Use these helper functions to handle CosmWasm message formatting:

Expand Down Expand Up @@ -251,9 +251,9 @@
const coins = CosmWasmHelper.createCoins([{ denom: 'uusdc', amount: '1000000' }]);
```

## Step-by-Step Guide: Using the CosmWasm Precompile

Check warning on line 254 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L254

Use sentence case for headings: 'Step-by-Step Guide: Using the CosmWasm Precompile'.

### Execute a CosmWasm Contract

Check warning on line 256 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L256

Use sentence case for headings: 'Execute a CosmWasm Contract'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -311,7 +311,7 @@
</Tab>
</Tabs>

### Execute Batch Operations

Check warning on line 314 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L314

Use sentence case for headings: 'Execute Batch Operations'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -382,7 +382,7 @@
</Tab>
</Tabs>

### Query a CosmWasm Contract

Check warning on line 385 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L385

Use sentence case for headings: 'Query a CosmWasm Contract'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -451,9 +451,9 @@

<Warning> **Query Limitations:** CosmWasm queries are read-only operations and don't consume gas, but parsing JSON responses in Solidity is complex. Consider handling response parsing off-chain. </Warning>

## Advanced Usage Examples

Check warning on line 454 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L454

Use sentence case for headings: 'Advanced Usage Examples'.

### Cross-Runtime DeFi Integration

Check warning on line 456 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L456

Use sentence case for headings: 'Cross-Runtime DeFi Integration'.

```typescript
async function crossRuntimeDeFiOperation(cosmwasmDexContract: string, evmTokenContract: string, amount: string) {
Expand Down Expand Up @@ -492,7 +492,7 @@
}
```

### Complete Integration Example

Check warning on line 495 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L495

Use sentence case for headings: 'Complete Integration Example'.

<Tabs>
<Tab title="JavaScript">
Expand Down Expand Up @@ -730,9 +730,9 @@

## Troubleshooting

### Common Issues and Solutions

Check warning on line 733 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L733

Use sentence case for headings: 'Common Issues and Solutions'.

#### Message Encoding Issues

Check warning on line 735 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L735

Use sentence case for headings: 'Message Encoding Issues'.

```typescript
// Ensure proper JSON encoding for messages
Expand All @@ -750,7 +750,7 @@
const incorrectMsg = ethers.toUtf8Bytes('invalid json');
```

### Error Code Reference

Check warning on line 753 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L753

Use sentence case for headings: 'Error Code Reference'.

| Error | Cause | Solution |
| --- | --- | --- |
Expand All @@ -761,23 +761,23 @@
| `unauthorized` | Insufficient permissions | Check admin/owner permissions |
| `query parsing failed` | Invalid query message format | Match contract's query schema |

## Important Notes

Check warning on line 764 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L764

Use sentence case for headings: 'Important Notes'.

<Info> Remember the key rule: All CosmWasm messages must be properly JSON-encoded as bytes, and contract schemas vary by implementation! </Info>

### Message Format Requirements

Check warning on line 768 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L768

Use sentence case for headings: 'Message Format Requirements'.

- **JSON Encoding:** All messages must be valid JSON encoded as UTF-8 bytes, invalid JSON will cause transaction failures
- **Schema Compliance:** Messages must match the contract's expected format
- **Type Safety:** Use proper data types as expected by the contract

### Contract Address Format

Check warning on line 774 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L774

Use sentence case for headings: 'Contract Address Format'.

- Use valid Sei contract addresses with `sei1...` prefix
- These are Cosmos-format addresses, not EVM addresses
- **Contract Existence:** Verify contracts exist before calling

### Cross-Runtime Considerations

Check warning on line 780 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L780

Use sentence case for headings: 'Cross-Runtime Considerations'.

- **State Isolation:** CosmWasm and EVM contracts have separate state
- **Gas Estimation:** CosmWasm operations may require different gas calculations
Expand All @@ -785,7 +785,7 @@
- **Native Token Handling:** Use `msg.value` for SEI, `coins` for other denominations
- **Batch Limitations:** Large batches may hit gas limits

### Best Practices

Check warning on line 788 in evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/cosmwasm.mdx#L788

Use sentence case for headings: 'Best Practices'.

- Always validate JSON messages before sending
- Handle response parsing carefully, especially for complex data structures
Expand Down
2 changes: 1 addition & 1 deletion evm/precompiles/cosmwasm-precompiles/example-usage.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


<Info>
Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be deployed on Sei. The examples below apply to **pre-existing CosmWasm contracts** only — `instantiate()` will revert. Separately, [Proposal 116](https://seistream.app/proposals/116) disables inbound IBC transfers as part of the [SIP-03](/learn/sip-03-migration) migration.
Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be deployed on Sei. The examples below apply to **pre-existing CosmWasm contracts** only — `instantiate()` will revert. Separately, IBC is disabled in both directions as part of the [SIP-03](/learn/sip-03-migration) migration — Proposals [116](https://seistream.app/proposals/116) and [120](https://seistream.app/proposals/120) disabled inbound IBC, and [Proposal 121](https://seistream.app/proposals/121) disabled outbound IBC.
</Info>

The Sei precompiles can be used like any standard smart contract on the EVM. For
Expand Down Expand Up @@ -47,7 +47,7 @@
const contract = new ethers.Contract(WASM_PRECOMPILE_ADDRESS, WASM_PRECOMPILE_ABI, signer);
```

#### Querying & Executing a CosmWasm Contract

Check warning on line 50 in evm/precompiles/cosmwasm-precompiles/example-usage.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

evm/precompiles/cosmwasm-precompiles/example-usage.mdx#L50

Use sentence case for headings: 'Querying & Executing a CosmWasm Contract'.

Once you have the contract, you can query and execute messages to any CosmWasm
smart contract. In the below example we assume there is a counter contract with a `get_count` function
Expand Down
8 changes: 4 additions & 4 deletions index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
The first parallelized EVM blockchain delivering unmatched scalability and speed.

<Danger>
**Action required: IBC assets on Sei will become inaccessible**
**IBC is disabled on Sei in both directions**

If you hold [USDC.n](https://seiscan.io/address/0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1) (USDC via Noble), [USDT.kava](https://seiscan.io/address/0xb75d0b03c06a926e488e2659df1a861f860bd3d1) (Kava USDT), Wormhole-bridged tokens, or any other IBC asset on Sei, you **must** swap, migrate, or bridge out **before the governance proposal to disable inbound/outbound IBC transfers passes and is activated** to avoid permanent loss of access. After this, Sei will no longer support IBC bridging of assets from Cosmos-based chains to and from Sei Network.
[Proposal #121](https://seistream.app/proposals/121) passed on July 31, 2026 and disabled outbound IBC transfers. Inbound IBC was already disabled by [Proposal #116](https://seistream.app/proposals/116) and [Proposal #120](https://seistream.app/proposals/120). No asset can be bridged into or out of Sei over IBC.

Consult the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full list of affected assets, required actions, and supported routes.
If you hold [USDC.n](https://seiscan.io/address/0x3894085Ef7Ff0f0aeDf52E2A2704928d1Ec074F1) (USDC via Noble), [USDT.kava](https://seiscan.io/address/0xb75d0b03c06a926e488e2659df1a861f860bd3d1) (Kava USDT), ATOM, WBTC, or any other IBC asset on Sei, it can no longer be redeemed on its origin chain. The balance still exists on Sei and can still be transferred within Sei.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] The rewritten callout drops "Wormhole-bridged tokens" from the affected-asset list that the previous version included, and the docs.json banner (line 1676) makes the same change. Wormhole holders are in the same stranded position — the migration guide's own table lists five of those tokens with Route off Sei: None — but nothing on the landing page or the banner now signals that to them, and "any other IBC asset" doesn't cover them since the guide is careful to say Wormhole assets are not IBC.

Suggest a short clause such as "…or Wormhole-bridged tokens (stranded separately, since Portal Bridge legacy was withdrawn)" so those holders still get routed to the guide.


For USDC.n specifically, see: [Holders of USDC.n Need to Swap or Migrate](https://blog.sei.io/announcements/holders-of-usdcn-need-to-swap-or-migrate/).
See the [SIP-03 Migration Guide](/learn/sip-03-migration) for what changed, the full list of affected assets, and what remains possible.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nit] The Holders of USDC.n Need to Swap or Migrate link was dropped from both this homepage callout and the docs.json banner. Defensible — the post's core advice (swap or migrate out) is now partly unactionable — and it does survive in the SIP-03 FAQ, so nothing is orphaned. Noting it only in case the removal from the two highest-traffic surfaces was incidental rather than deliberate.

</Danger>

## Quick Start

Check warning on line 21 in index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

index.mdx#L21

Use sentence case for headings: 'Quick Start'.

<CardGroup cols={3}>
<Card title="Deploy a Smart Contract" icon="code" horizontal href="/evm/evm-general">
Expand All @@ -38,7 +38,7 @@
</Card>
</CardGroup>

## Essential Resources

Check warning on line 41 in index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

index.mdx#L41

Use sentence case for headings: 'Essential Resources'.

<CardGroup cols={3}>
<Card title="Chain Info" icon="globe" horizontal href="/learn/dev-chains">
Expand Down Expand Up @@ -127,7 +127,7 @@
</Card>
</CardGroup>

## Smart Contracts

Check warning on line 130 in index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

index.mdx#L130

Use sentence case for headings: 'Smart Contracts'.

<Card title="Deploy & Debug on Sei" icon="code" horizontal href="/evm/evm-general">
Write, deploy, and debug Solidity smart contracts with your favorite toolchain. Sei is fully EVM-compatible with 400 ms blocks and parallelized execution.
Expand All @@ -140,7 +140,7 @@
<Card title="Best Practices" icon="gauge-high" horizontal href="/evm/best-practices/optimizing-for-parallelization" />
</CardGroup>

## Infrastructure & Tools

Check warning on line 143 in index.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

index.mdx#L143

Use sentence case for headings: 'Infrastructure & Tools'.

<CardGroup cols={2}>
<Card title="Run a Node" icon="lock" horizontal href="/node">
Expand Down
2 changes: 1 addition & 1 deletion learn/dev-interoperability.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
---

<Info>
**CosmWasm deployments are frozen, and inbound IBC is being disabled.** Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be uploaded or instantiated on Sei. [Proposal 116](https://seistream.app/proposals/116) additionally disables inbound IBC transfers, so IBC assets bridged from Cosmos chains can no longer arrive on Sei. The interoperability features described on this page apply to **already-deployed** CosmWasm contracts, native Bank Module assets, and Cosmos-SDK modules accessed via precompiles. For new smart contract development, build directly on the EVM. See [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) for the full migration context.
**CosmWasm deployments are frozen, and IBC is disabled in both directions.** Per [Proposal 115](https://seistream.app/proposals/115), no new CosmWasm contracts can be uploaded or instantiated on Sei. Proposals [116](https://seistream.app/proposals/116), [120](https://seistream.app/proposals/120), and [121](https://seistream.app/proposals/121) disabled inbound and then outbound IBC transfers, so no asset can be bridged into or out of Sei over IBC. The interoperability features described on this page apply to **already-deployed** CosmWasm contracts, native Bank Module assets, and Cosmos-SDK modules accessed via precompiles. For new smart contract development, build directly on the EVM. See [SIP-3](https://github.com/sei-protocol/sips/blob/main/sips/sip-3.md) and the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full migration context.
</Info>

## Dual Address Support

Check warning on line 12 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L12

Use sentence case for headings: 'Dual Address Support'.

Sei utilizes two distinct address types:

Expand All @@ -23,7 +23,7 @@
For more details on interoperability, explore our article
[here](https://blog.sei.io/sei-v2-interoperability/).

## Virtual Machine Interoperability

Check warning on line 26 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L26

Use sentence case for headings: 'Virtual Machine Interoperability'.

EVM and existing CosmWasm-based smart contracts co-exist on Sei, but live in
different execution environments. This creates a challenge for users, who use
Expand All @@ -35,7 +35,7 @@
already-deployed CosmWasm contracts to the EVM via precompiled contracts. New
smart contracts on Sei should be deployed on the EVM directly.

## Precompile Contracts

Check warning on line 38 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L38

Use sentence case for headings: 'Precompile Contracts'.

Sei precompiles are smart contracts embedded directly within the Sei EVM
environment. They provide a gateway for users and developers to access Cosmos-SDK functions through the EVM RPC interface.
Expand All @@ -43,7 +43,7 @@
For instructions on utilizing EVM precompiles, refer to the
[Example Usage](/evm/precompiles/example-usage) section.

## Example Diagram

Check warning on line 46 in learn/dev-interoperability.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/dev-interoperability.mdx#L46

Use sentence case for headings: 'Example Diagram'.

![Interoperability](/assets/interoperability.png)
*Enabling seamless access to all tokens and contracts on Sei*
8 changes: 7 additions & 1 deletion learn/sip-03-exchange-migration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@

This section is for exchanges, custodians, and other service providers that currently support SEI token deposits and withdrawals using native (`sei1...`) addresses. It explains what SIP-03 changes, the options available for migrating customer holdings to EVM (`0x...`) addresses, and the timeline by which migration must be complete.

<Warning>
**IBC is already disabled in both directions.** Proposals [#116](https://seistream.app/proposals/116) and [#120](https://seistream.app/proposals/120) disabled inbound IBC, and [#121](https://seistream.app/proposals/121) disabled outbound IBC on July 31, 2026. No asset can be bridged into or out of Sei over IBC, so IBC is not available as a route for moving customer funds off Sei, and IBC-bridged assets held on Sei can no longer be redeemed on their origin chain. See [IBC is disabled](/learn/sip-03-migration#ibc-is-disabled).

The migration options below move funds between the native and EVM sides of Sei. They are intra-chain and are not affected by the IBC parameters.
</Warning>

### What SIP-03 changes

Check warning on line 15 in learn/sip-03-exchange-migration.mdx

View workflow job for this annotation

GitHub Actions / audit

Heading skips from H1 to H3 (don't skip levels)

For exchanges, the practical implication of the SIP-03 migration is that any integration treating "Sei" (native) and "Sei EVM" as two separate chains needs to be reconciled into a single integration before the Cosmos shutdown. Every native address (`sei1...`) on Sei has a corresponding EVM address (`0x...`) on the same chain. This is not two distinct chains or wallets, it is one chain with two ways to interact with it.

Expand All @@ -24,19 +30,19 @@
- Ensure the native and EVM addresses are associated on-chain (see [Address association](#address-association) below).
- Update internal accounting and customer-facing UI to present the EVM address as the canonical Sei address.

#### 2) Automated forwarding contract

Check warning on line 33 in learn/sip-03-exchange-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/sip-03-exchange-migration.mdx#L33

Use sentence case for headings: '2) Automated forwarding contract'.

The exchange uses a `FundsForwarder` smart contract to programmatically move customer funds from the native side to the customer's EVM wallet on the exchange. The exchange handles deployment and triggering; the customer sees the funds arrive at the new address without taking any action themselves.

This is appropriate when the exchange cannot or does not want to expose EVM addresses for existing native wallets directly, but is willing to operate the migration itself.

#### 3) User-directed forwarding contract

Check warning on line 39 in learn/sip-03-exchange-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/sip-03-exchange-migration.mdx#L39

Use sentence case for headings: '3) User-directed forwarding contract'.

The exchange notifies customers of the change and directs them to the `FundsForwarder` contract address. Customers initiate the transfer themselves; this action triggers the contract to automatically forward funds to the appropriate EVM wallet on the exchange.

This is functionally similar to option 2 but pushes the trigger action onto the customer. It is appropriate when the exchange cannot operate the contract directly but wants to provide an automated destination.

#### 4) Fully manual transfer

Check warning on line 45 in learn/sip-03-exchange-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/sip-03-exchange-migration.mdx#L45

Use sentence case for headings: '4) Fully manual transfer'.

The exchange notifies customers of the change and asks them to manually withdraw funds to a self-custodial wallet and then redeposit them to the EVM address provided by the exchange.

Expand All @@ -50,7 +56,7 @@

For details on how to query association status and the methods for associating addresses, see [Accounts](/learn/accounts).

### FundsForwarder contract

Check warning on line 59 in learn/sip-03-exchange-migration.mdx

View check run for this annotation

Mintlify / Mintlify Validation (seilabs) - vale-spellcheck

learn/sip-03-exchange-migration.mdx#L59

Use sentence case for headings: 'FundsForwarder contract'.

The `FundsForwarder` is a one-way smart contract that accepts deposits at a native (`sei1...`) address and forwards the full balance to a pre-configured EVM (`0x...`) destination address. It is the underlying mechanism for options 2 and 3 above.

Expand All @@ -62,7 +68,7 @@

### Migration milestone

Address association must be completed prior to deprecation of all Cosmos, CosmWasm and IBC related functionality, slated for **June 15, 2026**. After deprecation:
IBC has already been disabled, in both directions, by Proposals [#116](https://seistream.app/proposals/116), [#120](https://seistream.app/proposals/120), and [#121](https://seistream.app/proposals/121). Address association must still be completed prior to deprecation of the remaining Cosmos and CosmWasm functionality, slated for **June 15, 2026**. After deprecation:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This line was rewritten but still presents June 15, 2026 as a future deadline ("must still be completed prior to") — that date is roughly six weeks in the past. For the exchange/custodian audience this is the most actionable sentence on the page, so a past date phrased as a deadline is worse here than elsewhere.

The PR description flags this as a deliberate follow-up because the actual Cosmos/CosmWasm shutdown status is unknown, which is a fair call — guessing a new date would be worse. But since the sentence was already being edited, consider hedging the tense rather than leaving it reading as upcoming, e.g. "was slated for June 15, 2026; confirm current status with the Sei team." Same applies to learn/hardware-wallets.mdx:17.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[suggestion] This PR's whole purpose is retiring deadlines that have already passed, but this rewritten sentence still presents June 15, 2026 as an upcoming milestone — that date is ~7 weeks in the past as of the Prop 121 activation this PR documents. An exchange reading "must still be completed prior to ... slated for June 15, 2026" gets a self-contradictory instruction.

I understand from the PR description that the actual Cosmos/CosmWasm shutdown status is unknown and you'd rather not guess — that's the right call on the substance. But since the line is already being edited, consider neutralizing the tense rather than leaving a future-framed past date, e.g. "...slated for June 15, 2026; contact Sei support to confirm the current status of the Cosmos interface shutdown." Same issue at learn/hardware-wallets.mdx:17, which this PR doesn't touch.


- Exchanges and their users will not be able to access or transfer funds.
- Cosmos-native transaction interfaces will no longer be available. Exchanges will not be able to broadcast Cosmos-format transactions, sign with Cosmos key derivations against the live chain, or interact with the chain through Cosmos RPC endpoints.
Expand Down
Loading
Loading