Skip to main content

FT4 (Flexible Token 4)

Chromia FT4 (Flexible Token 4) is an advanced token standard designed for the Chromia blockchain, offering enhanced asset and account management capabilities. Similar to the ERC20 standard in Ethereum, FT4 facilitates token creation, transfer, and ownership tracking. However, FT4 goes beyond basic token management by providing additional features like flexible account access controls, multi-signature support, and configurable rules for managing assets and accounts. This makes it ideal for more complex decentralized applications (dapps) requiring nuanced account management, robust security, and fine-grained control over assets.

It has its own client library, created for ease of use on the frontend.

cross chain transfer structure

Understanding FT4 Accounts

Before diving into FT4, it's important to understand how accounts work on Chromia and when you should use FT4.

Account Basics

An Account in FT4 is identified by an Account ID, which is generated by hashing a public key:

Account ID = hash(public_key)  // For native Chromia accounts
Account ID = hash(evm_address) // For EVM-compatible accounts

Key differences from EVM:

  • On Ethereum: 1 private key = 1 account (fixed relationship)
  • On Chromia with FT4: Multiple users can control one account through auth descriptors (flexible relationship)

This flexibility allows for:

  • Multi-signature accounts: Require multiple users to approve transactions
  • Role-based permissions: Different users have different access levels (e.g., one can transfer, another can manage)
  • Temporary access: Grant time-limited access to accounts
  • Account recovery: Add backup auth descriptors in case you lose your primary key

When to Use FT4

Use FT4 when your dapp needs:

  • User accounts with authentication
  • Token/asset management (fungible tokens like coins)
  • Multi-signature accounts or role-based access control
  • Transfer capabilities between accounts
  • Cross-chain asset transfers
  • Built-in rate limiting and spam prevention

Don't need FT4? You can build a Chromia dapp without FT4 - just use Rell directly! FT4 is optional but highly recommended for apps with user accounts and asset management. Simple dapps (like a read-only data store or a voting system without tokens) may not need FT4 at all.

For more details on how accounts work, see FT4 Account Management. For key concepts like Account IDs and key pairs, see Terminology.

Client

The client is written in TypeScript. It is made for easier access to the backend operations and queries and ready to be used on the frontend (or a js backend).

The library is available on npm.

Backend

The backend part of FT4 is written in rell and holds the implementation of the above-mentioned features:

As most dapps in the chromia environment, the ft4 library is configured through the chromia.yml file which belongs to the dapp importing it.

info

While FT4 assets share many similarities with ERC20 tokens, there are key differences, especially around how asset management and account control are handled. These differences offer greater flexibility for more complex use cases. More detailed comparisons and technical distinctions between FT4 and ERC20 can be found in the FT4 Glossary.