# Fungible token action

The `FTTokenAction` entity describes standard actions that can be performed on fungible tokens, such as mint, transfer, or burn. CSPR.cloud supports fungible tokens compatible with the [CEP-18](https://github.com/casper-ecosystem/cep18) Casper Network standard.

### Properties

The `FTTokenAction` entity has the following properties:

| Property                | Type         | Description                                                                                                                                                                                     |
| ----------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `deploy_hash`           | `string(64)` | Deploy hash in which the token action occurred. First part of token action identifier, represented as a hexadecimal string                                                                      |
| `transform_idx`         | `int`        | ID of the transform in the deploy execution result containing performed token action in deploy execution. Second part of token action identifier                                                |
| `contract_package_hash` | `string(64)` | Contract package hash of fungible token contract, represented as a hexadecimal string                                                                                                           |
| `from_hash`             | `string(64)` | Action source account or contract hash, represented as a hexadecimal string                                                                                                                     |
| `from_type`             | `uint8`      | Action source hash type: `0` for account, `1` for contract                                                                                                                                      |
| `to_hash`               | `string(64)` | Action target account or contract hash, represented as a hexadecimal string                                                                                                                     |
| `to_type`               | `uint8`      | Action target hash type: `0` for account, `1` for contract                                                                                                                                      |
| `ft_action_type_id`     | `uint`       | [Fungible token action type](https://github.com/make-software/casper-middleware/blob/documentation-1.0.x/docs/public/rest-api/fungible-token-action/get-token-actions-types.md) type identifier |
| `amount`                | `string`     | Tokens amount value used during the token action                                                                                                                                                |
| `timestamp`             | `uint16`     | The timestamp of performed token action                                                                                                                                                         |

**Example**

```json
{
  "amount": "37357",
  "contract_package_hash": "883238e99639bc7f5f7858398d0df94138c8ad89f76bdef7fac5fdd3df7f033a",
  "deploy_hash": "0005f1e53afa9799a66a389a90caab84ab3cbd000ab7741e55e09f80c75002b6",
  "from_hash": "f41cc7553d271e7ac70899ead4d3584c72ca2e119f2a86fbb4641ca95f3ba9e7",
  "from_type": 0,
  "ft_action_type_id": 2,
  "timestamp": "2023-02-09T19:16:21Z",
  "to_hash": "a5a9a804a383f3b0e131c85d471542af2c6d4ec57bab39182ba93dd7bd86f46c",
  "to_type": 1,
  "transform_idx": 67
}
```

## Optional properties

Depending on the endpoint some of the following optional properties may be included in the `FTTokenAction` entity:

| Property           | Type                                                                         | Description                                 |
| ------------------ | ---------------------------------------------------------------------------- | ------------------------------------------- |
| `contract_package` | [`ContractPackage`](https://docs.cspr.cloud/1.0.x/rest-api/contract-package) | Fungible contract package                   |
| `deploy`           | [`Deploy`](https://docs.cspr.cloud/1.0.x/rest-api/deploy)                    | Deploy in which the token action occurred   |
| `from_public_key`  | `string(68)`                                                                 | Action source public key if it's an account |
| `to_public_key`    | `string(68)`                                                                 | Action target public key if it's an account |

### Relations

| Entity                                                                        | Mapping property        | Description                                                                |
| ----------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------------------------- |
| [`Contract package`](https://docs.cspr.cloud/1.0.x/rest-api/contract-package) | `contract_package_hash` | Fungible tokens actions belong to a contract package                       |
| [`Account`](https://docs.cspr.cloud/1.0.x/rest-api/account)                   | `from_hash, to_hash`    | Fungible token actions could have accounts as the action source and target |

### Endpoints

The `FTTokenAction` entity has the following endpoints:

* [Get fungible token actions](https://docs.cspr.cloud/1.0.x/rest-api/fungible-token-action/get-token-actions)
* [Get contract package fungible token actions](https://docs.cspr.cloud/1.0.x/rest-api/fungible-token-action/get-contract-package-token-actions)
* [Get account fungible token actions](https://docs.cspr.cloud/1.0.x/rest-api/fungible-token-action/get-account-token-actions)

### Relation endpoints

The `FTTokenAction` entity has the following relation endpoints:

* [Get fungible token action types](https://github.com/make-software/casper-middleware/blob/documentation-1.0.x/docs/public/rest-api/fungible-token-action/get-token-actions-types.md)
