From c0d0c206fc59744b8e7bbb97fdae00a092cd9ba8 Mon Sep 17 00:00:00 2001 From: alexander-sei Date: Sun, 2 Aug 2026 11:50:32 +0200 Subject: [PATCH 1/2] fix: IBC is closed in both directions, not exit-only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prop 121 ("Disable IBC Outbound") passed 2026-07-31 and set the ibc module's OutboundEnabled to false. Combined with Props 116/120 for inbound, IBC is now closed on Sei in both directions. This skill was written to the premise "inbound is disabled, exiting legacy ibc/... assets still works". That premise is now false everywhere it appears. Because this is an agent skill, the stale version did not just read wrong — ibc-bridging.md handed an agent a runnable `seid tx ibc-transfer transfer` command as the documented exit path, and that transaction now fails. ecosystem/ibc-bridging.md Rewritten as a closed-state reference rather than deleted, so the four inbound links keep working. Drops the exit command and the exit-only framing. Adds the current parameter state with queries an agent can run to re-verify, an explicit "what is no longer possible" list, and the point that matters most for users: legacy ibc/... balances are neither gone nor frozen — they stay in the bank module and still move within Sei, including through their ERC-20 pointers. Only the route off the chain is closed. ecosystem/bridges.md Inbound-only callout and decision-matrix row now cover both directions. Removes the "must bridge out before activation" claims, including for the Wormhole CosmWasm side, whose Portal Bridge exit depended on outbound IBC. ecosystem/participation-roles.md Retires the IBC relayer role — table row, the hermes/rly setup section, and the description. There are no packets left to relay. precompiles/cosmwasm-bridge.md, precompiles/overview.md, resources.md The IBC precompile (0x...1009) is marked do-not-use rather than "legacy": its transfer reverts. Corrects overview.md's claim that the legacy precompiles "remain functional", which is still true for Bank and the pointers but not for IBC. contracts/common-errors.md Replaces the IBC packet-timeout recovery flow, which recommended retrying with `timeout-packet`, with the actual cause and the fact that retrying cannot succeed. pointers/token-factory.md Removes the claim that TokenFactory denoms "can be sent via IBC immediately" — they cannot leave the chain at all now. Also swept: SKILL.md, SKILL-ECOSYSTEM.md, SKILL-CONTRACTS.md, README.md, apps-directory.md, tokens.md. Deliberately untouched: hermes.pyth.network in oracles.md and integration-defi.md — that is Pyth's Hermes price service, unrelated to the IBC relayer of the same name. SKILL.md's frontmatter description is also unchanged, so trigger selection (including the "How do I use the IBC precompile on Sei?" case in tests/run.ts) behaves exactly as before — the skill should still be selected for IBC questions so it can explain that IBC is closed. Co-Authored-By: Claude Opus 5 --- README.md | 10 +- skill/SKILL-CONTRACTS.md | 2 +- skill/SKILL-ECOSYSTEM.md | 14 +-- skill/SKILL.md | 12 +-- skill/references/contracts/common-errors.md | 17 ++-- skill/references/contracts/tokens.md | 2 +- skill/references/ecosystem/apps-directory.md | 6 +- skill/references/ecosystem/bridges.md | 14 +-- skill/references/ecosystem/ibc-bridging.md | 99 +++++++++++-------- .../ecosystem/participation-roles.md | 22 +---- skill/references/pointers/token-factory.md | 3 +- .../references/precompiles/cosmwasm-bridge.md | 30 ++---- skill/references/precompiles/overview.md | 4 +- skill/references/resources.md | 3 +- 14 files changed, 116 insertions(+), 122 deletions(-) diff --git a/README.md b/README.md index 65a77ce..9dc1c27 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ This skill provides AI coding assistants with deep knowledge of the Sei ecosyste ### Contracts — smart contracts and tooling - **EVM Contracts**: Foundry + Hardhat setup, deployment, fork testing -- **Precompiles**: All 11 Sei precompiles (Staking, Governance, Bank, Addr, Oracle, IBC, Pointer, P256, etc.) +- **Precompiles**: All 11 Sei precompiles (Staking, Governance, Bank, Addr, Pointer, P256, etc.; Oracle and IBC are retired/closed) - **Pointer Contracts**: Cross-VM asset bridging between EVM and Cosmos - **Verification**: Seiscan (Sourcify) verification flows for Foundry and Hardhat - **Performance**: Load testing, OCC-aware design, Sei-specific gas optimization @@ -27,11 +27,11 @@ This skill provides AI coding assistants with deep knowledge of the Sei ecosyste ### Ecosystem — apps, integration, participation - **dApps directory**: DEX, lending, perps, RWA, NFT, gaming, infra - **DeFi integrations**: DragonSwap, Yei, Takara, Saphyre, Pyth oracles, USDC -- **Bridges**: LayerZero V2 (OFT), Wormhole, Axelar, IBC, CCTP, ThirdWeb +- **Bridges**: LayerZero V2 (OFT), Wormhole, Axelar, CCTP, ThirdWeb (IBC is closed in both directions) - **RPC endpoints**: public, community, paid SaaS providers with failover patterns - **Oracles**: Chainlink, Pyth (+ VRF), API3, RedStone, native oracle precompile - **Indexers**: The Graph, Goldsky, Dune Analytics, Moralis, Goldrush -- **Participation roles**: validator, RPC provider, indexer operator, oracle relayer, IBC relayer +- **Participation roles**: validator, RPC provider, indexer operator, oracle relayer - **Grants**: Sei Foundation Grants, Ecosystem Fund, Creator Fund - **AI Tooling**: Sei MCP Server, Cambrian Agent Kit, x402 @@ -199,8 +199,8 @@ skill/ └── ecosystem/ # ── Domain: Ecosystem ────────────────── ├── apps-directory.md # dApps grouped by category ├── integration-defi.md # DEX/lending integration patterns - ├── bridges.md # LayerZero, Wormhole, Axelar, IBC, CCTP - ├── ibc-bridging.md # IBC + legacy bridging deep dive + ├── bridges.md # LayerZero, Wormhole, Axelar, CCTP + ├── ibc-bridging.md # IBC closed-state reference ├── rpc-providers.md # Public + paid RPC endpoints ├── rpc-agent-skills.md # 17 canonical RPC skills, retry, response shapes ├── oracles.md # Chainlink, Pyth, API3, RedStone, VRF diff --git a/skill/SKILL-CONTRACTS.md b/skill/SKILL-CONTRACTS.md index fc846ae..8a11f13 100644 --- a/skill/SKILL-CONTRACTS.md +++ b/skill/SKILL-CONTRACTS.md @@ -33,7 +33,7 @@ Use this Skill when the user asks for: - EVM smart contract development on Sei (Solidity, Hardhat, Foundry) - Using Sei precompiles (Staking, Governance, Distribution, Oracle, JSON, P256) -- CosmWasm bridge precompiles (Addr, Bank, CosmWasm, IBC, Pointer, PointerView) +- CosmWasm bridge precompiles (Addr, Bank, CosmWasm, Pointer, PointerView; IBC is closed) - Pointer contracts and cross-VM asset bridging (ERC20↔CW20, ERC721↔CW721, ERC20↔native) - Token creation (ERC20/721/1155, TokenFactory native denoms) - Contract verification on Seiscan diff --git a/skill/SKILL-ECOSYSTEM.md b/skill/SKILL-ECOSYSTEM.md index f0b056e..e741dc7 100644 --- a/skill/SKILL-ECOSYSTEM.md +++ b/skill/SKILL-ECOSYSTEM.md @@ -8,7 +8,7 @@ description: > Chainlink oracles on Sei", "set up The Graph / Goldsky subgraph for Sei", "set up a Sei full node", "how do I delegate SEI to a validator", "submit a governance proposal on Sei", "how do I become a Sei validator / RPC provider - / indexer operator / oracle relayer / IBC relayer", "apply for a Sei grant", + / indexer operator / oracle relayer", "apply for a Sei grant", "Sei Foundation grants / Ecosystem Fund / Creator Fund", "Sei MCP Server", "Cambrian Agent Kit", or any ecosystem participation, integration, or infrastructure question on Sei. Ecosystem-focused variant — apps directory, @@ -35,14 +35,14 @@ Use this Skill when the user asks for: - Sei dApps directory by category (DEX, lending, perps, RWA, NFT, gaming, infra, AI) - Integration patterns for DeFi protocols (DragonSwap, Yei, Takara, Saphyre) -- Bridges (LayerZero V2, Circle CCTP v2; Wormhole legacy/verify-first); inbound IBC disabled (SIP-3, legacy/exit-only) +- Bridges (LayerZero V2, Circle CCTP v2; Wormhole verify-first); IBC closed in both directions - RPC endpoints — public, community, and paid providers + failover patterns - Oracle integration (Chainlink, Pyth, API3, RedStone, VRF — the native oracle precompile is shut off) - Indexer setup (The Graph, Goldsky, Dune, Moralis, Goldrush) - Node operations (full node setup, state sync, snapshots, `seid` CLI) - Validator setup (key management, HSM, slashing, monitoring) - Staking, delegation, governance proposals -- Participation roles (validator, RPC provider, indexer operator, oracle relayer, IBC relayer) +- Participation roles (validator, RPC provider, indexer operator, oracle relayer) - Grants and builder programs (Sei Foundation, Ecosystem Fund, Creator Fund) - AI tooling (Sei MCP Server, Cambrian Agent Kit) - Payments (USDC transfers, x402 HTTP-native micropayments) @@ -66,7 +66,7 @@ These facts must inform every Sei ecosystem answer: 1. **Oracles**: Pyth (pull) for sub-second latency; Chainlink (push) for production DeFi defaults; API3 / RedStone as alternatives. The native oracle precompile is **retired (shut off July 2026)** — queries revert; do not use it 2. **Indexers**: The Graph for custom query workloads; Goldsky for real-time CDC; Dune for analytics -3. **Bridges**: LayerZero V2 OFT for omnichain tokens; CCTP for native USDC. Wormhole (NTT/WTT) is supported per Wormhole but **not documented by Sei** — verify first. Inbound IBC is disabled (SIP-3) — not a path for new transfers +3. **Bridges**: LayerZero V2 OFT for omnichain tokens; CCTP for native USDC. Wormhole (NTT/WTT) is supported per Wormhole but **not documented by Sei** — verify first. IBC is closed in both directions — not a path for any transfer 4. **RPC**: Sei Foundation primary + community fallback for free; paid SaaS (QuickNode, Alchemy, dRPC) with multi-provider failover for production 5. **Networks**: Default to testnet (`atlantic-2`, chain ID 1328) unless explicitly mainnet 6. **Validators**: HSM-backed key management; uptime monitoring; participation in governance @@ -141,8 +141,8 @@ For agent-grade RPC patterns, see the 17 canonical skills in [ecosystem/rpc-agen ### Apps + integrations - **dApps directory by category:** [ecosystem/apps-directory.md](references/ecosystem/apps-directory.md) - **DeFi integration patterns (DEXes, lending):** [ecosystem/integration-defi.md](references/ecosystem/integration-defi.md) -- **Bridges (LayerZero V2, CCTP; Wormhole verify-first; IBC legacy/exit-only):** [ecosystem/bridges.md](references/ecosystem/bridges.md) -- **IBC (legacy / exit-only — inbound disabled, SIP-3):** [ecosystem/ibc-bridging.md](references/ecosystem/ibc-bridging.md) +- **Bridges (LayerZero V2, CCTP; Wormhole verify-first):** [ecosystem/bridges.md](references/ecosystem/bridges.md) +- **IBC (closed both directions — Props 116/120 inbound, 121 outbound):** [ecosystem/ibc-bridging.md](references/ecosystem/ibc-bridging.md) ### Infrastructure - **RPC endpoints — public, community, paid:** [ecosystem/rpc-providers.md](references/ecosystem/rpc-providers.md) @@ -154,7 +154,7 @@ For agent-grade RPC patterns, see the 17 canonical skills in [ecosystem/rpc-agen - **Staking & governance:** [ecosystem/staking-governance.md](references/ecosystem/staking-governance.md) ### Participation -- **Participation roles (validator / RPC / indexer / oracle / IBC / grants):** [ecosystem/participation-roles.md](references/ecosystem/participation-roles.md) +- **Participation roles (validator / RPC / indexer / oracle / grants):** [ecosystem/participation-roles.md](references/ecosystem/participation-roles.md) - **AI tooling (Sei MCP Server, Cambrian, x402):** [ecosystem/ai-tooling.md](references/ecosystem/ai-tooling.md) - **Payments (USDC + x402):** [ecosystem/payments.md](references/ecosystem/payments.md) diff --git a/skill/SKILL.md b/skill/SKILL.md index f58d1b8..e5c2de4 100644 --- a/skill/SKILL.md +++ b/skill/SKILL.md @@ -41,7 +41,7 @@ This Skill covers three overlapping domains. Use it when the user asks for: ### Contracts (smart contracts + tooling) - EVM smart contract development on Sei (Solidity, Hardhat, Foundry) - Using Sei precompiles (Staking, Governance, Distribution, Oracle, JSON, P256) -- CosmWasm bridge precompiles (Addr, Bank, CosmWasm, IBC, Pointer, PointerView) +- CosmWasm bridge precompiles (Addr, Bank, CosmWasm, Pointer, PointerView; IBC is closed) - Pointer contracts and cross-VM asset bridging (ERC20↔CW20, ERC721↔CW721, ERC20↔native) - Token creation (ERC20/721/1155, TokenFactory native denoms) - Contract verification on Seiscan @@ -65,11 +65,11 @@ This Skill covers three overlapping domains. Use it when the user asks for: ### Ecosystem (apps + integration + participation) - Sei dApps directory by category (DEX, lending, perps, RWA, NFT, gaming, infra) - Integration patterns for DeFi protocols (DragonSwap, Yei, Takara, Saphyre) -- Bridges (LayerZero V2, Circle CCTP v2 for native USDC; Wormhole legacy/verify-first); inbound IBC disabled (SIP-3) +- Bridges (LayerZero V2, Circle CCTP v2 for native USDC; Wormhole verify-first); IBC closed in both directions - RPC endpoints — public, community, and paid providers - Oracle integration (Chainlink, Pyth, API3, RedStone, VRF; native precompile is shut off) - Indexer setup (The Graph, Goldsky, Dune, Moralis, Goldrush) -- Participation roles (validator, RPC provider, indexer operator, oracle relayer, IBC relayer) +- Participation roles (validator, RPC provider, indexer operator, oracle relayer) - Grants and builder programs (Sei Foundation, Ecosystem Fund, Creator Fund) - Node operations and validator setup - Staking, governance, and delegation @@ -207,8 +207,8 @@ When implementing changes, provide: ### Ecosystem — apps, integration, participation - **dApps directory by category:** [ecosystem/apps-directory.md](references/ecosystem/apps-directory.md) - **DeFi integration patterns (DEXes, lending):** [ecosystem/integration-defi.md](references/ecosystem/integration-defi.md) -- **Bridges (LayerZero V2, CCTP; Wormhole verify-first; IBC legacy/exit-only):** [ecosystem/bridges.md](references/ecosystem/bridges.md) -- **IBC (legacy / exit-only — inbound disabled, SIP-3):** [ecosystem/ibc-bridging.md](references/ecosystem/ibc-bridging.md) +- **Bridges (LayerZero V2, CCTP; Wormhole verify-first):** [ecosystem/bridges.md](references/ecosystem/bridges.md) +- **IBC (closed both directions — Props 116/120 inbound, 121 outbound):** [ecosystem/ibc-bridging.md](references/ecosystem/ibc-bridging.md) - **Payments (USDC + x402):** [ecosystem/payments.md](references/ecosystem/payments.md) - **RPC endpoints — public, community, paid:** [ecosystem/rpc-providers.md](references/ecosystem/rpc-providers.md) - **RPC agent skills (17 canonical patterns, retry, response shapes):** [ecosystem/rpc-agent-skills.md](references/ecosystem/rpc-agent-skills.md) @@ -217,7 +217,7 @@ When implementing changes, provide: - **Node operations:** [ecosystem/node-operations.md](references/ecosystem/node-operations.md) — setup, sync, snapshots, seictl - **Validators:** [ecosystem/validators.md](references/ecosystem/validators.md) — key management, HSM, slashing, monitoring - **Staking & governance:** [ecosystem/staking-governance.md](references/ecosystem/staking-governance.md) — delegation, proposals -- **Participation roles (validator, RPC, indexer, oracle, IBC relayer, grants):** [ecosystem/participation-roles.md](references/ecosystem/participation-roles.md) +- **Participation roles (validator, RPC, indexer, oracle, grants):** [ecosystem/participation-roles.md](references/ecosystem/participation-roles.md) - **AI tooling:** [ecosystem/ai-tooling.md](references/ecosystem/ai-tooling.md) — Sei MCP Server, Cambrian Agent Kit ### CLI — seid and JSON-RPC diff --git a/skill/references/contracts/common-errors.md b/skill/references/contracts/common-errors.md index 3e4ae58..348de6e 100644 --- a/skill/references/contracts/common-errors.md +++ b/skill/references/contracts/common-errors.md @@ -195,17 +195,16 @@ forge verify-contract \ ## IBC Errors -### IBC packet timeout -**Cause**: The IBC packet was not relayed within the timeout window. -**Fix**: Implement a reclaim flow. After timeout, the user can reclaim their tokens: -```bash -seid tx ibc-transfer timeout-packet [timeout-packet-details] --from mykey -``` -Always communicate to users that IBC transfers can timeout (rare, but possible). +### An IBC transfer fails or reverts +**Cause**: IBC is closed on Sei in both directions — inbound by Props 116/120, outbound by [Proposal 121](https://seistream.app/proposals/121) (2026-07-31). The `ibc` module rejects the transfer regardless of channel, recipient, or amount. This applies to `seid tx ibc-transfer transfer` and to the IBC precompile (`0x…1009`) equally. + +**Fix**: There is no IBC route on or off Sei. Do not retry, adjust the timeout, or try another channel. Use an EVM bridge instead — see [../ecosystem/bridges.md](../ecosystem/bridges.md). + +Existing `ibc/...` balances are **not** stuck: they remain in the bank module and still transfer between Sei accounts and through their ERC-20 pointers. Only the route off the chain is closed. See [../ecosystem/ibc-bridging.md](../ecosystem/ibc-bridging.md). ### `IBC denom not recognized` -**Cause**: The receiving chain doesn't know the `ibc/HASH` denom. -**Fix**: Query the denom trace to find the original denom: +**Cause**: A consumer doesn't know what an `ibc/HASH` denom represents. These denoms still exist and are still valid on Sei. +**Fix**: Query the denom trace — this is a local query and still works: ```bash seid q ibc-transfer denom-trace --node https://rpc.sei-apis.com ``` diff --git a/skill/references/contracts/tokens.md b/skill/references/contracts/tokens.md index 6b89cd0..e7208b1 100644 --- a/skill/references/contracts/tokens.md +++ b/skill/references/contracts/tokens.md @@ -110,7 +110,7 @@ Native tokens (not smart contracts) that live in the Cosmos bank module: | Token | Denom | Notes | |---|---|---| | SEI | `usei` | Gas token, staking | -| IBC USDC | `ibc/...` | Via IBC from noble, etc. | +| IBC USDC | `ibc/...` | Arrived via IBC from Noble, etc.; IBC is now closed, so no new inbound and no route out | | Factory tokens | `factory//` | Created via TokenFactory | ## Token Visibility by Wallet Type diff --git a/skill/references/ecosystem/apps-directory.md b/skill/references/ecosystem/apps-directory.md index 48a12af..e416edc 100644 --- a/skill/references/ecosystem/apps-directory.md +++ b/skill/references/ecosystem/apps-directory.md @@ -55,7 +55,7 @@ Integration tip: see [integration-defi.md](integration-defi.md) for router/comet | Project | Category | Site | Notes | |---|---|---|---| | **Kryptonite** | LST + DeFi | varies | Stake SEI for sSEI | -| **Stride** | Cross-chain LST | https://stride.zone | LST via IBC; bridge to EVM via pointer | +| **Stride** | Cross-chain LST | https://stride.zone | LST arrived via IBC; no new inbound route (IBC closed). Existing denoms bridge to EVM via pointer | ## NFT & Marketplaces @@ -111,9 +111,9 @@ See [addresses-wallets.md](../addresses-wallets.md) for setup and dual-address h | Bridge | Site | Notes | |---|---|---| | **LayerZero V2** | https://layerzero.network | OFT standard; Sei is a LayerZero V2 endpoint | -| **Wormhole** | https://wormhole.com | SeiEVM supported per Wormhole (NTT/WTT); not documented by Sei — verify. CosmWasm side legacy/exit-only | +| **Wormhole** | https://wormhole.com | SeiEVM supported per Wormhole (NTT/WTT); not documented by Sei — verify. CosmWasm side closed | | **Circle CCTP v2** | https://developers.circle.com/cctp | Native USDC, burn-and-mint | -| **IBC** | — | Legacy/exit-only — **inbound IBC disabled** (SIP-3, pacific-1 Prop 116 / atlantic-2 #247) | +| **IBC** | — | **Closed both directions** — inbound Props 116/120, outbound Prop 121. Not a route for any transfer. | See [bridges.md](bridges.md) for integration details and addresses. diff --git a/skill/references/ecosystem/bridges.md b/skill/references/ecosystem/bridges.md index 1554ab8..ebff73f 100644 --- a/skill/references/ecosystem/bridges.md +++ b/skill/references/ecosystem/bridges.md @@ -1,13 +1,13 @@ --- title: Bridges to/from Sei -description: Bridges on Sei — LayerZero V2 (OFT) and Circle CCTP v2 (native USDC) are the documented EVM bridges, plus the official Sei bridge UI. Wormhole is verify-first (not Sei-documented); inbound IBC is disabled under SIP-3. +description: Bridges on Sei — LayerZero V2 (OFT) and Circle CCTP v2 (native USDC) are the documented EVM bridges, plus the official Sei bridge UI. Wormhole is verify-first (not Sei-documented); IBC is closed in both directions. --- # Bridges to/from Sei -How users and contracts move assets and messages between Sei and other chains. The EVM bridges **Sei documents and recommends** are **LayerZero V2** (Sei is a full LayerZero V2 endpoint) and **Circle CCTP v2** (native USDC); the official UI is the **Sei bridge dashboard** / Thirdweb. Wormhole is supported at the protocol level but is **not documented by Sei** and its Sei CosmWasm side is legacy/exit-only — see the caveat below. Pick the bridge by the asset, not by habit. +How users and contracts move assets and messages between Sei and other chains. The EVM bridges **Sei documents and recommends** are **LayerZero V2** (Sei is a full LayerZero V2 endpoint) and **Circle CCTP v2** (native USDC); the official UI is the **Sei bridge dashboard** / Thirdweb. Wormhole is supported at the protocol level but is **not documented by Sei** and its Sei CosmWasm side is closed — see the caveat below. Pick the bridge by the asset, not by habit. -> **Inbound IBC is disabled under SIP-3** (pacific-1 [Proposal 116](https://www.mintscan.io/sei/proposals/116); atlantic-2 testnet **#247**). IBC assets from Cosmos chains can no longer arrive on Sei — treat IBC as legacy/exit-only and use an EVM bridge for new inbound transfers. See [ibc-bridging.md](ibc-bridging.md). +> **IBC is closed on Sei in both directions.** Inbound was disabled by pacific-1 [Proposal 116](https://www.mintscan.io/sei/proposals/116) (atlantic-2 testnet **#247**); outbound was disabled by [Proposal 121](https://seistream.app/proposals/121) on 2026-07-31. Assets can neither arrive on Sei nor leave it via IBC. Existing `ibc/...` balances remain usable *within* Sei. Use an EVM bridge for all transfers. See [ibc-bridging.md](ibc-bridging.md). > **Always verify bridge contract addresses, endpoint IDs, and CCTP domain IDs** against each bridge's official docs and on [Seiscan](https://seiscan.io) before sending real value. Bridges are high-value targets and addresses change across version upgrades — never hardcode them from memory. @@ -20,7 +20,7 @@ How users and contracts move assets and messages between Sei and other chains. T | An **existing asset** only Wormhole covers (some Solana-native tokens) | **Wormhole** (WTT/NTT) — *verify first* | wrapped / native-token transfer | Supported per Wormhole's network list, but **not documented by Sei**; confirm current support and prefer LayerZero V2 / CCTP where they cover the asset | | **Arbitrary cross-chain messages** / calls + transfers | **LayerZero** (OApp) | GMP messaging | Generalized message passing via Sei's LayerZero V2 endpoint | | **End users** bridging in a UI, no integration | **Sei bridge dashboard** / Thirdweb | aggregated routing | Drop-in UX, no contract work | -| Assets coming **from a Cosmos chain via IBC** | **Not available inbound** | — | Inbound IBC disabled (pacific-1 Prop 116 / atlantic-2 #247, SIP-3) — bridge via an EVM route instead | +| Assets moving **to or from a Cosmos chain via IBC** | **Not available — either direction** | — | Inbound disabled (Prop 116 / #247), outbound disabled (Prop 121). No EVM alternative reaches Cosmos chains; there is no route. | ## LayerZero V2 @@ -78,7 +78,7 @@ For an *already-deployed* ERC-20 you can't reissue, use an **OFT Adapter** (lock Wormhole's [supported-networks list](https://wormhole.com/docs/products/reference/supported-networks/) shows a **SeiEVM** entry (chain id 1329) with NTT, WTT (wrapped token transfers), and CCTP routing on mainnet. **But Sei's own docs provide no Wormhole EVM integration guide — the documented, recommended EVM bridges are LayerZero V2 and Circle CCTP.** Treat Wormhole as verify-first: -- **The Wormhole *CosmWasm* side on Sei is legacy/exit-only.** Wrapped assets that arrived on the Cosmos side (e.g. `USDCso`, Wormhole-bridged `WETH`, `USDCet`) must be **bridged out** via the legacy [Portal Bridge](https://legacy.portalbridge.com) under SIP-3 — see https://docs.sei.io/learn/sip-03-migration. Do not route new inbound transfers through it. +- **The Wormhole *CosmWasm* side on Sei is closed.** Wrapped assets that arrived on the Cosmos side (e.g. `USDCso`, Wormhole-bridged `WETH`, `USDCet`) are still held in the bank module and still move within Sei, but the exit route via the legacy Portal Bridge depended on outbound IBC and no longer works — see https://docs.sei.io/learn/sip-03-migration. Do not route transfers through it in either direction. - **For your own multichain token,** Wormhole **NTT** is the analogue of LayerZero's OFT; **WTT** is the lock/mint wrapped path. If you specifically need Wormhole (coverage LayerZero/CCTP lack), **verify the current SeiEVM contract addresses and the exact SDK chain handle** on https://wormhole.com/docs/products/reference/supported-networks/ before integrating — do not assume them from memory. When LayerZero V2 (OFT / messaging) or CCTP (USDC) cover your case, prefer them: they have first-class Sei documentation and deployed-contract tables. @@ -136,6 +136,6 @@ For high-value transfers, prefer: - **EVM bridges accept `0x...` addresses on the Sei side.** Don't pass `sei1...` addresses to LayerZero / CCTP — they expect EVM format. (Wormhole lists Sei twice — a CosmWasm `Sei` side and an EVM `SeiEVM` side; if you use it, confirm the exact SDK handle on Wormhole's docs.) - **Use legacy `gasPrice` for Sei-side claim/redeem/mint transactions.** Sei has no EIP-1559 base-fee burn — set a single `gasPrice`, not `maxFeePerGas`/`maxPriorityFeePerGas`. The minimum gas price is governance-adjustable (currently ~50 gwei on mainnet — query `eth_gasPrice` for the live floor); an under-priced redemption just sits in the mempool. See https://docs.sei.io/evm/differences-with-ethereum. -- **Inbound IBC is disabled (SIP-3).** Don't route assets onto Sei via IBC; holders of legacy `ibc/...` assets must bridge *out* (e.g. swap USDC.n → native USDC via CCTP) before activation. See [ibc-bridging.md](ibc-bridging.md) and https://docs.sei.io/learn/sip-03-migration. -- **CosmWasm is deprecated for new development (SIP-3).** Deploy ERC-20 / OFT contracts directly; pointer contracts and the IBC precompile are legacy migration tooling. +- **IBC is closed in both directions.** Don't route assets onto Sei via IBC, and don't tell holders of legacy `ibc/...` assets to bridge, migrate, or exit — there is no route off the chain. Their balances are intact and still transfer within Sei, including through ERC-20 pointers. See [ibc-bridging.md](ibc-bridging.md). +- **CosmWasm is deprecated for new development (SIP-3).** Deploy ERC-20 / OFT contracts directly. Pointer contracts remain useful for cross-VM access to existing denoms; the IBC precompile does not — its `transfer` cannot succeed with outbound IBC disabled. - **Verify every contract address, EID, and CCTP domain ID** against the bridge's official docs and on Seiscan before deploying. diff --git a/skill/references/ecosystem/ibc-bridging.md b/skill/references/ecosystem/ibc-bridging.md index 4fd13f6..6246239 100644 --- a/skill/references/ecosystem/ibc-bridging.md +++ b/skill/references/ecosystem/ibc-bridging.md @@ -1,68 +1,89 @@ --- -title: IBC on Sei (legacy / exit-only) -description: Inter-Blockchain Communication (IBC) on Sei is legacy — inbound IBC is disabled under SIP-3. This covers IBC mechanics for exiting legacy ibc/... assets. For new bridging use the EVM bridges in bridges.md. +title: IBC on Sei (closed — both directions) +description: Inter-Blockchain Communication (IBC) is disabled on Sei in both directions. Inbound was disabled under SIP-3; outbound was disabled by Proposal 121. Legacy ibc/... balances still exist and still move within Sei, but there is no route on or off the chain via IBC. For bridging use the EVM bridges in bridges.md. --- -# IBC on Sei (legacy / exit-only) +# IBC on Sei (closed — both directions) -> **Inbound IBC is disabled under SIP-3.** On mainnet, pacific-1 [Proposal 116](https://www.mintscan.io/sei/proposals/116) disables inbound IBC transfers and [Proposal 115](https://www.mintscan.io/sei/proposals/115) freezes new CosmWasm; the atlantic-2 testnet equivalents are **#247** (Disable IBC Inbound) and **#246** (Disable CosmWasm Uploads). IBC assets from Cosmos chains can **no longer arrive** on Sei. Do **not** present IBC as a way to bring assets onto Sei. +> **IBC is closed on Sei. Do not present it as a way to move assets on or off the chain, in either direction.** > -> **For new inbound/outbound bridging, use the EVM bridges — LayerZero V2, Wormhole, or Circle CCTP for native USDC.** See [bridges.md](bridges.md). This file is retained for the one IBC action that still matters: **exiting** legacy `ibc/...` assets. +> - **Inbound** is disabled — pacific-1 [Proposal 116](https://www.mintscan.io/sei/proposals/116) (with [Proposal 120](https://www.mintscan.io/sei/proposals/120)) set the `ibc` module's `InboundEnabled` to `false`. The atlantic-2 testnet equivalent is **#247** (Disable IBC Inbound). +> - **Outbound** is disabled — [Proposal 121](https://seistream.app/proposals/121) ("Disable IBC Outbound") passed 2026-07-31 and set `OutboundEnabled` to `false`. +> +> Related: [Proposal 115](https://www.mintscan.io/sei/proposals/115) froze new CosmWasm uploads (atlantic-2 **#246**). +> +> **For any bridging, use the EVM bridges — LayerZero V2, Circle CCTP for native USDC, or Wormhole (verify first).** See [bridges.md](bridges.md). -## Why IBC is legacy on Sei +## Current parameter state -Sei is EVM-first as of SIP-3. IBC operated on the **Cosmos side** of Sei using `sei1...` addresses. With inbound IBC disabled, the only relevant flow is *exiting*: holders of legacy `ibc/...` assets (e.g. USDC.n bridged via Noble) must move them off the Cosmos side — swap to native USDC (bridge out via CCTP) or transfer out — before the upgrade fully activates. Migration routes and the affected-asset table are in https://docs.sei.io/learn/sip-03-migration. +Both governing parameters are `false` on mainnet: -## IBC mechanics (for exit / historical context) +``` +cosmos/params/v1beta1/params?subspace=ibc&key=InboundEnabled -> "false" +cosmos/params/v1beta1/params?subspace=ibc&key=OutboundEnabled -> "false" +``` -An IBC transfer is relayed packet-by-packet; assets arrive as `ibc/` denoms. To send a Cosmos-side asset **out** of Sei to another Cosmos chain: +Query them directly rather than trusting a proposal page, since a later proposal could change either one: ```bash -# Transfer tokens from Sei to another Cosmos chain (exit flow) -seid tx ibc-transfer transfer \ - transfer \ # port - channel-0 \ # channel (e.g. Sei→Osmosis) - \ - 1000000usei \ # amount + denom - --from \ - --chain-id pacific-1 \ - --node https://rpc.sei-apis.com \ - --fees 20000usei \ - --timeout-timestamp $(date -d "+1 hour" +%s)000000000 +seid q params subspace ibc InboundEnabled --node https://rpc.sei-apis.com +seid q params subspace ibc OutboundEnabled --node https://rpc.sei-apis.com ``` -Resolve what an `ibc/...` denom represents: +## What this means for existing balances + +**Legacy `ibc/...` assets are not gone, and they are not frozen.** They remain in the bank module and behave like any other native denom *inside* Sei: + +- They still appear in `seid q bank balances `. +- They still transfer between Sei accounts. +- They still work through their ERC-20 pointer contracts, so EVM contracts can still read and move them. +- They can still be swapped on a Sei DEX, subject to that DEX having liquidity for the pair. + +What is closed is the **redemption path**: there is no way to send an `ibc/...` asset back to its origin chain, and no way for a new one to arrive. + +Resolving what a denom represents still works — that is a local query, not a transfer: ```bash seid q ibc-transfer denom-trace --node https://rpc.sei-apis.com ``` -Check current channels at https://www.mintscan.io/sei/relayers. +## What is no longer possible -## IBC precompile (legacy) +- Sending assets **out** of Sei over IBC. `seid tx ibc-transfer transfer` fails — the module rejects outbound transfers regardless of channel, recipient, or amount. +- Receiving assets **into** Sei over IBC from any Cosmos chain. +- The exit and migration routes Sei previously documented for legacy holders. Noble/CCTP for `USDC.n` and Skip:Go for ATOM and WBTC all depended on outbound IBC and no longer function. +- Opening or recovering IBC channels and light clients for asset-transfer purposes. -The IBC precompile (`0x0000000000000000000000000000000000001009`) exposed IBC transfers to the EVM for CosmWasm-adjacent workflows. It is **legacy** — CosmWasm is deprecated (SIP-3) and inbound IBC is disabled, so it is not a path for new builds. The interface is documented for completeness only: +Anything phrased as "migrate your IBC assets before the proposal activates" is **out of date** — that window closed with Proposal 121. -```solidity -interface IIBC { - function transfer( - string memory toAddress, string memory port, string memory channel, - string memory denom, uint256 amount, - uint64 revisionNumber, uint64 revisionHeight, uint64 timeoutTimestamp, - string memory memo - ) external payable returns (uint64 sequence); -} -``` +## IBC precompile (`0x…1009`) — do not use + +The IBC precompile at `0x0000000000000000000000000000000000001009` exposed IBC transfers to the EVM. **Its `transfer` function cannot succeed now that outbound IBC is disabled.** Do not include it in new contracts and do not present it as a bridging option; existing contracts that call it will revert on that path. + +For cross-VM asset access that *does* still work — moving native SEI, factory tokens, and existing `ibc/...` denoms between the EVM and Cosmos layers within Sei — see the Bank and Pointer precompiles in [../precompiles/cosmwasm-bridge.md](../precompiles/cosmwasm-bridge.md). -## New bridging → use the EVM bridges +## For new bridging → use the EVM bridges -For omnichain tokens, wrapped assets, native USDC, or cross-chain messaging, use the EVM bridges. The canonical, Sei-documented patterns are **LayerZero V2 OFT** and **Circle CCTP v2** — addresses/EIDs live in [bridges.md](bridges.md) and on https://docs.sei.io/evm/bridging/layerzero. (Wormhole supports SeiEVM per its own network list but is not documented by Sei — verify first; see [bridges.md](bridges.md).) End users can bridge through the official [Sei bridge dashboard](https://dashboard.sei.io/bridge) or an embedded Thirdweb widget (https://docs.sei.io/evm/bridging/thirdweb). +| Need | Use | +|---|---| +| Omnichain token across EVM chains | **LayerZero V2 OFT** | +| Native USDC | **Circle CCTP v2** | +| Coverage LayerZero/CCTP lack | **Wormhole NTT/WTT** — verify first, not documented by Sei | +| End-user bridging UI | [Sei bridge dashboard](https://dashboard.sei.io/bridge) or the [Thirdweb widget](https://docs.sei.io/evm/bridging/thirdweb) | -## Bridge checklist +Addresses, EIDs and the full comparison are in [bridges.md](bridges.md). -- [ ] Do **not** plan inbound IBC — it is disabled (SIP-3). Use an EVM bridge. -- [ ] For legacy `ibc/...` holdings, plan the **exit** before SIP-3 fully activates (CCTP for USDC). +## Checklist + +- [ ] Do **not** plan any IBC transfer, inbound or outbound. Use an EVM bridge. +- [ ] Do **not** tell a holder to bridge, migrate, or exit `ibc/...` assets — there is no route. +- [ ] Do tell them their balances are intact and still usable within Sei. +- [ ] Do **not** call the IBC precompile (`0x…1009`) in new contracts. - [ ] Verify any bridge is audited and has significant TVL before integrating. - [ ] Test the full round trip on testnet (atlantic-2) first. - [ ] For LayerZero: deploy + wire your OFT on both chains before launch; quote the native fee with `quoteSend`. - [ ] Use legacy `gasPrice` for Sei-side claim/redeem transactions (no EIP-1559 base-fee burn). + +## Historical context + +IBC operated on the **Cosmos side** of Sei using `sei1...` addresses, with assets arriving as `ibc/` denoms relayed packet-by-packet by third-party relayers. Sei is EVM-first as of SIP-3, and the chain no longer participates in IBC in either direction. Running an IBC relayer for Sei is therefore no longer a viable role — see [participation-roles.md](participation-roles.md). diff --git a/skill/references/ecosystem/participation-roles.md b/skill/references/ecosystem/participation-roles.md index bf733e5..de2e314 100644 --- a/skill/references/ecosystem/participation-roles.md +++ b/skill/references/ecosystem/participation-roles.md @@ -1,11 +1,13 @@ --- title: Sei Ecosystem Participation Roles -description: How to participate in the Sei ecosystem as a validator, RPC provider, indexer operator, oracle relayer, IBC relayer, or grant recipient. Pointers into deeper references for each role. +description: How to participate in the Sei ecosystem as a validator, RPC provider, indexer operator, oracle relayer, or grant recipient. Pointers into deeper references for each role. Running an IBC relayer is no longer viable — IBC is closed on Sei. --- # Sei Ecosystem Participation Roles -Beyond building dApps, the Sei ecosystem has operational roles that earn revenue or influence: validators, RPC providers, indexer operators, oracle relayers, IBC relayers, and grants/builder programs. This page is a router — most roles have dedicated reference files; this is the index. +Beyond building dApps, the Sei ecosystem has operational roles that earn revenue or influence: validators, RPC providers, indexer operators, oracle relayers, and grants/builder programs. This page is a router — most roles have dedicated reference files; this is the index. + +> **IBC relaying is no longer a Sei role.** IBC is closed in both directions (Props 116/120 inbound, [121](https://seistream.app/proposals/121) outbound), so there are no packets to relay. See [ibc-bridging.md](ibc-bridging.md). ## Quick decision: which role? @@ -15,7 +17,6 @@ Beyond building dApps, the Sei ecosystem has operational roles that earn revenue | **RPC provider** | Hardware (high-spec node) | Medium-high | Paid endpoints, infrastructure SLAs | | **Indexer operator** | Hardware (DB + node) | Medium | Per-query / subscription fees | | **Oracle relayer** | Operational | Medium | Off-chain operator role; revenue depends on the oracle network | -| **IBC relayer** | Infrastructure + transaction fees on both chains | Medium | Optional fee-routing or altruistic | | **Grants / Builder program** | Building a dApp | Varies | One-time or milestone-based grant | ## Validator @@ -77,19 +78,6 @@ Publish off-chain data (prices, randomness, weather, etc.) on-chain via an oracl → Oracle integration patterns: [oracles.md](oracles.md) -## IBC relayer - -Run a relayer between Sei and another Cosmos chain (Osmosis, Stride, Noble, etc.). Relayers ferry IBC packets — without them, IBC transfers stall. - -**Software**: `hermes` (Rust) or `rly` (Go). - -**Operational**: must hold gas tokens on both chains to pay submission fees; profits are typically thin or altruistic. - -**Why bother**: ecosystem service; some chains offer fee subsidies for major routes. - -→ See [ibc-bridging.md](ibc-bridging.md) for relayer overview. -→ Channel topology: https://www.mintscan.io/sei/relayers - ## Grants and builder programs Sei Foundation operates several funding programs: @@ -114,7 +102,7 @@ Sei Foundation operates several funding programs: - Indexer setup: [indexers.md](indexers.md) - Oracles: [oracles.md](oracles.md) - RPC endpoint list: [rpc-providers.md](rpc-providers.md) -- IBC overview: [ibc-bridging.md](ibc-bridging.md) +- IBC status (closed, and what that means for existing balances): [ibc-bridging.md](ibc-bridging.md) - Staking from a wallet (delegators, not validators): [staking-governance.md](staking-governance.md) ## Sei-specific notes diff --git a/skill/references/pointers/token-factory.md b/skill/references/pointers/token-factory.md index 94c9465..9395827 100644 --- a/skill/references/pointers/token-factory.md +++ b/skill/references/pointers/token-factory.md @@ -140,7 +140,6 @@ seid q evm pointer NATIVE factory/sei1.../MYTOKEN # Token is now usable in: # - Cosmos wallets via factory/sei1.../MYTOKEN denom # - EVM wallets via the ERC20 pointer address -# - IBC transfers as a native asset # - DeFi protocols that accept ERC20 ``` @@ -167,5 +166,5 @@ interface IBank { - **Decimals**: native denoms don't have enforced decimals — you define them in metadata and must be consistent in your frontend - **ERC20 pointer decimals**: the ERC20 pointer uses the decimals you set in denom metadata; default is 0 if not set — always set decimals before registering the pointer - **Admin = creator by default**: the address that runs `create-denom` is the admin; transfer admin to a multisig or smart contract for production -- **IBC-native**: TokenFactory tokens can be sent via IBC immediately without any extra setup, unlike ERC20 tokens +- **No IBC route**: IBC is closed on Sei in both directions, so TokenFactory denoms cannot leave the chain over IBC. They are still native bank denoms and move freely *within* Sei, in Cosmos wallets and through their ERC-20 pointers. - **Supply tracking**: total supply lives in the Cosmos bank module; the ERC20 pointer reflects this same supply diff --git a/skill/references/precompiles/cosmwasm-bridge.md b/skill/references/precompiles/cosmwasm-bridge.md index 4375373..5f40473 100644 --- a/skill/references/precompiles/cosmwasm-bridge.md +++ b/skill/references/precompiles/cosmwasm-bridge.md @@ -1,11 +1,11 @@ --- title: CosmWasm Bridge Precompiles -description: Addr, Bank, CosmWasm, IBC, Pointer, and PointerView precompiles for cross-VM interaction between the EVM and Cosmos layer on Sei. Legacy/compatibility focused — CosmWasm is deprecated per SIP-3. +description: Addr, Bank, CosmWasm, Pointer, and PointerView precompiles for cross-VM interaction between the EVM and Cosmos layer on Sei. Legacy/compatibility focused — CosmWasm is deprecated per SIP-3. The IBC precompile is unusable: IBC is closed in both directions. --- # CosmWasm Bridge Precompiles -> **Deprecation notice**: CosmWasm is deprecated per SIP-3 (initiated by mainnet [Proposal #99](https://www.mintscan.io/sei/proposals/99); new uploads/instantiation disabled by mainnet #115 / atlantic-2 testnet #246). These precompiles remain functional for existing integrations and legacy support, but new projects should use EVM-only with pointer contracts for cross-VM asset representation. +> **Deprecation notice**: CosmWasm is deprecated per SIP-3 (initiated by mainnet [Proposal #99](https://www.mintscan.io/sei/proposals/99); new uploads/instantiation disabled by mainnet #115 / atlantic-2 testnet #246). These precompiles remain functional for existing integrations and legacy support, but new projects should use EVM-only with pointer contracts for cross-VM asset representation. **Exception: the IBC precompile (`0x1009`) is not functional** — IBC is closed in both directions (Props 116/120 inbound, [121](https://seistream.app/proposals/121) outbound), so its `transfer` reverts. ## Address Summary @@ -14,7 +14,7 @@ description: Addr, Bank, CosmWasm, IBC, Pointer, and PointerView precompiles for | Bank | `0x0000000000000000000000000000000000001001` | Send native tokens from EVM contracts | | CosmWasm | `0x0000000000000000000000000000000000001002` | Execute CW contracts from EVM | | Addr | `0x0000000000000000000000000000000000001004` | Address conversion + account association | -| IBC | `0x0000000000000000000000000000000000001009` | Initiate IBC transfers from EVM | +| IBC | `0x0000000000000000000000000000000000001009` | **Do not use** — IBC closed both directions; `transfer` reverts | | Pointer | `0x000000000000000000000000000000000000100B` | Register pointer contracts | | PointerView | `0x000000000000000000000000000000000000100A` | Query pointer registrations | @@ -124,7 +124,7 @@ contract Distributor { // Query how much USDC a Cosmos address holds function getUSDCBalance(string memory account) external view returns (uint256) { - string memory usdcDenom = "ibc/..."; // IBC denom for USDC + string memory usdcDenom = "ibc/..."; // legacy IBC denom, still held and transferable within Sei return IBank(BANK).balance(account, usdcDenom); } } @@ -164,25 +164,13 @@ interface ICosmWasm { --- -## IBC Precompile (`0x1009`) — Legacy +## IBC Precompile (`0x1009`) — do not use -Initiate IBC transfers from EVM contracts. +**This precompile cannot perform a transfer.** IBC is closed on Sei in both directions — inbound by Props 116/120, outbound by [Proposal 121](https://seistream.app/proposals/121) (2026-07-31). `IIBC.transfer` reverts regardless of arguments. -```solidity -interface IIBC { - function transfer( - string memory toAddress, - string memory port, - string memory channel, - string memory denom, - uint256 amount, - uint64 revisionNumber, - uint64 revisionHeight, - uint64 timeoutTimestamp, - string memory memo - ) external payable returns (uint64 sequence); -} -``` +Do not include it in new contracts. Existing contracts that call it will revert on that path and need an alternative route — see [../ecosystem/bridges.md](../ecosystem/bridges.md) for the EVM bridges. + +To move native SEI, factory tokens, or existing `ibc/...` denoms between the EVM and Cosmos layers *within* Sei, use the Bank precompile (`0x1001`) and pointer contracts above; those still work. Full context in [../ecosystem/ibc-bridging.md](../ecosystem/ibc-bridging.md). --- diff --git a/skill/references/precompiles/overview.md b/skill/references/precompiles/overview.md index c66b185..7eaf384 100644 --- a/skill/references/precompiles/overview.md +++ b/skill/references/precompiles/overview.md @@ -19,13 +19,13 @@ Precompiles are fixed-address contracts deployed by the Sei protocol that expose | Governance | `0x0000000000000000000000000000000000001006` | Vote, submit proposals, deposit | | Distribution | `0x0000000000000000000000000000000000001007` | Claim staking rewards | | Oracle | `0x0000000000000000000000000000000000001008` | ❌ Retired (shut off July 2026) — queries revert; use a third-party oracle | -| IBC | `0x0000000000000000000000000000000000001009` | IBC transfers from EVM (legacy) | +| IBC | `0x0000000000000000000000000000000000001009` | **Do not use** — IBC is disabled in both directions; `transfer` cannot succeed | | PointerView | `0x000000000000000000000000000000000000100A` | Query pointer registrations | | Pointer | `0x000000000000000000000000000000000000100B` | Register pointer contracts | | Solo | `0x000000000000000000000000000000000000100C` | Claim/migrate legacy CW20 and CW721 tokens to EVM | | P256Verify | `0x0000000000000000000000000000000000001011` | Verify P-256 (secp256r1) signatures on-chain | -> Note: CosmWasm, CosmWasm bridge (Bank, IBC), and Solo precompiles are marked legacy because CosmWasm is deprecated per SIP-3. They remain functional for existing integrations. +> Note: CosmWasm, CosmWasm bridge (Bank, IBC), and Solo precompiles are marked legacy because CosmWasm is deprecated per SIP-3. Bank and the pointer precompiles remain functional for existing integrations. **The IBC precompile does not** — IBC is closed in both directions (Props 116/120 inbound, 121 outbound), so its `transfer` reverts. ## Setup: @sei-js/precompiles diff --git a/skill/references/resources.md b/skill/references/resources.md index f111e65..58905d8 100644 --- a/skill/references/resources.md +++ b/skill/references/resources.md @@ -89,7 +89,6 @@ Additional RPC providers: https://docs.sei.io/learn/rpc-providers | Bridge | Docs | |---|---| -| IBC channels | https://seiscan.io or https://www.mintscan.io/sei/relayers | | LayerZero | https://layerzero.network | | ThirdWeb Bridge | https://portal.thirdweb.com/connect/blockchain-api | @@ -156,7 +155,7 @@ Additional RPC providers: https://docs.sei.io/learn/rpc-providers | Staking precompile | `0x0000000000000000000000000000000000001005` | same | | Governance precompile | `0x0000000000000000000000000000000000001006` | same | | Oracle precompile (❌ retired July 2026 — queries revert) | `0x0000000000000000000000000000000000001008` | same | -| IBC precompile | `0x0000000000000000000000000000000000001009` | same | +| IBC precompile (❌ closed both directions — `transfer` reverts) | `0x0000000000000000000000000000000000001009` | same | | Multicall3 | `0xcA11bde05977b3631167028862bE2a173976CA11` | same | | Permit2 | `0xB952578f3520EE8Ea45b7914994dcf4702cEe578` | same | | USDC | `0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392` | `0x4fCF1784B31630811181f670Aea7A7bEF803eaED` | From 9396edee43e69a034acc1884d81956be89c8d7f5 Mon Sep 17 00:00:00 2001 From: alexander-sei Date: Sun, 2 Aug 2026 11:55:57 +0200 Subject: [PATCH 2/2] fix: correct Portal Bridge rationale and name both IBC precompile entrypoints MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two corrections from an adversarial review of the previous commit. bridges.md — the Wormhole CosmWasm bullet claimed the legacy Portal Bridge exit route "depended on outbound IBC and no longer works". That causal claim is wrong. Wormhole-bridged Cosmos-side assets (USDCso, WETH, USDCet) are not IBC vouchers and were not affected by Props 116/120/121 at all — sei-docs states this explicitly. Portal Bridge is unavailable as a route off Sei for its own reasons, not because of the IBC parameters. Reworded to say both facts without inventing a dependency between them, and restored the legacy.portalbridge.com link dropped in the rewrite. cosmwasm-bridge.md — the IBC precompile has two transfer entrypoints, `transfer` and `transferWithDefaultTimeout`. The note named only the first. Both call transferKeeper.Transfer (precompiles/ibc/ibc.go:169,255) and so both revert; says so now. Co-Authored-By: Claude Opus 5 --- skill/references/ecosystem/bridges.md | 2 +- skill/references/precompiles/cosmwasm-bridge.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/skill/references/ecosystem/bridges.md b/skill/references/ecosystem/bridges.md index ebff73f..15433ee 100644 --- a/skill/references/ecosystem/bridges.md +++ b/skill/references/ecosystem/bridges.md @@ -78,7 +78,7 @@ For an *already-deployed* ERC-20 you can't reissue, use an **OFT Adapter** (lock Wormhole's [supported-networks list](https://wormhole.com/docs/products/reference/supported-networks/) shows a **SeiEVM** entry (chain id 1329) with NTT, WTT (wrapped token transfers), and CCTP routing on mainnet. **But Sei's own docs provide no Wormhole EVM integration guide — the documented, recommended EVM bridges are LayerZero V2 and Circle CCTP.** Treat Wormhole as verify-first: -- **The Wormhole *CosmWasm* side on Sei is closed.** Wrapped assets that arrived on the Cosmos side (e.g. `USDCso`, Wormhole-bridged `WETH`, `USDCet`) are still held in the bank module and still move within Sei, but the exit route via the legacy Portal Bridge depended on outbound IBC and no longer works — see https://docs.sei.io/learn/sip-03-migration. Do not route transfers through it in either direction. +- **The Wormhole *CosmWasm* side on Sei is closed.** Wrapped assets that arrived on the Cosmos side (e.g. `USDCso`, Wormhole-bridged `WETH`, `USDCet`) are still held in the bank module and still move within Sei. These are **not** IBC vouchers and were **not** affected by the IBC proposals (#116/#120/#121) — but the legacy [Portal Bridge](https://legacy.portalbridge.com) is no longer available as a route off Sei, so there is no exit path for them either. See https://docs.sei.io/learn/sip-03-migration. Do not route transfers through it in either direction. - **For your own multichain token,** Wormhole **NTT** is the analogue of LayerZero's OFT; **WTT** is the lock/mint wrapped path. If you specifically need Wormhole (coverage LayerZero/CCTP lack), **verify the current SeiEVM contract addresses and the exact SDK chain handle** on https://wormhole.com/docs/products/reference/supported-networks/ before integrating — do not assume them from memory. When LayerZero V2 (OFT / messaging) or CCTP (USDC) cover your case, prefer them: they have first-class Sei documentation and deployed-contract tables. diff --git a/skill/references/precompiles/cosmwasm-bridge.md b/skill/references/precompiles/cosmwasm-bridge.md index 5f40473..7f4a393 100644 --- a/skill/references/precompiles/cosmwasm-bridge.md +++ b/skill/references/precompiles/cosmwasm-bridge.md @@ -166,7 +166,7 @@ interface ICosmWasm { ## IBC Precompile (`0x1009`) — do not use -**This precompile cannot perform a transfer.** IBC is closed on Sei in both directions — inbound by Props 116/120, outbound by [Proposal 121](https://seistream.app/proposals/121) (2026-07-31). `IIBC.transfer` reverts regardless of arguments. +**This precompile cannot perform a transfer.** IBC is closed on Sei in both directions — inbound by Props 116/120, outbound by [Proposal 121](https://seistream.app/proposals/121) (2026-07-31). Both entrypoints (`transfer` and `transferWithDefaultTimeout`) call the transfer keeper, which now rejects the message, so both revert regardless of arguments. Do not include it in new contracts. Existing contracts that call it will revert on that path and need an alternative route — see [../ecosystem/bridges.md](../ecosystem/bridges.md) for the EVM bridges.