What is CashTokens and why is it exciting?
Mathieu Geukens explains the innovation & growing traction of CashTokens at BLISS.
CashTokens is an upgrade to the Bitcoin Cash protocol that added two new primitives - fungible and non-fungible tokens (FTs & NFTs). This summary understates the power of the upgrade as tokens on other chains are frequently frivolous financial rehypothication schemes or scams while NFTs on other chains are famous mostly as "collectible monkey pictures" (like the Bored Ape Yacht Club on Ethereum). CashTokens is better understood as adding internal state (programmatic power) and inter-contract communication to Bitcoin Cash contracts / transactions (although it can of course also do token schemes and tradeable monkey pictures). For further discussion of these two layers of capability, see here.
The CashTokens logo chosen by the community after a competitive bracket.
Note that CashTokens is NOT itself an independent collectible token or purchasable item. It is instead an upgrade to BCH Layer 1 that (among other things) allows individuals to create or trade their own or other people's tokens.
CashTokens "locked-in" for implementation in November 2022, and went live on the main network (mainnet) in the BCH network upgrade on 15th May 2023. Consumer facing wallet integrations and apps are beginning to roll out.
The CHIP spec can be read for the technical detail here. An excellent and more-approachable explanation of the benefits and power of CashTokens can be read by the CHIP author Jason Dreyzehner here, predecessor PMv3 here and the case for smart contracts on BCH. It is highly recommended to read those explanation before continuing on this page as the information will not be repeated.
To summarise: CashTokens magnifies the power of smart contracts on Bitcoin Cash enormously to close or equivalent to EVM chains like Ethereum, while retaining low fees at scale with a >1 000x scaleability advantage over those competitors.
Are CashTokens addresses different to regular BCH addresses (cash addresses)?
Yes.
A regular cash address looks like bitcoincash:qqkgjxugt4w45zvy7fmdnwegmrrgmt7y0vvarce0zs
, note the starting q
. A CashTokens "token aware" address looks like bitcoincash:zqkgjxugt4w45zvy7fmdnwegmrrgmt7y0vthsxhfar
, starting instead with a z
. Regular BCH can be sent to a CashTokens address, but CashTokens cannot be sent to a regular cash address. The reason for having a new type of addresses is to prevent users from sending CashTokens to wallets that have not upgraded yet or that choose not to support CashTokens for some reason. CashTokens is likely to quickly become an industry standard feature within the BCH community, but certainly may take longer to spread into the broader cryptocurrency ecosystem (for instance, on large exchanges), where BCH specific features may not be a development priority.
You can convert a regular address to its CashTokens address equivalent using this converter.
Although wallets will not enable doing so, even if a user somehow does manage to send tokens to a regular cash address, it is impossible to respend or burn those tokens accidentally. The seed phrase from that wallet can be imported into a token-supporting wallet in order to get access to the tokens.
How is it different to EVM tokens, such as ERC-20 or ERC-721 tokens?
EVM token standards run on "account model" chains, while CashTokens is on Bitcoin Cash, a "UTXO model" chain. This creates both a problem and an opportunity.
The problem is that existing, proven open-source projects from token ecosystems on chains such as Ethereum (think DEXes or financial tools like lending protocol AAVE) cannot be ported to Layer 1 / BCH mainchain CashTokens compatibility with only a few tweaks. However, CashTokens does enable EVM compatibility (or alternative environments) by making BCH mainchain capable of automatically operating 1 side of a 2 way-peg to a sidechain. Due to limited developer resources & tooling, there are no proof of concept projects like this yet but they will come in due course. For more on this, see here. Note: Direct EVM portability WAS possible and leveraged for SmartBCH, but is not available by default for CashTokens. Instead, in the current absence of a sidechain & decentralised bridge, CashTokens equivalents or competitors for such services will need to be built entirely from scratch by the BCH community at the cost of significant developer resources and time.
The opportunity is that CashTokens / the BCH community is trailblazing new ground in the cryptocurrency industry. If BCH can build a homegrown, in-demand set of products and tools around CashTokens, few other chains will be in position to attempt something similar (only UTXO chains such as Litecoin or Dash could conceivably try an analogous approach) and those that can will be well behind in terms of protocol development, community support, developer tooling, excitement and innovation. This could conceivably give BCH a hefty first-mover advantage and a commanding lead in the UTXO smart contract market - similar to the technical advantage, network effect and price performance gained (and sustained) by the Ethereum community after they pioneered ERC tokens and DeFi for EVM chains.
How is it different to SLP (Simple Ledger Protocol) tokens?
SLP tokens was a previous somewhat-similar implementation of tokens on BCH. CashTokens is distinct from SLP in several important ways:
- Miner validation: Crucially, SLP tokens were not miner validated (they were built at a layer above the protocol), while BCH tokens are miner validated (they are native to the protocol). This means that SLP token transactions received by apps (e.g. wallets) had to check the entire history of each token to verify whether or not they were authentic. The more popular a token became, the slower the token apps became in response because the history of transfers to check got longer and longer. This problem was an even worse burden for SLP infrastructure, which had the same problem for EVERY kind of SLP token simultaneously. This meant most SLP infrastructure was not high performing or well-maintained. In contrast, CashTokens transactions are valid by default if a wallet receives them (just as Bitcoin Cash transactions are) because nodes would not broadcast them and miners would not mine them in the first place if they weren't. Therefore successful CashTokens growth will not be hampered by a self-limiting negative feedback loop in the same way as SLP tokens were. No extra infrastructure for token validating is required either.
- Power: SLP tokens covered a far more limited set of functionality (token creation, transfers, burning & dividend payments). CashTokens has the same power, but also generic power to do many things beyond that (such as communication between BCH controlling contracts). This suggests that many things can and will be built with CashTokens to drive engagement that were not even possible with SLP.
- Problems with non-integrated software: SLP tokens could be accidentally burned by non-supporting BCH software - leading to frustrated users and ecosystem wide issues. CashTokens cannot be accidentally received (or burnt / lost) by wallets and applications that are not aware of it.
Skeptics of CashTokens may note the high effort and low overall community support and success of SLP tokens and reasonably question if CashTokens is a lot of hype on a distraction that will end with similar long term results. Only time and proven success of CashTokens can refute those concerns, but the categoric difference in the tech and early indications of community enthusiasm bode well.
Does adding CashTokens cause problems for BCH scaleability?
No.
Some Bitcoin Cashers, cognisant of the mission to become global reserve currency and the technical challenges inherit in that, may feel concerned that CashTokens will prove a problematic burden at scale for Bitcoin Cash's scaleability.
As mentioned above, CashTokens have been integrated with incredible care and attention directly into the protocol. The performance requirements of miners and nodes doing marginal extra validation on CashTokens transactions is negligible and the performance upside (relieving the need for extra indexers and validation at the wallet or app layer) is enormous. If Bitcoin Cash is going to have more powerful scripting and token systems, this is the most scaleable way to do it.
The Bitcoin Cash community would not make upgrades to the coin if it was problematic at scale.
Is CashTokens a distraction from "being cash"?
Scaleability concerns may also be related to concerns that Bitcoin Cash should be "just cash", and not divert to token ecosystems, advanced scripting or other more powerful cryptocurrency functionality. Some users may consider these use cases a "distraction" from the core mission.
As always, Bitcoin Cash is decentralised and individuals are free to have their own view of CashTokens. However, the CashTokens upgrade (once properly discussed and researched) achieved community consensus and launch with virtually no controversy. A thorough consultation of stakeholders was performed, as required by the CHIP process.
The Bitcoin Cash community (and The Bitcoin Cash Podcast) generally takes a progressive view that BCH needs to be an "electronic cash system". From its inception, Bitcoin contained powerful scripting capability and this is one of the essential elements to making it the best form of money. In the intense competition of the modern cryptocurrency markets, token support & access to advanced DeFi financial products is almost required to be relevant - very few projects are able to gain traction & compete without it. CashTokens intends to unlock enormous innovation & utility in Bitcoin Cash, and this is synergistic with its usage as cash. Users in the "cash" economy benefit from the advanced financial products, and products bringing people to the ecosystem then exposes them to the peer-to-peer cash economy. This huge demand is required to build network effect and a large transaction volume to pay for mining security.
There are other cryptocurrencies which take a more "cash only" approach such as Monero and Nano and users that feel strongly about that direction can investigate those projects. Note that other such projects may actually scale worse than Bitcoin Cash for other technical reasons or other tradeoffs made by their community despite not having access to advanced token ecosystems - individual research on particular coins is recommended. It is not the case that "no tokens = better scaleability" in all cases.
What about CashTokens + CashFusion?
CashFusion does not mix UTXOs with token transactions, nor does it know how to sign for CashTokens transactions, so CashTokens cannot be deliberately or accidentally mixed by CashFusion. It is possible this will be upgraded in future, as CashTokens tooling improves and more demand for token mixing (particularly fungible tokens) increases. CashFusion can already be manually used in combination with fungible tokens by selling the token on a DEX, and then rebuying the same amount at a current or future time using other CashFusion mixed coins. Further liquidity and development of token markets on BCH will assist this process.
Can I try it?
Yes. All you need is a wallet upgraded for CashTokens. CashTokens is relatively new, so exciting consumer facing applications are in their infancy.
CashTokens apps
- Emerald DAO
- Tapswap.cash: Fungible / Non-fungible token marketplace
- BCH Guru: NFT series & (upcoming) price prediction trading game
- BitCats Heroes Club: NFT series by the Paytaca team
- Cash Ninjas: NFT series from several prominent BCH collaborators
- Reapers: CashNinjas NFT predecessor/companion project, ported from smartBCH to CashTokens.
- BCMR generator
- Cauldron DEX
- Fex.cash - Chinese community AMM
- BCMR Token explorer
- Tokenaut.cash: CashTokens project / marketcap listings.
- TokenStork: CashTokens marketcap listings.
- CashTokens Studio: Paytaca
- CashTokens NFT Collection Viewer: by Sploit.
Testnet
CashTokens can be tested on "chipnet" with the following services:
One of the early promising applications, with a lot of work in a proof of concept is JEDEX, a CashTokens decentralised exchange by Jason Dreyzehner.
Can I start developing on it?
Yes. Along with the resources mentioned above, the following dev services are supporting CashTokens already.
- Paytaca BCMR registry and example endpoint
- Web Wallet
- ChainGraph
- Mainnet.cash
- ChipNet Block Explorer
- Token Explorer
- Test BCH Faucet
- Salem Kode CashTokens Explorer: Experimental, in development
- Resources mentioned in this Reddit thread
Also make sure to check out the related infrastructure of Bitcoin Cash Metadata Registries.
Watch the podcast episode with CashTokens creators Jason Dreyzehner.
Watch the following guides:
Mathieu Geukens explains the history, power & growing traction of CashTokens on BCH.
How can I find out more?
To discuss CashTokens, check out:
For developers (interested in CashTokens & BCMRs), also look into:
- CashTokens documentation page
- Cash Tokens Dev Telegram
- Bitcoin Cash Research thread on CashTokens.
- CashTokens Open Token Registry
- Follow Jason Dreyzehner (CashTokens CHIP author) on Twitter and his blog and Mathieu Geukens at his Twitter and Youtube. Of course, episodes of the Bitcoin Cash Podcast itself will be highlighting notable leaps forward in CashTokens development as and when they occur too.
See also: What is BCMRs and why is it exciting?