Сreates a token update datum and places it in the mempool.
`Command syntax:`
```actionscript
token_update
-net <net_name>
[-chain <chain_name>]
-token <existing_token_ticker>
-type <CF20|private>
[-total_supply_change <value>]
-certs <name_certs>
[-flag_set <flag>]
[-flag_unset <flag>]
[-total_signs_valid <value>]
[-description <value>]
[-tx_receiver_allowed <value>]
[-tx_receiver_blocked <value>]
[-tx_sender_allowed <value>]
[-tx_sender_blocked <value>]
[-add_cert <name_certs>]
[-remove_certs <pkeys_hash>]
```
`Options:`
```actionscript
-net - name of the Cellframe Network. The list of networks can be found in the <Config_dir> \ etc \ network folder or received by The Cellframe-Node-CLI using command - net list
-chain - name of the chain where token was declared (optional)
-token - ticker (name) of the token
-type - type of the token (CF20 or private, CF20 by default)
-total_supply_change - changes total supply, specify “INF” to set unlimited total supply (optional)
-certs - list of certificates which were used to sign token
-flag_set - list of flags are being set (optional)
-flag_unset - list of flags are being unset (optional)
-total_signs_valid - sets the minimum amount of valid signatures (optional)
-description - token description written in " " (optional)
-tx_receiver_allowed - adds specified wallet address to the list of allowed receivers (optional)
-tx_receiver_blocked - adds specified wallet address to the list of blocked receivers (optional)
-tx_sender_allowed - adds specified wallet address to the list of allowed senders (optional)
-tx_sender_blocked - adds specified wallet address to the list of blocked senders (optional)
-add_cert - adds certificates to the certificates list of the token (optional)
-remove_certs - removes certificates from the certificates list using theirs public key hash (optional)
```
`Available flags:`
```actionscript
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.
```
### CLI Example
`Command:`
```actionscript
cellframe-node-cli token_update
-net foobar
-chain zero
-token ZZZ
-type CF20
-total_supply 0
-decimals 18
-signs_total 1
-signs_emission 1
-certs foobar.root.pvt.0
-flags ALL_ALLOWED
```
`Response:`
```actionscript
Datum 0x8F581F2B53062ADF150D34EF3DA0224DA11FA6AFB7D9964A520F60449483DC69 with 256bit token ZZZ is placed in datum pool
```
### JSON-RPC Example
![[JSON-RPC Request - TOKEN UPDATE]]