There has recently been discussion on the possibilities of introducing native tokens to Bitcoin Cash transactions, via OP_GROUP . Such native tokens would be transferable through fairly regular transactions, and benefit from all the mechanisms that we trust in with regular bitcoins, fully recorded on the blockchain.

In this article, I want to point out that while colored coins are one way to implement native tokens, it is just as easy for Bitcoin Cash to support pure tokens.

Native tokens -- user's perspective

Regular transactions (graphically depicted above) involving native tokens can split, merge, and move these tokens around from owner to owner, but cannot convert between tokens and regular coins, nor convert between different token types. This non-conversion property can be represented by a hard "wall" between the token world and coin world, depicted as a horizontal line in the above picture.

The graphic above shows a typical token payment transaction (two inputs, three explicit outputs + one fee output): the token owner sends part of his token to a receiver address, and part to his own change address. Since he has to pay miners' fees (in bitcoin cash), he also has to input a normal coin and send part of it to the miner, and part to his change address.

What makes a token 'native' is that miner consensus rules enforce the conservation of tokens, much like they do with regular coins -- the sum of output tokens has to equal the sum of input tokens. Since miners enforce these rules, native tokens thus can be used in SPV-type wallets. Native tokens can also be used in payment channels, and on-chain one-step atomic swaps, among other cool ideas.

Creating tokens as colored coins

Colored coins are one way of creating native tokens. Special minting / melting transactions allow regular bitcoin cash coins to be converted into tokens. Graphically, this is represented as a breach of the wall separating token world from coin world. Such a breach requires a signature from the token's Issuer key.

It is however seen (by some) as somewhat of a hack to convert coins to tokens:

If I want to issue 100 billion tokens for some reason, I need to first gather 100 billion satoshis (1000 BCH), which may simply be far more than I am willing to pay.

The number of uncolored coins (bitcoin cash) is not conserved.

Thus, it may be worthwhile to consider having pure tokens, described below.

Creating pure tokens

Instead of converting bitcoin cash coins, the token system can instead be designed so that tokens are created/destroyed out of nothing during a minting/melting transaction. This still requires the Issuer key's signature (as with colored coins). Graphically, the wall separating the token world and the bitcoin world is now impenetrable at all times. Minting/melting transactions are now equipped with non-conservation portals, instead of breaching the wall.

What is great with pure tokens is that arbitrary numbers (up to 2^64-1) of tokens can be minted at a time, paying a fixed small tx fee regardless.

It is worth pointing out the implementation details of pure tokens (in contrast with colored coins):