Skip to content

Commit 9bc6e32

Browse files
committed
docs: clarify ERC20 compatibility requirements and registry metadata roles
1 parent c3ca179 commit 9bc6e32

5 files changed

Lines changed: 38 additions & 30 deletions

File tree

developers/developer-guides/integrating-initia-apps/registry/introduction.mdx

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,15 @@ registration is done via a GitHub pull request to the registry repository. The
99
file and directory that need to be updated in the PR vary depending on the type
1010
of information being added.
1111

12-
<Info>
13-
Registry listing and token contract compatibility solve different problems. A
14-
token may appear in some balance displays (for example, on scan) but still
15-
fail in Wallet or Bridge actions. For full end-user support across Initia
16-
apps, you need both complete registry metadata and compatible token behavior.
17-
</Info>
12+
<Tip>
13+
Full token support across Initia apps depends on two separate requirements:
14+
15+
1. Registry metadata (`assetlist.json`): Controls how the token appears in
16+
product UIs (name, symbol, decimals, logo, and display info in Initia Scan).
17+
2. Token contract behavior: Controls whether token actions actually work (for
18+
example, sending and bridging). For MiniEVM ERC20 tokens, this includes the
19+
`sudoTransfer` hook.
20+
</Tip>
1821

1922
## Adding Profiles
2023

developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-standard-erc20s.mdx

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,33 @@ For developers looking to create standard ERC20 tokens on EVM rollups, we
88
recommend using the
99
[ERC20Factory](/resources/developer/contract-references/evm/erc20-factory)
1010
contract. For most teams, this is the lowest-risk path because it deploys a
11-
token implementation that already includes Initia ERC20 compatibility
12-
extensions.
11+
token implementation that already includes the required Initia chain integration
12+
hooks (including `sudoTransfer`).
1313

1414
## Production Readiness Checklist
1515

16-
Before treating a token as ready for broad ecosystem support:
16+
Before treating a token as ready for support across Initia products (for
17+
example, Initia Scan, InterwovenKit, Wallet, and Bridge):
1718

1819
1. Deploy via
1920
[`ERC20Factory`](/resources/developer/contract-references/evm/erc20-factory)
20-
(or implement equivalent Initia extensions in a custom token contract using
21-
[Creating Custom ERC20s](/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s)
22-
and
23-
[`InitiaCustomERC20`](/resources/developer/contract-references/evm/initia-custom-erc20)).
21+
or, for custom ERC20 deployments, inherit
22+
[`InitiaCustomERC20`](/resources/developer/contract-references/evm/initia-custom-erc20)
23+
as the base contract (see
24+
[Creating Custom ERC20s](/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s)).
2425
2. Add token metadata to the relevant `assetlist.json` in
2526
[Initia Registry](/developers/developer-guides/integrating-initia-apps/registry/introduction).
26-
3. Confirm your token supports the Cosmos transfer path (`sudoTransfer`) used in
27-
escrow-style bridge transfer handling by following the compatibility guidance
28-
in
27+
3. Confirm your token exposes the chain-called `sudoTransfer` hook used by
28+
Initia module logic during bridge-related transfer execution by following the
29+
compatibility guidance in
2930
[Creating ERC20s Introduction](/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction)
3031
and
3132
[`InitiaCustomERC20` reference](/resources/developer/contract-references/evm/initia-custom-erc20).
3233

3334
<Note>
34-
Registry listing is required for app-level discovery and metadata display
35-
across Initia products.
35+
Registry listing is required for tokens to appear correctly in Initia product
36+
UIs with metadata (name, symbol, decimals, logo), and to be selectable in
37+
flows such as balances, transfers, and bridging.
3638
</Note>
3739

3840
## Project Setup

developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22
title: Introduction
33
---
44

5-
To ensure compatibility with Initia's EVM module and the Cosmos SDK in general,
6-
ERC20 tokens on rollups includes certain extensions beyond the standard ERC20
7-
template.
5+
For an ERC20 token to work across Initia products (for example, Initia Scan,
6+
InterwovenKit, Wallet, and Bridge), it must include Initia chain integration
7+
hooks in addition to standard ERC20 behavior.
88

99
Developers looking to create and deploy ERC20s on EVM rollups have two options:
1010

11-
1. Deploy Initia ERC20s using the
11+
1. Deploy using the
1212
[ERC20Factory](/resources/developer/contract-references/evm/erc20-factory)
13-
contract.
14-
2. Extend and modify Initia's
13+
contract (recommended when you only need standard token behavior).
14+
2. For custom ERC20 logic, inherit from
1515
[InitiaCustomERC20](/resources/developer/contract-references/evm/initia-custom-erc20)
16-
contract.
16+
and extend it.
1717

1818
<Note>
1919
While Initia's `CustomERC20.sol` contains additional logic, it is still fully

developers/developer-guides/vm-specific-tutorials/evm/update-fee-token.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ Fee Token as an ERC20 token.
1717
Use validator (admin) account to update the chain parameter.
1818

1919
<Warning>
20-
The fee token ERC20 must include Initia ERC20 compatibility extensions.
21-
Factory-deployed tokens satisfy this automatically. For custom deployments,
22-
inherit `InitiaCustomERC20` (recommended for direct deployment).
20+
The fee token ERC20 must implement Initia-compatible chain hooks, especially
21+
`sudoTransfer`, which is used by chain-level transfer handling. Tokens
22+
deployed via `ERC20Factory` satisfy this requirement by default. For custom
23+
ERC20 deployments, the token contract must inherit `InitiaCustomERC20`.
2324
</Warning>
2425

2526
```ts

resources/developer/contract-references/evm/initia-custom-erc20.mdx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,10 @@ Transfers tokens from one address to another, bypassing the usual access control
230230
checks. This function can only be called by the chain signer.
231231

232232
<Info>
233-
For Cosmos-side transfer handling in Initia ERC20 flows, `sudoTransfer` is the
234-
key transfer hook used by chain-level logic.
233+
For MiniEVM ERC20 tokens, `sudoTransfer` is a required hook in the token
234+
contract. If you deploy through `ERC20Factory` or inherit `InitiaCustomERC20`,
235+
it is included automatically. Without it, sending and bridging may fail even
236+
if the token appears in UIs.
235237
</Info>
236238

237239
```solidity

0 commit comments

Comments
 (0)