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..15433ee 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. 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. @@ -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..7f4a393 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). Both entrypoints (`transfer` and `transferWithDefaultTimeout`) call the transfer keeper, which now rejects the message, so both revert 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` |