-
Notifications
You must be signed in to change notification settings - Fork 6
docs: retire IBC and tokenfactory usage guidance #66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,7 +31,6 @@ exceptions: | |
| - CLI | ||
| - SDK | ||
| - NFT | ||
| - IBC | ||
| - VRF | ||
| - JSON | ||
| - RocksDB | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,3 +17,11 @@ In addition, [Proposal 115](https://seistream.app/proposals/115) disables CosmWa | |
| **IBC is now disabled in both directions.** [Proposal 116](https://seistream.app/proposals/116) and [Proposal 120](https://seistream.app/proposals/120) set the `ibc` module's `InboundEnabled` parameter to `false`, and [Proposal 121](https://seistream.app/proposals/121) set `OutboundEnabled` to `false` on July 31, 2026. No asset can be bridged into or out of Sei over IBC, and IBC assets already on Sei can no longer be redeemed on their origin chain. See the [SIP-03 Migration Guide](/learn/sip-03-migration) for the full explanation and the list of affected assets. | ||
|
|
||
| </Danger> | ||
|
|
||
| ## Tokenfactory is not supported | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [suggestion] Worth reconsidering where this canonical notice lives. Six pages plus There's also a practical wrinkle: |
||
|
|
||
| <Warning> | ||
|
|
||
| Tokenfactory tutorials and development support have been retired as part of Sei's move to EVM-only under SIP-3. Do not create, mint, burn, administer, or build integrations around tokenfactory denoms. Legacy module and RPC surfaces may still exist for compatibility, but tokenfactory is not a supported path for new development. Deploy an ERC-20 contract instead. | ||
|
|
||
| </Warning> | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,23 +3,26 @@ | |
| description: 'Looking up and interacting with pointer contracts that bridge CosmWasm and EVM tokens on Sei' | ||
| --- | ||
|
|
||
| # Pointer Contracts | ||
|
|
||
| Sei runs two token execution environments side by side — EVM and CosmWasm. Pointer contracts are automatically deployed EVM contracts that proxy a CosmWasm token, and vice versa. | ||
|
|
||
| <Warning> | ||
| This guide covers pointers for already-deployed CosmWasm contracts only. It does not document native-denom pointer workflows. IBC is disabled in both directions, and tokenfactory is not a supported development path. See [IBC is disabled](/learn/sip-03-migration#ibc-is-disabled) and [Tokenfactory is not supported](/cosmos-sdk#tokenfactory-is-not-supported). | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [suggestion] The banner text and the code changes don't quite line up. The warning says "Do not use native-denom pointers to build IBC or tokenfactory integrations" — a scoped prohibition — but the diff removes native-denom pointer lookup entirely, including the This also drops the only documented use of |
||
| </Warning> | ||
|
|
||
| | Token | Pointer type | EVM interface | | ||
| | --- | --- | --- | | ||
| | CW20 (CosmWasm fungible token) | ERC-20 pointer | Standard ERC-20 | | ||
| | CW721 (CosmWasm NFT) | ERC-721 pointer | Standard ERC-721 | | ||
| | Native Sei token (bank module) | ERC-20 pointer | Standard ERC-20 | | ||
|
|
||
| Once you have the pointer address, you interact with it using the standard ERC-20 or ERC-721 interface — no Sei-specific code needed. | ||
|
|
||
| For background on how pointer contracts work, see the [Pointers overview](/learn/pointers). | ||
|
|
||
| ## Looking Up a Pointer Address | ||
|
|
||
| The pointerview precompile resolves pointer addresses by CosmWasm contract address or native denom. Its ABI and address are exported from `@sei-js/precompiles`. | ||
| The pointerview precompile resolves pointer addresses for existing CosmWasm contracts. Its ABI and address are exported from `@sei-js/precompiles`. | ||
|
|
||
| <CodeGroup> | ||
|
|
||
|
|
@@ -48,14 +51,6 @@ | |
| functionName: 'getCW721Pointer', | ||
| args: ['sei1...cw721ContractAddress'], | ||
| }); | ||
|
|
||
| // Native denom → ERC-20 pointer | ||
| const nativePointer = await client.readContract({ | ||
| address: POINTERVIEW_PRECOMPILE_ADDRESS, | ||
| abi: POINTERVIEW_PRECOMPILE_ABI, | ||
| functionName: 'getNativePointer', | ||
| args: ['usei'], | ||
| }); | ||
| ``` | ||
|
|
||
| ```ts ethers | ||
|
|
@@ -78,16 +73,13 @@ | |
|
|
||
| // CW721 → ERC-721 pointer | ||
| const erc721Pointer = await pointerview.getCW721Pointer('sei1...cw721ContractAddress'); | ||
|
|
||
| // Native denom → ERC-20 pointer | ||
| const nativePointer = await pointerview.getNativePointer('usei'); | ||
| ``` | ||
|
|
||
| </CodeGroup> | ||
|
|
||
| The return value includes the pointer address and an `exists` boolean. Check `exists` before interacting with the pointer — not all CosmWasm tokens have a deployed pointer. | ||
|
|
||
| ## Interacting with a CW20 Pointer as ERC-20 | ||
|
|
||
| Once you have the pointer address, use it as a standard ERC-20 contract. | ||
|
|
||
|
|
@@ -121,7 +113,7 @@ | |
|
|
||
| </CodeGroup> | ||
|
|
||
| ## Interacting with a CW721 Pointer as ERC-721 | ||
|
|
||
| <CodeGroup> | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[suggestion] Consider keeping this exception.
IBCis still a proper acronym in prose this PR deliberately retains, and removing it makes the sentence-case rule flag three headings that survive the change —learn/sip-03-migration.mdx:84(## Affected IBC assets),:256, and:260.## IBC is disabledescapes because$sentenceallows a capitalized first word, but the mid-heading uses won't.CI won't break (
prose-style.ymlusesfail_on_error: falseandfilter_mode: added), so this is advisory — but the exception list exists for exactly this case, and IBC hasn't stopped being an acronym just because the feature is disabled.