Deploying IBC Pointers
Overview
IBC (Inter-Blockchain Communication) pointers allow tokens originating from another blockchain to have an ERC-compatible representation within the Sei network. This guide outlines the steps required to submit a governance proposal to register an IBC token with an ERC pointer.
Prerequisites
Before submitting a governance proposal to register an IBC pointer, ensure you have:
- Token metadata (including the token denomination, name, symbol, and decimals).
- Sufficient deposit proposal submission has no cost, but to be eligible for voting there is a deposit, to prevent abuse.
- Test before mainnet especially if it's your first time, try sending the proposal on a testnet.
Metadata Requirements
For an IBC token, metadata must be included in the governance proposal. The metadata ensures the token is properly recognized within the ERC-compatible execution environment.
Example Metadata JSON
{
"id": "1",
"title": "Register IBC Pointer",
"description": "Register an ERC-compatible pointer for an IBC token.",
"proposal_type": "/seiprotocol.seichain.evm.AddERCNativePointerProposalV2",
"messages": [
{
"@type": "/seiprotocol.seichain.evm.AddERCNativePointerProposalV2",
"title": "Register IBC Pointer",
"description": "Create an ERC-compatible pointer for an IBC token.",
"token": "ibc/<IBC_DENOM_HASH>",
"name": "Token Name",
"symbol": "TOKEN",
"decimals": <DECIMALS>
}
],
"total_deposit": [
{
"denom": "<DEPOSIT_DENOM>",
"amount": "<DEPOSIT_AMOUNT>"
}
]
}
Metadata Fields
token
: The IBC denomination hash of the token to be registered.name
: The human-readable token name.symbol
: The token's ticker symbol.decimals
: The decimal precision of the token.total_deposit
: The deposit amount required for governance consideration.
Submitting the Governance Proposal
Use the following command to submit the proposal:
seid tx gov submit-proposal add-erc-native-pointer "Register IBC Pointer" "Register an ERC-compatible pointer for an IBC token" ibc/<IBC_DENOM_HASH> "Token Name" "TOKEN" <DECIMALS> <DEPOSIT_AMOUNT><DEPOSIT_DENOM> --from=<GOVERNANCE_ADDRESS> --chain-id=<CHAIN_ID> --fees=<FEE_AMOUNT><FEE_DENOM> --gas=<GAS_LIMIT>
Command Breakdown
- Proposal Title & Description: Describes the purpose of the pointer registration.
- IBC Denomination Hash: The IBC token identifier.
- Token Name & Symbol: Used for display purposes.
- Decimals: The token’s decimal precision.
- Deposit: Required governance deposit to proceed with the proposal.
- From: Address submitting the proposal.
- Chain ID: Specifies the network.
- Fees & Gas: Specifies transaction fees and gas limits.
Monitoring the Proposal Status
After submission, check the proposal status with:
seid q gov proposal <PROPOSAL_ID>
Possible Proposal Statuses
PROPOSAL_STATUS_VOTING_PERIOD
: Proposal is under review and open for voting.PROPOSAL_STATUS_PASSED
: Proposal has been approved.PROPOSAL_STATUS_REJECTED
: Proposal has been rejected.
Confirming Pointer Registration
Once the proposal is passed and executed, confirm the pointer registration using:
seid q evm pointer ERC20 ibc/<IBC_DENOM_HASH>
If the registration was successful, this query should return the associated ERC-compatible representation of the IBC token.
Conclusion
Registering an IBC pointer requires a governance proposal with correctly formatted metadata. Once the proposal passes, the pointer is officially recognized within the ERC-compatible execution environment, allowing seamless integration across different blockchain ecosystems. Ensure all required details are accurate before submitting the proposal to avoid delays or rejections.