Technical functionality and properties of the **CF-20** standard is decribed in the **`dap_chain_datum_token.c`** file of the [Cellframe SDK](https://gitlab.demlabs.net/cellframe/cellframe-sdk). It is integrated in the very blockchain.
All our **CF-20** tokens support functions, almost similar to same in the **ERC-20** standard.
Some changeable parameters are realised in our tokens as mandatory (**`total_supply`**, **`valid_signs`**, **`type`**, **`ticker`**, etc) while others are realized using different **flags**.
**Flags** can significantly alter token properties, such as allowing or restricting fund transfers to/from specific addresses and many more.
## Mandatory parameters
Let's use the [[Node Command - TOKEN INFO|TOKEN_INFO]] [[5. CLI Node Commands|CLI command]] for acquire some information about **CELL** token:
```actionscript
current state:
-->Token name: CELL
type: CF20
flags: NONE
description: The token description is not set
Supply total: 0
Decimals: 18
Auth signs valid: 4
Auth signs total: 8
Signatures public keys:
#below there is a list of attached public keys and information about token updatings
```
Here is the parameters description:
**`Token name`** - ticker (name) of the token
**`type`** - type of the token (`CF20` by default)
**`flags`** - different token properties (`ALL_ALLOWED` by default)
**`description`** - token description
**`Supply total`** - maximum sum limit of all token emissions (if `0` - there is no limit)
**`Decimals`** - number accuration after comma (`18` by default)
**`Auth signs valid`** - quantity of authorized token signatures required fot it's emission
**`Auth signs total`** - quantity of authorized token signatures
**`Signatures public keys`** - public certificates which were used to sign token
## Flags
Flags description.
**`NO_FLAGS`** - no specified flags
**`ALL_BLOCKED`** - blocks all permissions
**`ALL_ALLOWED`** - allows all permissions unless they are blocked (be careful with this mode)
**`ALL_FROZEN`** - temporarily freezes all permissions
**`ALL_UNFROZEN`** - unfreezes all frozen permissions
**`STATIC_ALL`** - blocks manipulations with a token after declaration (tokens are declared statically)
**`STATIC_FLAGS`** - blocks manipulations with token flags after declaration
**`STATIC_PERMISSIONS_ALL`** - blocks all manipulations with permissions list after declaration
**`STATIC_PERMISSIONS_DATUM_TYPE`** - blocks all manipulations with datum permissions list after declaration
**`STATIC_PERMISSIONS_TX_SENDER`** - blocks all manipulations with transaction senders permissions list after declaration
**`STATIC_PERMISSIONS_TX_RECEIVER`** - blocks all manipulations with transaction receivers permissions list after declaration
**`ALL_SENDER_BLOCKED`** - adds specified wallet address to the list of blocked receivers
**`ALL_SENDER_ALLOWED`** - adds specified wallet address to the list of allowed receivers
**`ALL_RECEIVER_BLOCKED`** - adds specified wallet address to the list of blocked senders
**`ALL_RECEIVER_ALLOWED`** - adds specified wallet address to the list of allowed senders