Skip to main content

Token Chain

Prerequisites

  • Install the Chromia CLI by following the instructions in Install and configure Chromia CLI. Make sure to configure the CLI to connect to a node in the relevant network.

Overview

The Token Chain is a dedicated Chromia-based blockchain designed to streamline token management, account creation, and cross-chain asset bridging.

Key benefits

  • Simplified bridging setup: the initial version (MVP) automates setup on the Chromia side, streamlining the process. Future updates aim to automate the EVM side as well for greater efficiency.

  • Enhanced trust and security: listing tokens on the Token Chain increases their credibility and provides a secure environment.

  • A secure hub for tokens: the Token Chain serves as a trusted system chain. Tokens can be moved back to the Token Chain for security during updates or changes on a dapp chain.

  • Streamlined onboarding: users of multiple projects on the Token Chain already have an account for bridging, simplifying access to new projects.

  • Greater flexibility: tokens are independent of any single dapp chain. If dissatisfaction arises with a dapp’s development, tokens can be transferred to a new forked version that aligns better with user preferences.

Account creation strategy

Each project maintains a pool of CHR on the Token Chain specifically for creating new accounts. You can choose:

  • Open pool: anyone can request an account by paying a nominal fee.
  • Minimum amount strategy: require a minimum CHR deposit per new account to prevent spam.

Account creation on behalf of projects is authorized via ICCF and requires a list of blockchain RIDs for the chains allowed to create accounts. Fees for account creation are sent to a Chromia Foundation–managed account, and foundation members can redistribute these funds back to the economy chain or allocate them to the project’s resource pool.

User account creation

End users interacting with dapps on Chromia will need an account on the Token Chain to bridge assets or hold newly minted tokens. Below is the streamlined flow:

1. Funding your account

Transfer CHR from the Economy Chain to your desired Token Chain address. If you don’t have an Economy Chain account:

  • Transfer CHR from another Token Chain account.
  • Use a cross‑chain transfer (small fee applies).

2. Creating your account

Use the Vault UI or the Chromia CLI:

chr tx --blockchain-rid ${ECONOMY_CHAIN_RID} transfer ${YOUR_TOKEN_CHAIN_ACCOUNT_ID} ${AMOUNT}
note

This flow is for end users; if you’re proposing or managing pools as a project, follow the developer flow below.

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.

Since listing fees are paid on the Economy Chain, you’ll need to provide proof on the Token Chain via ICMF. Include the proof in the proposal operation or send it through ICMF to the Token Chain.

Your proposal should include:

  • Token name
  • Token symbol
  • Token decimals
  • Token icon
  • Minting policies (if any)
  • Account creation blockchains
note

Burning a portion of the fee creates deflationary pressure on the governance token, aligning long-term incentives. The current MVP does not yet implement on-chain burning; this will be enabled in a future release.

Steps:

  1. Check current constants:

    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_JSON] [ACCOUNT_CREATION_BRID_RIDS]
  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).

Token minting policies

The built-in minting capability in FT4 allows you to use its before and after hooks to enforce minting policies. Your proposal should include:

  • Maximum supply (optional)
  • Authorized minters
  • Minting interval and amount
  • Accumulative vs. fixed-rate modes
  • Option to specify rate and maximum supply per minter

Example RELL struct:

struct minting_policy {
minters: set<byte_array>;
max_supply: big_integer;
minting_interval_ms: integer;
minting_amount: big_integer;
accumulating_amount: boolean;
}

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.