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