Technical functionality and properties of the CF-20 standard is decribed in the dap_chain_datum_token.c file of the 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 TOKEN_INFO CLI command for acquire some information about CELL token:

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