Skip to main content

Developer token proposal and bridge setup

Developers and project teams can propose new FT4 tokens and optional bridges on the Token Chain. The process includes fee payment, parameter configuration, and (optionally) bridge deployment.

1. Proposing a new token

Anyone can submit a token proposal. A listing fee is required upfront and refunded if the proposal is rejected. By default, the fee distribution is:

  • 25% burned to reduce overall supply and help maintain token value over time.
  • 25% to Chromia Foundation to support ecosystem development.
  • 50% directed to the project's resource pool for ongoing ecosystem incentives.
Current fees

The current upfront fee is 100 CHR for token proposals and 100 CHR for bridge proposals. These fees may change over time - you can verify the current amounts using the get_token_chain_constants query (see step 1 below).

Your proposal should include:

  • Token name: This is the name of the token.
  • Token symbol: This is the symbol of the token.
  • Token decimals: The number of decimal places to use for the token.
  • Token icon: A URL pointing to an image file.
  • Minting policies: Policies governing who can mint new tokens, how many and how often. Full format of policy can be found in the reference documentation.
  • Account creation blockchains: Blockchains RIDs allowed to create accounts.
note

Burning a portion of the fee creates deflationary pressure on the governance token, aligning long-term incentives. This will be enabled in a future release.

Steps:

  1. (Optional) Check current constants to verify the listing fee and other parameters:

    chr query --blockchain-rid ${TOKEN_CHAIN_RID} get_token_chain_constants
  2. Submit proposal (replace placeholders):

    chr tx --evm-auth ${EVM_WALLET_ADDRESS} --blockchain-rid ${TOKEN_CHAIN_RID} \
    propose_token ${NAME} ${SYMBOL} ${DECIMALS} ${ICON_URL} \
    ${MINTING_POLICY} ${ACCOUNT_CREATION_BRIDS}
  3. Verify proposal status:

    chr query --blockchain-rid ${TOKEN_CHAIN_RID} get_proposals_by_proposer proposer=${YOUR_ACCOUNT_ID}
  4. After approval, fetch your asset ID:

    chr query --blockchain-rid ${TOKEN_CHAIN_RID} \
    ft4.get_assets_by_name name=${YOUR_TOKEN_NAME} page_size=null page_cursor=null

2. Proposing a bridge

If you don't have the EVM_TRANSACTION_SUBMITTER_CHAIN_RID, retrieve it with:

chr query --blockchain-rid ${DIRECTORY_CHAIN_RID} get_evm_transaction_submitter_chain_rid
  1. Retrieve existing bridges:

    chr query --blockchain-rid ${EVM_TRANSACTION_SUBMITTER_CHAIN_RID} get_all_bridges
  2. Identify the Token Chain's validator contract in the response.

  3. Define your bridge_configuration in RELL format:

    struct bridge_configuration {
    network_id: integer;
    bridge_contract: byte_array;
    token_contract: byte_array;
    eif.hbridge.bridge_mode;
    use_snapshots: boolean;
    skip_to_height: integer;
    }
  4. Submit bridge proposal using the Chromia CLI (see the Deploy the bridge guide):

    chr tx --evm-auth ${EVM_WALLET_ADDRESS} --blockchain-rid ${TOKEN_CHAIN_RID} \
    propose_token_bridge ${ASSET_ID} ${BRIDGE_CONFIGURATIONS}

Token minting

To mint tokens (if authorized):

chr tx --evm-auth ${EVM_WALLET_ADDRESS} --blockchain-rid ${TOKEN_CHAIN_RID} \
mint_token ${ASSET_ID} ${AMOUNT}

For full reference on on-chain functions and ICCF operations, see the ras_token_iccf documentation.