Chromia protocols
Chromia offers a set of protocols that help you manage accounts, tokens, and communication between blockchains on the network. These protocols work together to create a strong foundation for your digital assets.
- FT4 (Flexible Tokens, version 4): The backbone of account and token management in Chromia.
- Originals: Chromia's feature-rich protocol for minting composable and mutable NFTs.
- ICMF (Inter-chain Messaging Facility): Enables communication between blockchains within a dapp cluster.
- ICCF (Inter-chain Confirmation Facility): Enables communication between blockchains running in different dapp clusters.
Let's look at each of these in more detail.
FT4 protocol
The FT4 protocol provides a library that helps developers create complex blockchain solutions related to fungible tokens and accounts in the Chromia network. As a core component, it supports token registration, token transfers, account creation, and more.
Asset registration
A developer must create an asset using the FT4 library for it to exist on the chain. In this case, the developer specifies the name, ticker, decimals, and values to register a new asset and mints tokens to an account. Then, based on the underlying business logic, the developer distributes tokens as the code specifies—this process is called the on-chain asset registration.
A developer can also perform cross-chain asset registration, which involves initially minting an asset on chain A and then registering it with chain B. After completing the cross-chain registration, the asset becomes available for transfers.
Account registration
Unlike traditional blockchain networks, which use an address to receive and transfer digital assets, Chromia relies on the concept of accounts as the primary unit for managing balances and performing network operations. Accounts on Chromia are similar to traditional web2 accounts, but instead of passwords, developers use private/public key pairs for management. Developers register accounts on-demand, which means that if a developer hasn’t created an account on the network yet, the account cannot receive transfers. This differs from traditional blockchains, where all addresses exist simultaneously and are available for deposits.
To register an account, a developer must create the corresponding functionality using the FT4 library. Developers can implement any business logic associated with the account registration process. Once the account exists, the owner can receive and send assets on-chain or across blockchains within the Chromia network.
FT4 user accounts can use Ethereum and Binance chain account addresses, allowing dapp developers to let users authenticate with an existing wallet, such as MetaMask. Alternatively, Chromia offers a native wallet solution called the Chromia Vault.
Developers can transfer assets between accounts on the same blockchain or across blockchains within the Chromia network. They can also bridge assets to and from Ethereum or Binance chain, external to the Chromia network, using Chromia's bridging framework.
Account management
Developers can manage accounts using a single private/public key pair or multiple key pairs. In both cases, the developer must design the corresponding account registration and management processes.
For more detailed information, visit the Chromia FT4 documentation.
Cross-chain communication protocols
Inter-Chain Messaging Facility (ICMF)
By default, blockchains running in a single dapp cluster can't communicate with each other. In this context,
communication means that one blockchain can read another's data and act accordingly. To enable this functionality, a
developer must implement the ICMF, which acts as an event-based service where
blockchain_#1
emits events while blockchain_#2
subscribes to those events, reads them, and invokes the corresponding
functions based on their content. For more information about the protocol and integration, refer to the
ICMF documentation.
Inter-Chain Confirmation Facility (ICCF)
Blockchains running in different dapp clusters also can't exchange messages directly. While the ICMF protocol only
handles communication within a single dapp cluster, the ICCF enables communication for blockchains running in completely
separate dapp clusters. The ICCF is a client application that acts as an intermediary between blockchain_#1
and
blockchain_#2
. It submits transactions on blockchain_#1
, waits for validation, and then presents the proof of the
validated transaction to blockchain_#2
. This proof allows for constructing a valid transaction on blockchain_#2
to
update the account balance.
Suppose a user wants to transfer assets from their account on blockchain_#1
to their account on blockchain_#2
. The
ICCF client initiates the asset transfer, which is validated on blockchain_#1
. Then, the ICCF constructs the proof
based on the validated transaction and submits it as a transaction to update the account balance on blockchain_#2
. For
more information about the protocol and integration, refer to the ICCF documentation.
Next up
Next, we'll look at Generic Transaction Protocol (GTX) that Postchain uses for sending and receiving transactions. GTX is encoded into the base protocol GTV.