Adding a new token to the network after it has already started

Hi there.

Is there a way to add a new token to an already-running Cosmos application chain? For example, let’s say the staking token is “ABC”, and the network is running already. Now, let’s say I wanted to add a new token FOO that people could have balances of, and in fact, even have some validators who are willing to accept GAS that is paid for with a minimum gas price, expressed in FOO.

Can I do this? I am not sure. It almost seems like I would have to define FOO in the genesis before the network started – otherwise, how can it FOO even come into existence?

Hope this makes sense. I want to know if I can add arbitrary new tokens to the network, after the fact. I am pretty sure I can do this before hand by simply modifying the accounts.coins section of genesis.json and adding whatever I want in there.

Thanks.

This would depend on the code of the network, usually it would require a hardfork of course

Edit: of course, it would depend on the code of the netwrok and the new token, whether it conflicts with anything in consensus.

It is possible and in fact, it has been Already done in the past. Last winter, tendermint team has introduced a concept of photinos on one of the gaia testnets.

It is hard to imagine how this would happen without a hardfork where the genesis is re-written to support a new token, and then we use other mechanisms to rebuild the state of the network before the hardfork.

I assume a new token cannot just magically appear in a cosmos wallet with a certain balance.

1 Like

may you kindly refer to some reference/tutorial on how to change the chain id and token ticker for a mainnet?

Thnx in advance!

Consider examining the fundamental principles of the Tendermint/CometBFT consensus, specifically the Byzantine Fault Tolerance test. In brief:

  • If a third of the network is unresponsive or in disagreement, the network ceases to function.
  • Two-thirds of the network participants can cause any desired outcome.
  • Any other scenario in between is highly unlikely.

Adding complex mathematics and pretending to solve the issue only adds unnecessary complexity to the problem.

You can look at tokenfactory module. This is a module deployed on some chains (Osmosis, Neutron, Juno, Chihuahua) - though the exact implementation may deviate between chains, that allows creating a token without a hardfork.

And yes, with the tokenfactory module, a token can magically appear in a cosmos wallet with a certain balance, as the creator (admin) of the token can usually decide to mint tokens in any wallet.

Regards,
arlai