# Asset basics · Manage assets with FT4 · Learn Chromia

> This lesson covers the core ideas behind FT4 assets and how they work on Chromia.

Source: https://chromia.com/learn/ft4-asset/ft4-basics/

Manage assets with FT4Lesson 3 of 6

1. [01Asset management](https://chromia.com/learn/ft4-asset/introduction/)
2. [02Project setup and configuration](https://chromia.com/learn/ft4-asset/setup/)
3. [03Asset basics](https://chromia.com/learn/ft4-asset/ft4-basics/)
4. [04Asset functions, operations and queries](https://chromia.com/learn/ft4-asset/asset-operations/)
5. [05Testing](https://chromia.com/learn/ft4-asset/testing/)
6. [06Considerations and recommendations](https://chromia.com/learn/ft4-asset/consideration-recomendations/)

[Learn](https://chromia.com/learn/)[Manage assets with FT4](https://chromia.com/learn/ft4-asset/)

03 / 06Advanced

# Asset basics

This lesson covers the core ideas behind FT4 assets and how they work on Chromia.

## What are FT4 assets?

An FT4 asset is a digital token that stands for anything of value on the Chromia blockchain. You create these tokens with the FT4 library, which gives you a standard way to define and manage them.

## Key components of FT4 assets

**Account management**

* Pool accounts that manage assets
* User accounts that hold assets
* Multiple account types, each with its own permissions

**Asset registration**

* You must register each asset on the blockchain
* Each asset gets a unique identifier
* Properties such as name, symbol, and number of decimal places describe an asset

**Asset operations**

* Minting: creates new units of an asset
* Burning: destroys existing units
* Transferring: moves units from one account to another
* Locking: blocks an asset from moving for a period of time

## Account types of the dapp

The project relies on two main kinds of account:

**Pool account**

* Handles the initial distribution of the asset
* Controlled by the dapp

**User accounts**

* Users create these themselves
* Hold assets and send them to other accounts

Permissions on an FT4 account depend on what the account is for. To keep things simple, this project uses only two roles: `user` and `admin`.

## Asset registration

Next, you set up a basic asset configuration and register the asset.

Put the following code in `src/main/module.rell`:

src/main/module.rell

```
import lib.ft4.assets.{ asset, Unsafe };
import lib.ft4.core.accounts.strategies.open;

// Asset properties
val account_type = "PoolAccount";
val asset_name = "TestAsset";
val asset_symbol = "TAT";
val asset_decimals = 6;
val asset_icon_url = "https://url-to-asset-icon";
val asset_amount_to_mint = 1000000000L;
val asset_amount_to_faucet = 100000L;
val asset_amount_to_burn = 100L;

object dapp_meta {
    asset = Unsafe.register_asset(
        asset_name,
        asset_symbol,
        asset_decimals,
        chain_context.blockchain_rid,
        asset_icon_url
    );
}
```

This code sets the asset's configuration and registers the asset when the blockchain initializes.

The next lesson adds operations for minting, burning, and transferring the asset.

Written for this site from Chromia’s public course. Code samples are the course’s own.

[← Previous**Project setup and configuration**](https://chromia.com/learn/ft4-asset/setup/)[Next →**Asset functions, operations and queries**](https://chromia.com/learn/ft4-asset/asset-operations/)

On this page

* [What are FT4 assets?](#what-are-ft4-assets)
* [Key components of FT4 assets](#key-components-of-ft4-assets)
* [Account types of the dapp](#account-types-of-the-dapp)
* [Asset registration](#asset-registration)
