Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ registration is done via a GitHub pull request to the registry repository. The
file and directory that need to be updated in the PR vary depending on the type
of information being added.

<Info>
Registry listing and token contract compatibility solve different problems. A
token may appear in some balance displays (for example, on scan) but still
fail in Wallet or Bridge actions. For full end-user support across Initia
apps, you need both complete registry metadata and compatible token behavior.
</Info>
Comment thread
restorenode marked this conversation as resolved.
Outdated

## Adding Profiles

For an application's information including logo, name, description, and more to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,33 @@ title: Creating Standard ERC20s via ERC20Factory
For developers looking to create standard ERC20 tokens on EVM rollups, we
recommend using the
[ERC20Factory](/resources/developer/contract-references/evm/erc20-factory)
contract.
contract. For most teams, this is the lowest-risk path because it deploys a
token implementation that already includes Initia ERC20 compatibility
extensions.

## Production Readiness Checklist

Before treating a token as ready for broad ecosystem support:
Comment thread
restorenode marked this conversation as resolved.
Outdated

1. Deploy via
[`ERC20Factory`](/resources/developer/contract-references/evm/erc20-factory)
(or implement equivalent Initia extensions in a custom token contract using
Comment thread
restorenode marked this conversation as resolved.
Outdated
[Creating Custom ERC20s](/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/creating-custom-erc20s)
and
[`InitiaCustomERC20`](/resources/developer/contract-references/evm/initia-custom-erc20)).
2. Add token metadata to the relevant `assetlist.json` in
[Initia Registry](/developers/developer-guides/integrating-initia-apps/registry/introduction).
3. Confirm your token supports the Cosmos transfer path (`sudoTransfer`) used in
escrow-style bridge transfer handling by following the compatibility guidance
in
[Creating ERC20s Introduction](/developers/developer-guides/vm-specific-tutorials/evm/creating-erc20s/introduction)
and
[`InitiaCustomERC20` reference](/resources/developer/contract-references/evm/initia-custom-erc20).
Comment on lines +14 to +28

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is irrelevant if they're deploying the token via ERC20Factory, which is the context of this page?


<Note>
Registry listing is required for app-level discovery and metadata display
across Initia products.
</Note>
Comment thread
restorenode marked this conversation as resolved.
Comment on lines +36 to +39

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Unclear what registry this refers to


## Project Setup

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ Fee Token as an ERC20 token.
Use validator (admin) account to update the chain parameter.

<Warning>
The deployed ERC20 token must inherit the `InitiaERC20` contract.
The fee token ERC20 must include Initia ERC20 compatibility extensions.
Comment thread
tansawit marked this conversation as resolved.
Outdated
Factory-deployed tokens satisfy this automatically. For custom deployments,
Comment thread
restorenode marked this conversation as resolved.
Outdated
inherit `InitiaCustomERC20` (recommended for direct deployment).
Comment thread
restorenode marked this conversation as resolved.
Outdated
</Warning>

```ts
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,11 @@ function burn(address from, uint256 amount) external burnable(from) onlyOwner
Transfers tokens from one address to another, bypassing the usual access control
checks. This function can only be called by the chain signer.

<Info>
For Cosmos-side transfer handling in Initia ERC20 flows, `sudoTransfer` is
the key transfer hook used by chain-level logic.
</Info>

Comment thread
restorenode marked this conversation as resolved.
```solidity
function sudoTransfer(address sender, address recipient, uint256 amount) external onlyChain
```
Expand Down
Loading