# Sending Action



<figure><img src="https://1278751999-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUOgAAChWM38m2FHlKkOf%2Fuploads%2FK07a2x8mhrKMs8bx1dSa%2FSystem_mode_action%20(2).png?alt=media&#x26;token=758baa51-d5ba-453b-b5c3-84366c4b983c" alt=""><figcaption><p>Sending Action on System Mode</p></figcaption></figure>

## Explanation

There are many ways to get the signature signed by users. No matter which way NFT Data Chain will need the signature with a signed message, as shown below.

```yaml
# Message used to sign
nft_schema_code: <schema_code> # required
token_id: <token_id> # optional, first one will be pick in case holder holds more than one
action: <action_name>
timestamp: <expired_datetime> # the expired time in epoch format. NFT Data Chain will validate at the runtime whether the signed message is expired or not.
```

This is the protection to the users to ensure that no one can make a call on their behalf or use a signature on another action. But anyway, in this mode, the creator has complete control of the NFT, so the creator must verify this message by themselves.

### Creator Backend System

Cause in this mode, the creator has complete control of NFT Data. The creator needs to verify incoming data by themselves. Needed verifications are:&#x20;

* Verify that the signer is the same as the NFT holder
* Verify that the metadata on NFT Data Chain is up to date with origin data
* Verify that action is correct
* Verify that signature is not expired.
