# CSPR.cloud API

## Overview

The API is REST-based. It has predictable resource-oriented endpoints, uses standard HTTP response codes, authentication, and verbs.

### Base URL

The API works over HTTPS and is accessed from [https://api.CSPR.live](https://api.cspr.live).

### Version 1.0 notes

This document describes API version `1.0`. Version `2.0` is already in development and will replace version `1.0` at some point. Please keep this in mind when designing an API integration layer.

Until version `2.0` is ready, version `1.0` will receive all the highly requested features.

Version `1.0` users will be given enough time to comfortably migrate to `2.0` once it's ready.

### Responses

All data from the server is sent as JSON. Successful API responses contain a data property, which contains the response data:

```
{
  "data": <ResponseData>
}
```

### Pagination

Requests that potentially may return an unlimited number of items are paginated. In addition to the endpoint-specific parameters, they accept the following pagination parameters:

| Parameter | Type  | Default | Description              |
| --------- | ----- | ------- | ------------------------ |
| `page`    | `int` | `1`     | Requested page number    |
| `limit`   | `int` | `10`    | Number of items per page |

The response contains pagination information and has the following structure:

```
{
  "data": { ... },
  "itemCount": <int>,
  "pageCount": <int>,
  "pages": [ // a list of links to the previous page, the current one, and the next one
    {
      number: <int>,
      url: <string>,
    }
  ]
}

```

**Example**

```
GET /blocks?page=2&limit=1
```

```
{
  "data": [
    {
      "blockHash": "0502d1a908282819d99d13c08e3365d5fc925b2388f1e40c99efa1b84a400edf",
      "parentHash": "199e4889e15772f72715713a2ef7be2f1d4e49b856442978f4b7b472268c4cc9",
      "timestamp": "2021-06-22T20:07:46.000Z",
      "eraId": 894,
      "proposer": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "state": "864d8c41f223684fa7a971105cd25e4ceb60cde46bc852686fe99d234e16c20b",
      "deployCount": 0,
      "transferCount": 0,
      "blockHeight": 85488
    }
  ],
  "pageCount": 85488,
  "itemCount": 85488,
  "pages": [
    {
      "number": 1,
      "url": "/blocks?page=1&limit=1"
    },
    {
      "number": 2,
      "url": "/blocks?page=2&limit=1"
    },
    {
      "number": 3,
      "url": "/blocks?page=3&limit=1"
    }
  ]
}
```

### Sorting

Some paginated requests provide a possibility to sort the results. It can be done using the following query parameters:

| Parameter         | Type     | Description                           |
| ----------------- | -------- | ------------------------------------- |
| `order_by`        | `string` | Field the results should be sorted by |
| `order_direction` | `string` | Order direction: `ASC` or `DESC`      |

**Example**

```
GET /blocks?page=1&limit=1&order_by=blockHeight&order_direction=ASC
```

```
{
  "data": [
    {
      "blockHash": "975ea4de188c2a67946188cea0ec8a93d2d38286d7642526d50c45839a291210",
      "parentHash": "0000000000000000000000000000000000000000000000000000000000000000",
      "timestamp": "2021-04-08T17:00:56.000Z",
      "eraId": 0,
      "proposer": "0106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca",
      "state": "e88b7c061760134ba37ad312c1e2d6373121748e9c61bcea19cc57510829addf",
      "deployCount": 0,
      "transferCount": 0,
      "blockHeight": 0
    }
  ],
  "pageCount": 86099,
  "itemCount": 86099,
  "pages": [
    {
      "number": 1,
      "url": "/blocks?page=1&limit=1&order_by=blockHeight&order_direction=ASC"
    },
    {
      "number": 2,
      "url": "/blocks?page=2&limit=1&order_by=blockHeight&order_direction=ASC"
    },
    {
      "number": 3,
      "url": "/blocks?page=3&limit=1&order_by=blockHeight&order_direction=ASC"
    }
  ]
}
```

### Including optional fields

Certain objects provide possibility of including the nested objects by including their names in the `fields` query param.

*Example*

```
GET /extended-deploys?fields=contract_package,entry_point
```

```
{
  "data": [
    {
      "deploy_hash": "cf2a0d11f8b4e263a2e1dc50c1e0cbf0cb6b080deb9d27af7a2a9351742b6fa0",
      "block_hash": "f5a5a96e68c9c9cd8a4b66242d5106b83409330c961f9a4873484f0e03ba1342",
      "caller_public_key": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
      "execution_type_id": 2,
      "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
      "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
      "cost": "2500000000",
      "payment_amount": "2500000000",
      "error_message": null,
      "timestamp": "2022-08-09T15:26:30.000Z",
      "status": "executed",
      "args": {
        "amount": {
          "parsed": "851000000000",
          "cl_type": "U512"
        },
        "delegator": {
          "parsed": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
          "cl_type": "PublicKey"
        },
        "validator": {
          "parsed": "0169e1552a97843ff2ef4318e8a028a9f4ed0c16b3d96f6a6eee21e6ca0d4022bc",
          "cl_type": "PublicKey"
        }
      },
      "amount": "851000000000",
      "entry_point": {
        "id": "538",
        "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
        "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
        "name": "delegate",
        "action_type_id": null
      },
      "contract_package": {
        "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
        "owner_public_key": null,
        "contract_type_id": 1,
        "contract_name": "Auction",
        "contract_description": "Built-in contract that allows interaction with the validator auction, and provides possibility to bid and delegate funds to Casper network participants",
        "timestamp": "2021-03-31T15:00:40.000Z"
      }
    },
    ...
  ],
  "pageCount": 64794,
  "itemCount": 647936,
  "pages": [
    {
      "number": 1,
      "url": "/extended-deploys?fields%5B0%5D=contract_package&fields%5B1%5D=entry_point&page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/extended-deploys?fields%5B0%5D=contract_package&fields%5B1%5D=entry_point&page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/extended-deploys?fields%5B0%5D=contract_package&fields%5B1%5D=entry_point&page=3&limit=10"
    }
  ]
}
```

### Including rate in other currencies

It is possible to include CSPR to fiat currency rates to paginated response results by adding `with_amounts_in_currency_id` query param.

| Parameter                     | Type  | Description                                                                  |
| ----------------------------- | ----- | ---------------------------------------------------------------------------- |
| `with_amounts_in_currency_id` | `int` | Modifies paginated results by adding token amounts in the requested currency |

The following currencies are available:

| ID  | Code |
| --- | ---- |
| `1` | USD  |
| `2` | EUR  |
| `3` | JPY  |
| `4` | GBP  |
| `5` | CAD  |
| `6` | CHF  |
| `7` | CNY  |
| `8` | HKD  |

When the `with_amounts_in_currency_id` response modifier is used, the result items will be extended with the `rate` property that provides the CSPR rate in the request currency at the moment of the creation of the requested entity

**Example**

```
GET /validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1
```

```
{
  "data": [
    {
      "eraId": 5959,
      "publicKey": "012dbde8cac6493c07c5548edc89ab7803c376278ec91757475867324d99f5f4dd",
      "amount": "519099446711",
      "timestamp": "2022-08-11T07:35:02.000Z",
      "rate": 0.0378569,
    },
    {
      "eraId": 5958,
      "publicKey": "012dbde8cac6493c07c5548edc89ab7803c376278ec91757475867324d99f5f4dd",
      "amount": "521343206946",
      "timestamp": "2022-08-11T05:34:53.000Z",
      "rate": 0.0377718,
    }
  ],
  "pageCount": 91,
  "itemCount": 902,
  "pages": [
    {
      "number": 1,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1&page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1&page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1&page=3&limit=10"
    }
  ]
}
```

## Entities

### Block

Represents the chain `Block` object

| Property        | Type         | Description                                                  |
| --------------- | ------------ | ------------------------------------------------------------ |
| `eraId`         | `int`        | ID of the era when the block was generated                   |
| `blockHash`     | `string(64)` | Unique block hash                                            |
| `blockHeight`   | `int`        | Consecutive number of the block starting from 0              |
| `parentHash`    | `string(64)` | Hash of the previous block                                   |
| `proposer`      | `string(68)` | Public key of the validator that proposed the block          |
| `state`         | `string(64)` | Global state hash                                            |
| `deployCount`   | `int`        | Number of deploys in the block that are not native transfers |
| `transferCount` | `int`        | Number of native transfers deploys in the block              |
| `timestamp`     | `DateTime`   | Time when the source node saw the block                      |

**Example**

```
{
  "blockHash": "0502d1a908282819d99d13c08e3365d5fc925b2388f1e40c99efa1b84a400edf",
  "parentHash": "199e4889e15772f72715713a2ef7be2f1d4e49b856442978f4b7b472268c4cc9",
  "timestamp": "2021-06-22T20:07:46.000Z",
  "eraId": 894,
  "proposer": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
  "state": "864d8c41f223684fa7a971105cd25e4ceb60cde46bc852686fe99d234e16c20b",
  "deployCount": 2,
  "transferCount": 9,
  "blockHeight": 85488
}
```

### Deploy

Represents the chain `Deploy` object. Deprecated in favor of `ExtendedDeploy`

| Property       | Type         | Description                                       |
| -------------- | ------------ | ------------------------------------------------- |
| `deployHash`   | `string(64)` | Unique deploy hash                                |
| `blockHash`    | `string(64)` | Parent block hash                                 |
| `account`      | `string(68)` | Public key of the account that created the deploy |
| `cost`         | `int`        | Deploy cost in motes                              |
| `errorMessage` | `string`     | Error message if the deploy failed                |
| `timestamp`    | `DateTime`   | Time when the source node saw the deploy          |

**Example**

```
{
  "deployHash": "056fc62a77f971a2323d6aa2a2a9633ed1dbb63c3ecfda15dffbab1a1479a976",
  "blockHash": "8ddb1e5e4a729c99347833fc4c8f8d32963e85a5737b5f6981d45eab306d014d",
  "account": "011cb66592b852208ebf1a2b88eec6ce61035f24bbe2691f82b71f824fbae3c369",
  "cost": 2732814230,
  "errorMessage": "ApiError::AuctionError(4) [64516]",
  "timestamp": "2021-06-23T08:15:34.000Z"
}
```

### Transfer

Represents transfers between accounts and/or purses

| Property      | Type          | Description                                                                                                                                  |
| ------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `transferId`  | `?int`        | User provided transfer ID, `null` if not provided                                                                                            |
| `deployHash`  | `string(64)`  | Parent deploy hash                                                                                                                           |
| `blockHash`   | `string(64)`  | Parent block hash                                                                                                                            |
| `fromAccount` | `string(64)`  | Account hash of the transfer sender                                                                                                          |
| `toAccount`   | `?string(64)` | Account hash of the transfer recipient. If `null`, then the funds were sent directly to a purse.                                             |
| `sourcePurse` | `string(73)`  | Purse the funds were transferred from (belongs to the transfer sender, in the majority of the cases, it will be the senders's main purse)    |
| `targetPurse` | `string(73)`  | Purse the funds were transferred to (belongs to the transfer recipient, in the majority of the cases, it will be the recipient's main purse) |
| `amount`      | `int`         | Transfer amount in motes                                                                                                                     |
| `timestamp`   | `DateTime`    | Time when the source node saw the deploy where the transfer happen                                                                           |

**Example**

```
{
  "transferId": 187821,
  "deployHash": "32a5716d14c0e6a92cbe1ec48af19ad6814ca87e0ba250ce191b2848b3dc71bf",
  "blockHash": "f39a25da3ad43acdeb8cdbad8874e683eabf65e42256096718bae592f744d110",
  "sourcePurse": "uref-4e66337c4e22451249ee44d70e603834907becfa8569c9a2c230d51efdd2a83f-007",
  "targetPurse": "uref-d6c0277d0ec99d2ba591c7328734da117cef5af6e9ee1daf66445b653749479e-004",
  "amount": "2500000000",
  "fromAccount": "ee3d42a0bd09405b3c5e1f757a23e24ea8fc54552aa18655981cd40643bc42bd",
  "toAccount": "ec109fc034b3a68362de508ad4da0bb4f614c4c617c36a775bbac8f78362d76c",
  "timestamp": "2021-06-22T20:19:54.000Z"
}
```

### Contract type

Value-object that defines contract type

| ID  | Name                  |
| --- | --------------------- |
| `1` | System                |
| `2` | Strict ERC-20         |
| `3` | Custom ERC-20         |
| `4` | Strict CEP-47 (NFT)   |
| `5` | Modified CEP-47 (NFT) |
| `6` | DeFi                  |

### Contract package

Represents contract packages deployed to the network

| Property                | Type          | Description                                              |
| ----------------------- | ------------- | -------------------------------------------------------- |
| `contract_package_hash` | `string(64)`  | Contract package hash                                    |
| `owner_public_key`      | `?string(68)` | Contract owner public key or `null` for system contracts |
| `contract_type_id`      | `int`         | Contract type identifier                                 |
| `contract_name`         | `string(128)` | Contract name, if it's known                             |
| `contract_description`  | `string(256)` | Contract description, if it's known                      |
| `metadata`              | `?json`       | Contract Metadata or `null`                              |
| `timestamp`             | `DateTime`    | Time when the first version of the contract was deployed |

**Example**

```
{
  "contract_package_hash": "fced7072e4b52f8f4841667cfc0a7d92c93b01ffc0717d5cd80f49546bd7febb",
  "owner_public_key": "02022ef9655d4e608076fbdfde2c4052df4a72e2d4d16ef80da9e129f705aa8288b7",
  "contract_type_id": null,
  "contract_name": "Account Info",
  "contract_description": "Contract developed by MAKE Software that allows account owners to provide information about themselves on the Casper Network",
  "metadata": {
    "symbol": "SYMBOL"
  },
  "timestamp": "2021-09-08T15:58:43.000Z"
}
```

### Contract

Represents particular contract versions deployed to the network

| Property                | Type         | Description                                                                 |
| ----------------------- | ------------ | --------------------------------------------------------------------------- |
| `contract_hash`         | `string(64)` | Contract hash                                                               |
| `contract_package_hash` | `string(64)` | Contract package hash                                                       |
| `deploy_hash`           | `string(64)` | Hash of the deploy that deployed the contract to the network                |
| `contract_type_id`      | `int`        | Contract type identifier                                                    |
| `contract_version`      | `int`        | Contract version. Versions are sequential natural numbers starting from `1` |
| `is_disabled`           | `bool`       | Contract description, if it's known                                         |
| `timestamp`             | `DateTime`   | Time when the first version of the contract was deployed                    |

**Example**

```
{
  "contract_hash": "34756be8e2a3a26ca69d081da76b67c9046c0dc010535eb5940c37461b774da7",
  "contract_package_hash": "74e7c4f25eafb5b902ecdcdf08a6bda30c128defd974309f76c7fd2160465237",
  "deploy_hash": "d348e076c150940e22a5b0c6addce78ed329c5f752a675a3212198036cd188b9",
  "contract_type_id": 3,
  "contract_version": 1,
  "is_disabled": false,
  "protocol_version": "1.4.6",
  "timestamp": "2022-08-03T16:55:07.000Z"
}
```

### Entry point

Represents contract entry points

| Property                | Type          | Description                     |
| ----------------------- | ------------- | ------------------------------- |
| `id`                    | `uint32`      | Internal entry point identifier |
| `contract_package_hash` | `string(64)`  | Contract package hash           |
| `contract_hash`         | `string(64)`  | Contract hash                   |
| `name`                  | `string(128)` | Entry point name                |

**Example**

```
{
  "id": "538",
  "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
  "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
  "name": "delegate",
}
```

### Deploy execution type

Value-object that defines deploy execution type

| ID  | Name                            |
| --- | ------------------------------- |
| `1` | `ModuleBytes`                   |
| `2` | `StoredContractByHash`          |
| `3` | `StoredContractByName`          |
| `4` | `StoredVersionedContractByHash` |
| `5` | `StoredVersionedContractByName` |
| `6` | `Transfer`                      |

### Extended Deploy

New iteration of the `Deploy` object that identifies contract calls

| Property                | Type               | Description                                                                        |
| ----------------------- | ------------------ | ---------------------------------------------------------------------------------- |
| `deploy_hash`           | `string(64)`       | Deploy hash                                                                        |
| `block_hash`            | `string(64)`       | Parent block hash                                                                  |
| `caller_public_key`     | `string(68)`       | Public key of the account that created the deploy                                  |
| `execution_type_id`     | `uint8`            | Execution type identifier                                                          |
| `contract_package_hash` | `?string(64)`      | Contract package hash or `null` if not a valid contract call                       |
| `contract_package`      | `?ContractPackage` | Contract package object that can be optionally included in the data                |
| `contract_hash`         | `?string(64)`      | Contract hash or `null` if not a valid contract call                               |
| `entry_point`           | `?EntryPoint`      | Entry point object that can be optionally included in the data                     |
| `args`                  | `?json`            | Entry point arguments in the network format or `null` if not a valid contract call |
| `amount`                | `?uint64`          | The `amount` argument value                                                        |
| `payment_amount`        | `uint64`           | Payment amount in motes                                                            |
| `cost`                  | `uint64`           | Cost in motes                                                                      |
| `error_message`         | `?string`          | Error message                                                                      |
| `status`                | `enum`             | `pending`, `executed` or `expired`                                                 |

**Example**

```
{
  "deploy_hash": "cf2a0d11f8b4e263a2e1dc50c1e0cbf0cb6b080deb9d27af7a2a9351742b6fa0",
  "block_hash": "f5a5a96e68c9c9cd8a4b66242d5106b83409330c961f9a4873484f0e03ba1342",
  "caller_public_key": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
  "execution_type_id": 2,
  "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
  "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
  "cost": "2500000000",
  "payment_amount": "2500000000",
  "error_message": null,
  "timestamp": "2022-08-09T15:26:30.000Z",
  "status": "executed",
  "args": {
    "amount": {
      "parsed": "851000000000",
      "cl_type": "U512"
    },
    "delegator": {
      "parsed": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
      "cl_type": "PublicKey"
    },
    "validator": {
      "parsed": "0169e1552a97843ff2ef4318e8a028a9f4ed0c16b3d96f6a6eee21e6ca0d4022bc",
      "cl_type": "PublicKey"
    }
  },
  "amount": "851000000000",
  "entry_point": {
    "id": "538",
    "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
    "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
    "name": "delegate",
    "action_type_id": null
  },
  "contract_package": {
    "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
    "owner_public_key": null,
    "contract_type_id": 1,
    "contract_name": "Auction",
    "contract_description": "Built-in contract that allows interaction with the validator auction, and provides possibility to bid and delegate funds to Casper network participants",
    "timestamp": "2021-03-31T15:00:40.000Z"
  }
}
```

### NFT Token

Represents an nft token minted by some nft contract

| Property                | Type               | Description                                                               |
| ----------------------- | ------------------ | ------------------------------------------------------------------------- |
| `tracking_id`           | `uint`             | Auto incremented id of the nft token on the CSPR.cloud side               |
| `token_standard_id`     | `uint(8)`          | NFT token standard id of the token                                        |
| `contract_package_hash` | `string(64)`       | Contract Package Hash of the token contract                               |
| `token_id`              | `string(64)`       | The id of the token                                                       |
| `owner_account_hash`    | `?string(64)`      | The hash of the token owner account, may be `null` if the token in burned |
| `metadata`              | `?json`            | NFT token Metadata or `null`                                              |
| `is_burned`             | `boolean`          | The flag that indicates weither token burned or not                       |
| `contract_package`      | `?ContractPackage` | Contract Package object                                                   |
| `owner_public_key`      | `?string(68)`      | The public key of the owner account, `null` if not being identified       |
| `timestamp`             | `DateTime`         | Time when the first version of the contract was deployed                  |

**Example**

```
{
  "tracking_id": "27576",
  "token_standard_id": 1,
  "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
  "token_id": "E2E-DEMO-01",
  "owner_account_hash": "fcc99f47a8a39da698c15e0dfc4a5ab5d6de08346b5d66c0235dee1342deea57",
  "metadata": [
    {
      "key": "tokenId",
      "value": "E2E-DEMO-01"
    },
    {
      "key": "tokenMetaHash",
      "value": "aUSvGy+AEcKzSjtQa0nb+w5nnT60MYFwm+9uGtgcAQI="
    }
  ],
  "is_burned": false,
  "timestamp": "2021-08-12T14:23:09.000Z",
  "contract_package": {
    "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
    "owner_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
    "contract_type_id": 5,
    "contract_name": "ipwe_nft",
    "contract_description": null,
    "metadata": {
      "symbol": "IPWENFT"
    },
    "timestamp": "2021-08-10T19:09:55.000Z"
  },
  "owner_public_key": null
}
```

### NFT Token Action

Represents an nft token action

| Property            | Type              | Description                                                                  |
| ------------------- | ----------------- | ---------------------------------------------------------------------------- |
| `deploy_hash`       | `string(64)`      | Deploy hash of the token action                                              |
| `token_tracking_id` | `uint`            | Tracking id of the NFT token                                                 |
| `from_account_hash` | `?string(64)`     | Account hash from which action happend, `null` for mint actions              |
| `to_account_hash`   | `?string(64)`     | Account hash to which action happend, `null` for burn actions                |
| `from_public_key`   | `?string(68)`     | Account public key from which action happend, `null` if not being identified |
| `to_public_key`     | `?string(68)`     | Account public key to which action happend, `null` if not being identified   |
| `nft_action_id`     | `uint(8)`         | NFT token action type id of the action                                       |
| `deploy`            | `?ExtendedDeploy` | Deploy object                                                                |
| `timestamp`         | `DateTime`        | Time when the first version of the contract was deployed                     |

**Example**

```
{
  "deploy_hash": "3430254ceff99cd48a779334b325109b61ce540337f37832b70e5a26beaa566a",
  "token_tracking_id": "27573",
  "from_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
  "from_public_key": null,
  "to_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
  "to_public_key": null,
  "nft_action_id": 5,
  "timestamp": "2021-08-12T06:52:20.000Z",
  "deploy": {
    "deploy_hash": "3430254ceff99cd48a779334b325109b61ce540337f37832b70e5a26beaa566a",
    "block_hash": "14a3913c56057ffa30e3b0ced909744a6a20c0ecf7357e8daac246251e196538",
    "caller_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
    "execution_type_id": 2,
    "contract_hash": "25f1c770dfe5258dd05d182dce8e96b1a2e35990b88c3f62f46e90dc352eabc6",
    "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
    "cost": "247504850",
    "payment_amount": "12000000000",
    "error_message": null,
    "timestamp": "2021-08-12T06:52:20.000Z",
    "status": "executed",
    "args": {
      "token_id": {
        "parsed": "E2E-TEST-05",
        "cl_type": "String"
      },
      "token_meta": {
        "parsed": [
          {
            "key": "tokenId",
            "value": "E2E-TEST-05"
          },
          {
            "key": "tokenMetaHash",
            "value": "D8pT5qyrZUKbpzePdG4kfzjU8O1tQLCaGBtT8DJ9CJs="
          }
        ],
        "cl_type": {
          "Map": {
            "key": "String",
            "value": "String"
          }
        }
      }
    },
    "amount": null
  }
}
```

### NFT Token standard

Value-object that defines nft token standard

| ID  | Name    |
| --- | ------- |
| `1` | `CEP47` |

### NFT Token action type

Value-object that defines nft token action type

| ID  | Name             |
| --- | ---------------- |
| `1` | `MintOne`        |
| `2` | `BurnOne`        |
| `3` | `ApproveToken`   |
| `4` | `TransferToken`  |
| `5` | `MetadataUpdate` |

### ERC20 Token Action

Represents an erc20 token action

| Property                | Type               | Description                                                                                       |
| ----------------------- | ------------------ | ------------------------------------------------------------------------------------------------- |
| `deploy_hash`           | `string(64)`       | Deploy hash of the token action                                                                   |
| `contract_package_hash` | `string(64)`       | Contract package hash of the token contract                                                       |
| `from_hash`             | `?string(64)`      | Hash from which action happend, `null` for mint actions                                           |
| `from_type`             | `?string(16)`      | The type of the from action participant, may be `account-hash`, `hash` or `null` for mint actions |
| `to_hash`               | `?string(64)`      | Hash to which action happend, `null` for burn actions                                             |
| `to_type`               | `?string(16)`      | The type of the to action participant, may be `account-hash`, `hash` or `null` for burn actions   |
| `from_public_key`       | `?string(68)`      | Account public key from which action happend, `null` if not being identified                      |
| `to_public_key`         | `?string(68)`      | Account public key to which action happend, `null` if not being identified                        |
| `erc20_action_type_id`  | `uint(8)`          | ERC20 token action type id of the action                                                          |
| `amount`                | `string(128)`      | The amount of tokens                                                                              |
| `deploy`                | `?ExtendedDeploy`  | Deploy object                                                                                     |
| `deploy`                | `?ContractPackage` | Contract Package object                                                                           |
| `timestamp`             | `DateTime`         | Time when the first version of the contract was deployed                                          |

**Example**

```
{
  "deploy_hash": "1f6ce947f6a6e3aeb422dfd2a15a9b3576cf18fe18f1cf753572f572b1b23490",
  "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
  "from_type": null,
  "from_hash": null,
  "from_public_key": null,
  "to_type": "account-hash",
  "to_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
  "to_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
  "erc20_action_type_id": 1,
  "amount": "100000000000000000000",
  "timestamp": "2022-08-16T17:54:05.000Z",
  "deploy": {
    "deploy_hash": "1f6ce947f6a6e3aeb422dfd2a15a9b3576cf18fe18f1cf753572f572b1b23490",
    "block_hash": "c3fe5f1128371bfeb41f2f52ce6610402c282a7a0c698b217f6b6c36bd819d43",
    "caller_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
    "execution_type_id": 2,
    "contract_hash": "93c6ea23c3ef98d6863478114b795cbf76034bda13c6a09c4a2e597741adf8a3",
    "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
    "cost": "378168830",
    "payment_amount": "5000000000",
    "error_message": null,
    "timestamp": "2022-08-16T17:54:05.000Z",
    "status": "executed",
    "args": {
      "to": {
        "parsed": {
          "Account": "account-hash-afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b"
        },
        "cl_type": "Key"
      },
      "amount": {
        "parsed": "100000000000000000000",
        "cl_type": "U256"
      }
    },
    "amount": "100000000000000000000"
  },
  "contract_package": {
    "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
    "owner_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
    "contract_type_id": 3,
    "contract_name": "Dai-Token",
    "contract_description": null,
    "metadata": {
      "symbol": "DAI",
      "decimals": 9,
      "balances_uref": "uref-5eb59a3e2fd776f3ce5abf869634f112134f2bd5d7eff34e78bbaa3bb3ff8392-007",
      "total_supply_uref": "uref-c0bba347aab0a6014002d2b5023db86e2080b789c84c5735f64a835e8b3ca132-007"
    },
    "timestamp": "2022-08-16T11:46:58.000Z"
  }
}
```

### ERC20 Token action type

Value-object that defines nft token action type

| ID  | Name       |
| --- | ---------- |
| `1` | `Mint`     |
| `2` | `Transfer` |
| `3` | `Approve`  |
| `4` | `Burn`     |

### Validator reward

`ValidatorReward` is an entity that stores information about era rewards earned by a validator

| Property    | Type         | Description                                                                |
| ----------- | ------------ | -------------------------------------------------------------------------- |
| `eraId`     | `int`        | ID of era when the reward was earned                                       |
| `publicKey` | `string(68)` | Validator public key                                                       |
| `amount`    | `int`        | Reward amount in motes                                                     |
| `timestamp` | `DateTime`   | Time when the source node saw the switch block where the reward was earned |

**Example**

```
{
  "eraId": 1015,
  "publicKey": "0190c434129ecbaeb34d33185ab6bf97c3c493fc50121a56a9ed8c4c52855b5ac1",
  "amount": 20742139338237,
  "timestamp": "2021-06-24T09:47:40.000Z"
}
```

### Delegator reward

`DelegatorReward` is an entity that stores information about era rewards earned by a delegator

| Property             | Type         | Description                                                                |
| -------------------- | ------------ | -------------------------------------------------------------------------- |
| `eraId`              | `int`        | ID of era when the reward was earned                                       |
| `publicKey`          | `string(68)` | Delegator public key                                                       |
| `validatorPublicKey` | `string(68)` | Validator public key                                                       |
| `amount`             | `int`        | Reward amount in motes                                                     |
| `timestamp`          | `DateTime`   | Time when the source node saw the switch block where the reward was earned |

**Example**

```
{
  "eraId": 1015,
  "publicKey": "01041a966808d68bf1de2c4f04d756e5ecf4059903eaf4bf6582188dbf96f891c4",
  "validatorPublicKey": "015fd964620f98e551065079e142840dac3fb25bd97a0d4722411cb439f9247d72",
  "amount": 4045968027,
  "timestamp": "2021-06-24T09:47:40.000Z"
}
```

### Token supply

`TokenSupply` is an entity that stores information about the token supply

| Property      | Type       | Description                                 |
| ------------- | ---------- | ------------------------------------------- |
| `total`       | `int`      | Total token supply                          |
| `circulating` | `int`      | Circulating token supply                    |
| `timestamp`   | `DateTime` | Time when the token supply was recalculated |

**Example**

```
{
  "data": {
    "total": 10168406025,
    "circulating": 592774555,
    "timestamp": 1624455946839
  }
}
```

## Endpoints

### Blocks

#### Get paginated list of blocks

**Endpoint**

```
GET /blocks
```

**Endpoint-specific query parameters**

| Parameter     | Type         | Description                                                 |
| ------------- | ------------ | ----------------------------------------------------------- |
| `blockHash`   | `string(64)` | Filters the results by block hash                           |
| `blockHeight` | `int`        | Filters the results by block height                         |
| `eraId`       | `int`        | Filters the results by era ID                               |
| `proposer`    | `string(68)` | Filters the results by public key of the proposer validator |

**Sorting**

Fields:

* `eraId`
* `blockHeight`
* `deployCount`
* `transferCount`
* `timestamp`

Default: `blockHeight DESC`

**Response**

```
PaginatedResponse<Block>
```

**Example**

```
GET /blocks
```

```
{
  "data": [
    {
      "blockHash": "44a3d4814e268564f7850267114d29c1f586601c4ace43efaa6ae32d500d0dea",
      "parentHash": "68d5b023a14181c8c5f40f6ac1c419e42721b7b127f7d2bf0c879cb71f7123b2",
      "timestamp": "2021-06-23T07:12:57.000Z",
      "eraId": 900,
      "proposer": "01d66d09fb163ca2723960470777467056951df570d6add6e051af827a3b07c76a",
      "state": "cb5d59ce600bee8d5dd5e10453c1d1b0a430d1ce31f9057f0e00f5f4e4418ad1",
      "deployCount": 0,
      "transferCount": 0,
      "blockHeight": 86097
    },
    ...,
    {
      "blockHash": "b567e4ed1804bf458f53c19503f411e4f2fea4957d86a9e03de8b2d7f8a8b19d",
      "parentHash": "236d5262dd9f2c1e9504fa0bfa2eb58fc34c34360c4e1d6c26faf052b44d89bd",
      "timestamp": "2021-06-23T07:03:08.000Z",
      "eraId": 900,
      "proposer": "0125a1d61bbeb09579e5e9c2126eabfdbbce3f061251496e3674e7bf0cf2587cbb",
      "state": "cb5d59ce600bee8d5dd5e10453c1d1b0a430d1ce31f9057f0e00f5f4e4418ad1",
      "deployCount": 0,
      "transferCount": 0,
      "blockHeight": 86088
    }
  ],
  "pageCount": 8610,
  "itemCount": 86097,
  "pages": [
    {
      "number": 1,
      "url": "/blocks?page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/blocks?page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/blocks?page=3&limit=10"
    }
  ]
}
```

#### Get block by hash

**Endpoint**

```
GET /blocks/:blockHash
```

**Response**

```
Block
```

**Example**

```
GET /blocks/7d95e118b769392670b82e7e336b3da4453dbbcfa83ef1dcc978538f8fd8a2c3
```

```
{
  "data": {
    "blockHash": "7d95e118b769392670b82e7e336b3da4453dbbcfa83ef1dcc978538f8fd8a2c3",
    "parentHash": "4f235287f3bb9bd0d6e459a7dafe4cf8be92fae32678c2d1d52cce230c54108f",
    "timestamp": "2021-06-23T07:54:28.000Z",
    "eraId": 900,
    "proposer": "018f0d3e2bd95047078003ca8b06b4c26c0bf99500927827fea39ba4454c3d1e78",
    "state": "a2d4450b8e56fb27f011e7330cc07e1f4b3322a38cc317a18ab08c8d479a1d57",
    "deployCount": 0,
    "transferCount": 0,
    "blockHeight": 86135
  }
}
```

#### Get paginated list of block deploys

**Endpoint**

```
GET /blocks/:blockHash/deploys
```

**Endpoint-specific query parameters**

| Parameter | Type         | Description                                              |
| --------- | ------------ | -------------------------------------------------------- |
| `account` | `string(68)` | Filters the results by public key of the creator account |

**Sorting**

Fields:

* `cost`
* `timestamp`

Default: `timestamp DESC`

**Response**

```
PaginatedResponse<Deploy>
```

**Example**

```
GET /blocks/673c0bc66d4592f6e3f01ffc16f8784fa427db90b00132287aa979e6356fb61c/deploys
```

```
{
  "data": [
    {
      "deployHash": "8db684fd6b5ddd1f518845cda3ada15853be9a800111b071e9b8cfdeb8b6d646",
      "blockHash": "673c0bc66d4592f6e3f01ffc16f8784fa427db90b00132287aa979e6356fb61c",
      "account": "01459b4289c57c69b0b8bb7cb7e9dbd65759595c970124286e3aded5e7d51b35dc",
      "cost": 2732814230,
      "errorMessage": "ApiError::AuctionError(4) [64516]",
      "timestamp": "2021-06-23T08:13:27.000Z"
    }
  ],
  "pageCount": 1,
  "itemCount": 1,
  "pages": [
    {
      "number": 1,
      "url": "/blocks/673c0bc66d4592f6e3f01ffc16f8784fa427db90b00132287aa979e6356fb61c/deploys?page=1&limit=10"
    }
  ]
}
```

#### Get paginated list of block transfers

**Endpoint**

```
GET /blocks/:blockHash/transfers
```

**Endpoint-specific query parameters**

| Parameter     | Type         | Description                                                |
| ------------- | ------------ | ---------------------------------------------------------- |
| `deployHash`  | `string(64)` | Filters the results by block hash                          |
| `transferId`  | `int`        | Filters the results by transferId                          |
| `accountHash` | `string(64)` | Filters the results by `accountFrom` or `accountTo` fields |

**Sorting**

Fields:

* `amount`
* `timestamp`

Default: `timestamp DESC`

**Response**

```
PaginatedResponse<Transfer>
```

**Example**

```
GET /blocks/2990f5c3b50d76e2f39d6abc39d942b27b20ca338e3c2ddce8731c1ba163adc1/transfers
```

```
{
  "data": [
    {
      "transferId": 187821,
      "deployHash": "bfd660bd1d098ddfeb57a3d1f85d770fff67191c37f92194bfab8f6cf5378e02",
      "blockHash": "2990f5c3b50d76e2f39d6abc39d942b27b20ca338e3c2ddce8731c1ba163adc1",
      "sourcePurse": "uref-4e66337c4e22451249ee44d70e603834907becfa8569c9a2c230d51efdd2a83f-007",
      "targetPurse": "uref-024de273b007fc939bd82dc61119eb0794e800040b745f673d193ab3bb450fba-004",
      "amount": "2500000000",
      "fromAccount": "ee3d42a0bd09405b3c5e1f757a23e24ea8fc54552aa18655981cd40643bc42bd",
      "toAccount": "c5be6bdd586cdd08df8c6287124014dbe765b73ffcea8bd00a1e0f8d5416f869",
      "timestamp": "2021-06-22T19:30:42.000Z"
    }
  ],
  "pageCount": 1,
  "itemCount": 1,
  "pages": [
    {
      "number": 1,
      "url": "/blocks/2990f5c3b50d76e2f39d6abc39d942b27b20ca338e3c2ddce8731c1ba163adc1/transfers?page=1&limit=10"
    }
  ]
}
```

### Deploys (deprecated)

#### Get paginated list of deploys

**Endpoint**

```
GET /deploys
```

**Endpoint-specific query parameters**

| Parameter   | Type         | Description                                              |
| ----------- | ------------ | -------------------------------------------------------- |
| `blockHash` | `string(64)` | Filters the results by block hash                        |
| `account`   | `string(68)` | Filters the results by public key of the creator account |

**Sorting**

Fields:

* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<Deploy>
```

**Example**

```
GET /deploys
```

```
{
  "data": [
    {
      "deployHash": "4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b",
      "blockHash": "4ae0d6b50dafd5a108404bd70614409573404d73167c08b25f3d5c286ba12ff5",
      "account": "01c6af2fdbce2da279a26b595567b5679aa26083b67cfdb9c2a3812310702894dd",
      "cost": 2735834850,
      "errorMessage": null,
      "timestamp": "2021-06-23T08:59:49.000Z"
    },
    ...,
    {
      "deployHash": "38d67ea3e72ac26278c4450a32a5e711bd5f5648e10502994e9de7e78c5ecff6",
      "blockHash": "238df5fd9d5929156db21a42066c405bc5fa7dd9b9ebeb062aad3f4d0906edeb",
      "account": "018afa98ca4be12d613617f7339a2d576950a2f9a92102ca4d6508ee31b54d2c02",
      "cost": 170101740,
      "errorMessage": null,
      "timestamp": "2021-06-23T07:40:57.000Z"
    }
  ],
  "pageCount": 679,
  "itemCount": 6787,
  "pages": [
    {
      "number": 1,
      "url": "/deploys?page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/deploys?page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/deploys?page=3&limit=10"
    }
  ]
}
```

#### Get deploy by hash

**Endpoint**

```
GET /deploys/:deployHash
```

**Response**

```
Deploy
```

**Example**

```
GET /deploys/1e8639fc8737c6d43ec7ade2898b0db5924015b8b3f6589063b8927bed8579a8
```

```
{
  "data": {
    "deployHash": "1e8639fc8737c6d43ec7ade2898b0db5924015b8b3f6589063b8927bed8579a8",
    "blockHash": "b351a39944585bc7d7102ca9fabe3fc87edfedb1336d623fb973e9c4f25acc6a",
    "account": "01459b4289c57c69b0b8bb7cb7e9dbd65759595c970124286e3aded5e7d51b35dc",
    "cost": 2735834850,
    "errorMessage": null,
    "timestamp": "2021-06-23T08:12:24.000Z"
  }
}
```

#### Get paginated list of deploy transfers

**Endpoint**

```
GET /deploys/:deployHash/transfers
```

**Endpoint-specific query parameters**

| Parameter     | Type         | Description                                                |
| ------------- | ------------ | ---------------------------------------------------------- |
| `blockHash`   | `string(64)` | Filters the results by block hash                          |
| `transferId`  | `int`        | Filters the results by transferId                          |
| `accountHash` | `string(64)` | Filters the results by `accountFrom` or `accountTo` fields |

**Sorting**

Fields:

* `amount`
* `timestamp`

Default: `timestamp DESC`

**Response**

```
PaginatedResponse<Transfer>
```

**Example**

```
GET /deploys/4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b/transfers
```

```
{
  "data": [
    {
      "transferId": null,
      "deployHash": "4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b",
      "blockHash": "4ae0d6b50dafd5a108404bd70614409573404d73167c08b25f3d5c286ba12ff5",
      "sourcePurse": "uref-be8d8056f4c4a11b034ffa1f4a502beacba0d8ba6434f2c9bd43fb05205bfb96-007",
      "targetPurse": "uref-67ff62b09c09df8f18e182644d66295c7e50b7ddcee6cad17d960edaca01f344-007",
      "amount": "900000000000",
      "fromAccount": "1688d91a338b807ebfc1756568e6388b9c94abcfe1e7bc671adaf70d681b5fc0",
      "toAccount": null,
      "timestamp": "2021-06-23T08:59:49.000Z"
    }
  ],
  "pageCount": 1,
  "itemCount": 1,
  "pages": [
    {
      "number": 1,
      "url": "/deploys/4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b/transfers?page=1&limit=10"
    }
  ]
}
```

### Extended deploys

#### Get paginated list of extended deploys

**Endpoint**

```
GET /extended-deploys
```

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                              |
| ----------------------- | ------------ | -------------------------------------------------------- |
| `block_hash`            | `string(64)` | Filters the results by block hash                        |
| `caller_public_key`     | `string(68)` | Filters the results by public key of the creator account |
| `contract_package_hash` | `string(64)` | Filters the results by contract package hash             |
| `contract_hash`         | `string(64)` | Filters the results by contract hash                     |

**Sorting**

Fields:

* `block_hash`
* `caller_public_key`
* `contract_package_hash`
* `contract_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<ExtendedDeploys>
```

**Example**

```
GET /extended-deploys?fields=contract_package,entry_point
```

```
{
  "data": [
    {
      "deploy_hash": "cf2a0d11f8b4e263a2e1dc50c1e0cbf0cb6b080deb9d27af7a2a9351742b6fa0",
      "block_hash": "f5a5a96e68c9c9cd8a4b66242d5106b83409330c961f9a4873484f0e03ba1342",
      "caller_public_key": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
      "execution_type_id": 2,
      "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
      "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
      "cost": "2500000000",
      "payment_amount": "2500000000",
      "error_message": null,
      "timestamp": "2022-08-09T15:26:30.000Z",
      "status": "executed",
      "args": {
        "amount": {
          "parsed": "851000000000",
          "cl_type": "U512"
        },
        "delegator": {
          "parsed": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
          "cl_type": "PublicKey"
        },
        "validator": {
          "parsed": "0169e1552a97843ff2ef4318e8a028a9f4ed0c16b3d96f6a6eee21e6ca0d4022bc",
          "cl_type": "PublicKey"
        }
      },
      "amount": "851000000000",
      "entry_point": {
        "id": "538",
        "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
        "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
        "name": "delegate",
        "action_type_id": null
      },
      "contract_package": {
        "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
        "owner_public_key": null,
        "contract_type_id": 1,
        "contract_name": "Auction",
        "contract_description": "Built-in contract that allows interaction with the validator auction, and provides possibility to bid and delegate funds to Casper network participants",
        "timestamp": "2021-03-31T15:00:40.000Z"
      }
    },
    ...
  ],
  "pageCount": 64794,
  "itemCount": 647936,
  "pages": [
    {
      "number": 1,
      "url": "/extended-deploys?fields%5B0%5D=contract_package&fields%5B1%5D=entry_point&page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/extended-deploys?fields%5B0%5D=contract_package&fields%5B1%5D=entry_point&page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/extended-deploys?fields%5B0%5D=contract_package&fields%5B1%5D=entry_point&page=3&limit=10"
    }
  ]
}
```

#### Get extended deploy by hash

**Endpoint**

```
GET /extended-deploys/:deploy_hash
```

**Response**

```
ExtendedDeploy
```

**Example**

```
GET /extended-deploys/cf2a0d11f8b4e263a2e1dc50c1e0cbf0cb6b080deb9d27af7a2a9351742b6fa0?fields=contract_package,entry_point
```

```
{
  "data": {
    "deploy_hash": "cf2a0d11f8b4e263a2e1dc50c1e0cbf0cb6b080deb9d27af7a2a9351742b6fa0",
    "block_hash": "f5a5a96e68c9c9cd8a4b66242d5106b83409330c961f9a4873484f0e03ba1342",
    "caller_public_key": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
    "execution_type_id": 2,
    "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
    "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
    "cost": "2500000000",
    "payment_amount": "2500000000",
    "error_message": null,
    "timestamp": "2022-08-09T15:26:30.000Z",
    "status": "executed",
    "args": {
    "amount": {
      "parsed": "851000000000",
      "cl_type": "U512"
    },
    "delegator": {
      "parsed": "020222f81070130766028a76432e3272573ac5fc48df45cca9a2d088b0dcd675bb37",
      "cl_type": "PublicKey"
    },
    "validator": {
      "parsed": "0169e1552a97843ff2ef4318e8a028a9f4ed0c16b3d96f6a6eee21e6ca0d4022bc",
      "cl_type": "PublicKey"
    }
    },
    "amount": "851000000000",
    "entry_point": {
    "id": "538",
    "contract_hash": "ccb576d6ce6dec84a551e48f0d0b7af89ddba44c7390b690036257a04a3ae9ea",
    "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
    "name": "delegate",
    "action_type_id": null
    },
    "contract_package": {
    "contract_package_hash": "86f2d45f024d7bb7fb5266b2390d7c253b588a0a16ebd946a60cb4314600af74",
    "owner_public_key": null,
    "contract_type_id": 1,
    "contract_name": "Auction",
    "contract_description": "Built-in contract that allows interaction with the validator auction, and provides possibility to bid and delegate funds to Casper network participants",
    "timestamp": "2021-03-31T15:00:40.000Z"
    }
  }
}
```

### Accounts

#### Get paginated list of account deploys (deprecated)

**Endpoint**

```
GET /accounts/:public_key/deploys
```

Note, that an account public key should be used to form the URL.

**Endpoint-specific query parameters**

| Parameter   | Type         | Description                       |
| ----------- | ------------ | --------------------------------- |
| `blockHash` | `string(64)` | Filters the results by block hash |

**Sorting**

Fields:

* `cost`
* `timestamp`

Default: `timestamp DESC`

**Response**

```
PaginatedResponse<Deploy>
```

**Example**

```
GET /accounts/01c6af2fdbce2da279a26b595567b5679aa26083b67cfdb9c2a3812310702894dd/deploys
```

```
{
  "data": [
    {
      "deployHash": "4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b",
      "blockHash": "4ae0d6b50dafd5a108404bd70614409573404d73167c08b25f3d5c286ba12ff5",
      "account": "01c6af2fdbce2da279a26b595567b5679aa26083b67cfdb9c2a3812310702894dd",
      "cost": 2735834850,
      "errorMessage": null,
      "timestamp": "2021-06-23T08:59:49.000Z"
    }
  ],
  "pageCount": 1,
  "itemCount": 1,
  "pages": [
    {
      "number": 1,
      "url": "/accounts/01c6af2fdbce2da279a26b595567b5679aa26083b67cfdb9c2a3812310702894dd/deploys?page=1&limit=10"
    }
  ]
}
```

#### Get paginated list of account extended deploys

**Endpoint**

```
GET /accounts/:public_key/extended-deploys
```

Note, that an account public key should be used to form the URL.

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                  |
| ----------------------- | ------------ | -------------------------------------------- |
| `block_hash`            | `string(64)` | Filters the results by block hash            |
| `contract_package_hash` | `string(64)` | Filters the results by contract package hash |
| `contract_hash`         | `string(64)` | Filters the results by contract hash         |

**Sorting**

Fields:

* `block_hash`
* `contract_package_hash`
* `contract_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<ExtendedDeploys>
```

**Example**

```
GET /accounts/012bac1d0ff9240ff0b7b06d555815640497861619ca12583ddef434885416e69b/extended-deploys?fields=entry_point,contract_package
```

```
{
  "data": [
    {
      "deploy_hash": "6022c141856010f4c3514bc17e993f4f42b467ce112f0828205f6acda2d1b5b0",
      "block_hash": "9f482f15c0a93c3a04f87dcde34dec3f01859e2387535b3f06ca98a0ba42b8f6",
      "caller_public_key": "012bac1d0ff9240ff0b7b06d555815640497861619ca12583ddef434885416e69b",
      "execution_type_id": 6,
      "contract_hash": null,
      "contract_package_hash": null,
      "cost": "100000000",
      "payment_amount": "300000000",
      "error_message": null,
      "timestamp": "2022-08-02T07:54:34.000Z",
      "status": "executed",
      "args": {
        "id": {
          "parsed": 123456789012345,
          "cl_type": {
            "Option": "U64"
          }
        },
        "amount": {
          "parsed": "479700000000000",
          "cl_type": "U512"
        },
        "target": {
          "parsed": "9312048c7e71cfcda29af7ed2588220965c205031ec2161c890ea8cd718a7a91",
          "cl_type": {
            "ByteArray": 32
          }
        }
      },
      "amount": "479700000000000",
      "entry_point": null,
      "contract_package": null,
    },
    ...
  ],
  "pageCount": 8,
  "itemCount": 75,
  "pages": [
    {
      "number": 1,
      "url": "/accounts/012bac1d0ff9240ff0b7b06d555815640497861619ca12583ddef434885416e69b/extended-deploys?with_amounts_in_currency_id=1&page=1&limit=10&fields%5B0%5D=entry_point&fields%5B1%5D=contract_package"
    },
    {
      "number": 2,
      "url": "/accounts/012bac1d0ff9240ff0b7b06d555815640497861619ca12583ddef434885416e69b/extended-deploys?with_amounts_in_currency_id=1&page=2&limit=10&fields%5B0%5D=entry_point&fields%5B1%5D=contract_package"
    },
    {
      "number": 3,
      "url": "/accounts/012bac1d0ff9240ff0b7b06d555815640497861619ca12583ddef434885416e69b/extended-deploys?with_amounts_in_currency_id=1&page=3&limit=10&fields%5B0%5D=entry_point&fields%5B1%5D=contract_package"
    }
  ]
}
```

#### Get paginated list of transfers from account and to account

**Endpoint**

```
GET /accounts/:accountHash/transfers
```

Note, that an account hash should be used for form the URL. The reason for that is that on the chain transfers are tracked by account hashes.

**Endpoint-specific query parameters**

| Parameter    | Type         | Description                       |
| ------------ | ------------ | --------------------------------- |
| `blockHash`  | `string(64)` | Filters the results by block hash |
| `deployHash` | `string(64)` | Filters the results by block hash |
| `transferId` | `int`        | Filters the results by transferId |

**Sorting**

Fields:

* `amount`
* `timestamp`

Default: `timestamp DESC`

**Response**

```
PaginatedResponse<Transfer>
```

**Example**

```
GET /accounts/1688d91a338b807ebfc1756568e6388b9c94abcfe1e7bc671adaf70d681b5fc0/transfers
```

```
{
  "data": [
    {
      "transferId": null,
      "deployHash": "4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b",
      "blockHash": "4ae0d6b50dafd5a108404bd70614409573404d73167c08b25f3d5c286ba12ff5",
      "sourcePurse": "uref-be8d8056f4c4a11b034ffa1f4a502beacba0d8ba6434f2c9bd43fb05205bfb96-007",
      "targetPurse": "uref-67ff62b09c09df8f18e182644d66295c7e50b7ddcee6cad17d960edaca01f344-007",
      "amount": "900000000000",
      "fromAccount": "1688d91a338b807ebfc1756568e6388b9c94abcfe1e7bc671adaf70d681b5fc0",
      "toAccount": null,
      "timestamp": "2021-06-23T08:59:49.000Z"
    },
    {
      "transferId": null,
      "deployHash": "4e861137173369b14c5b40692c7d405528880a1b350631e7d6a8dfece62ea363",
      "blockHash": "7a83be4831c9656a287479529f4df78659568da8831efb46abcbe2ab34475a26",
      "sourcePurse": "uref-b06a1ab0cfb52b5d4f9a08b68a5dbe78e999de0b0484c03e64f5c03897cf637b-007",
      "targetPurse": "uref-be8d8056f4c4a11b034ffa1f4a502beacba0d8ba6434f2c9bd43fb05205bfb96-004",
      "amount": "1000000000000",
      "fromAccount": "b383c7cc23d18bc1b42406a1b2d29fc8dba86425197b6f553d7fd61375b5e446",
      "toAccount": "1688d91a338b807ebfc1756568e6388b9c94abcfe1e7bc671adaf70d681b5fc0",
      "timestamp": "2021-06-22T10:54:12.000Z"
    }
  ],
  "pageCount": 1,
  "itemCount": 2,
  "pages": [
    {
      "number": 1,
      "url": "/accounts/1688d91a338b807ebfc1756568e6388b9c94abcfe1e7bc671adaf70d681b5fc0/transfers?page=1&limit=10"
    }
  ]
}
```

### Transfers

#### Get paginated list of transfers

**Endpoint**

```
GET /transfers
```

**Endpoint-specific query parameters**

| Parameter     | Type         | Description                                                |
| ------------- | ------------ | ---------------------------------------------------------- |
| `blockHash`   | `string(64)` | Filters the results by block hash                          |
| `deployHash`  | `string(64)` | Filters the results by block hash                          |
| `transferId`  | `int`        | Filters the results by transferId                          |
| `accountHash` | `string(64)` | Filters the results by `accountFrom` or `accountTo` fields |

**Sorting**

Fields:

* `amount`
* `timestamp`

Default: `timestamp DESC`

**Response**

```
PaginatedResponse<Transfer>
```

**Example**

```
GET /transfers
```

```
{
  "data": [
    {
      "transferId": null,
      "deployHash": "4e508e8d44e2dc82a1a3ba6222f84c9527c844fa3ccafb899ef131816a2ab95b",
      "blockHash": "4ae0d6b50dafd5a108404bd70614409573404d73167c08b25f3d5c286ba12ff5",
      "sourcePurse": "uref-be8d8056f4c4a11b034ffa1f4a502beacba0d8ba6434f2c9bd43fb05205bfb96-007",
      "targetPurse": "uref-67ff62b09c09df8f18e182644d66295c7e50b7ddcee6cad17d960edaca01f344-007",
      "amount": "900000000000",
      "fromAccount": "1688d91a338b807ebfc1756568e6388b9c94abcfe1e7bc671adaf70d681b5fc0",
      "toAccount": null,
      "timestamp": "2021-06-23T08:59:49.000Z"
    },
    ...,
    {
      "transferId": 187821,
      "deployHash": "bfd660bd1d098ddfeb57a3d1f85d770fff67191c37f92194bfab8f6cf5378e02",
      "blockHash": "2990f5c3b50d76e2f39d6abc39d942b27b20ca338e3c2ddce8731c1ba163adc1",
      "sourcePurse": "uref-4e66337c4e22451249ee44d70e603834907becfa8569c9a2c230d51efdd2a83f-007",
      "targetPurse": "uref-024de273b007fc939bd82dc61119eb0794e800040b745f673d193ab3bb450fba-004",
      "amount": "2500000000",
      "fromAccount": "ee3d42a0bd09405b3c5e1f757a23e24ea8fc54552aa18655981cd40643bc42bd",
      "toAccount": "c5be6bdd586cdd08df8c6287124014dbe765b73ffcea8bd00a1e0f8d5416f869",
      "timestamp": "2021-06-22T19:30:42.000Z"
    }
  ],
  "pageCount": 445,
  "itemCount": 4441,
  "pages": [
    {
      "number": 1,
      "url": "/transfers?page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/transfers?page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/transfers?page=3&limit=10"
    }
  ]
}
```

### Contract Packages

#### Get paginated list of contract packages

**Endpoint**

```
GET /contract-packages
```

**Endpoint-specific query parameters**

| Parameter          | Type         | Description                                              |
| ------------------ | ------------ | -------------------------------------------------------- |
| `owner_public_key` | `string(68)` | Filters the results by public key of the creator account |

**Sorting**

Fields:

* `owner_public_key`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<ContractPackages>
```

**Example**

```
GET /contract-packages?page=1&limit=3
```

```
{
  "data": [
    {
      "contract_package_hash": "09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7",
      "owner_public_key": "0202817047d701d1d006374e30e873d5d56051c92fb105c047cf97c457d55aa42a93",
      "contract_type_id": 4,
      "contract_name": "my_token",
      "contract_description": null,
      "metadata": {
        "symbol": "MY"
      },
      "timestamp": "2022-12-13T11:31:13.000Z"
    },
    {
      "contract_package_hash": "1bf2b50e368527a58cddfd47c51eec8f273696b3f494abb38fa33baf5adc9e8b",
      "owner_public_key": "015d4d230841ae93139f23124597468f4e9d7f7f68479f5394ccd0079814661504",
      "contract_type_id": null,
      "contract_name": null,
      "contract_description": null,
      "metadata": null,
      "timestamp": "2022-12-13T09:41:43.000Z"
    },
    {
      "contract_package_hash": "9be9a80ac12ad77d3293febd4832c2a8b848b61e886a26e0bda6ea83e7cfe61c",
      "owner_public_key": "01eb9b0e8e73de521f86f40666d985529ae316aff5ace6c4049a42364f442e0e76",
      "contract_type_id": null,
      "contract_name": null,
      "contract_description": null,
      "metadata": null,
      "timestamp": "2022-12-13T09:14:55.000Z"
    }
  ],
  "pageCount": 2192,
  "itemCount": 6574,
  "pages": [
    {
      "number": 1,
      "url": "/contract-packages?page=1&limit=3"
    },
    {
      "number": 2,
      "url": "/contract-packages?page=2&limit=3"
    },
    {
      "number": 3,
      "url": "/contract-packages?page=3&limit=3"
    }
  ]
}
```

#### Get contract packages by hash

**Endpoint**

```
GET /contract-packages/:contract_package_hash
```

**Response**

```
ContractPackage
```

**Example**

```
GET /contract-packages/09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7
```

```
{
    "contract_package_hash": "09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7",
    "owner_public_key": "0202817047d701d1d006374e30e873d5d56051c92fb105c047cf97c457d55aa42a93",
    "contract_type_id": 4,
    "contract_name": "my_token",
    "contract_description": null,
    "metadata": {
        "symbol": "MY"
    },
    "timestamp": "2022-12-13T11:31:13.000Z"
}
```

### Contracts

#### Get paginated list of contracts

**Endpoint**

```
GET /contracts
```

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                                             |
| ----------------------- | ------------ | ----------------------------------------------------------------------- |
| `contract_package_hash` | `string(64)` | Filters the results by parent contract package hash                     |
| `deploy_hash`           | `string(64)` | Filters the results by a deploy hash of the wasm deploy of the contract |

**Sorting**

Fields:

* `contract_package_hash`
* `deploy_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<Contracts>
```

**Example**

```
GET /contracts?limit=2&page=1&order_by=timestamp&order_direction=desc&fields=contract_package
```

```
{
  "data": [
    {
      "contract_hash": "a392da84d5b35519d3eb603a437e2380b025a0f1c74612d0dd64557590941d52",
      "contract_package_hash": "09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7",
      "deploy_hash": "4ba81dc898bc83ead79990a6e98a1c99c1e9ecebf3474df50b54bae5efa0c6c1",
      "contract_type_id": 4,
      "contract_version": 1,
      "is_disabled": false,
      "protocol_version": "1.4.10",
      "timestamp": "2022-12-13T11:31:13.000Z",
      "contract_package": {
        "contract_package_hash": "09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7",
        "owner_public_key": "0202817047d701d1d006374e30e873d5d56051c92fb105c047cf97c457d55aa42a93",
        "contract_type_id": 4,
        "contract_name": "my_token",
        "contract_description": null,
        "metadata": {
          "symbol": "MY"
        },
        "timestamp": "2022-12-13T11:31:13.000Z"
      }
    },
    {
      "contract_hash": "eebcae5c33ff9f526bcd1f473b9b0f3c01cd730e4273e54c537c0ece6b7d04fa",
      "contract_package_hash": "1bf2b50e368527a58cddfd47c51eec8f273696b3f494abb38fa33baf5adc9e8b",
      "deploy_hash": "26307fbb6ee43d71c76fc65f4100bc5717b93b0bf305533aaceda9feb9b5e910",
      "contract_type_id": null,
      "contract_version": 1,
      "is_disabled": false,
      "protocol_version": "1.4.10",
      "timestamp": "2022-12-13T09:41:43.000Z",
      "contract_package": {
        "contract_package_hash": "1bf2b50e368527a58cddfd47c51eec8f273696b3f494abb38fa33baf5adc9e8b",
        "owner_public_key": "015d4d230841ae93139f23124597468f4e9d7f7f68479f5394ccd0079814661504",
        "contract_type_id": null,
        "contract_name": null,
        "contract_description": null,
        "metadata": null,
        "timestamp": "2022-12-13T09:41:43.000Z"
      }
    }
  ],
  "pageCount": 3594,
  "itemCount": 7188,
  "pages": [
    {
      "number": 1,
      "url": "/contracts?limit=2&page=1&orderBy=timestamp&orderDirection=desc&fields%5B0%5D=contract_package"
    },
    {
      "number": 2,
      "url": "/contracts?limit=2&page=2&orderBy=timestamp&orderDirection=desc&fields%5B0%5D=contract_package"
    },
    {
      "number": 3,
      "url": "/contracts?limit=2&page=3&orderBy=timestamp&orderDirection=desc&fields%5B0%5D=contract_package"
    }
  ]
}
```

#### Get contract by hash

**Endpoint**

```
GET /contracts/:contract_hash
```

**Response**

```
Contract
```

**Example**

```
GET /contracts/a392da84d5b35519d3eb603a437e2380b025a0f1c74612d0dd64557590941d52?fields=contract_package
```

```
{
  "contract_hash": "a392da84d5b35519d3eb603a437e2380b025a0f1c74612d0dd64557590941d52",
  "contract_package_hash": "09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7",
  "deploy_hash": "4ba81dc898bc83ead79990a6e98a1c99c1e9ecebf3474df50b54bae5efa0c6c1",
  "contract_type_id": 4,
  "contract_version": 1,
  "is_disabled": false,
  "protocol_version": "1.4.10",
  "timestamp": "2022-12-13T11:31:13.000Z",
  "contract_package": {
    "contract_package_hash": "09fd8c6bf8b0f3d0e33a7bbc3eab4885915a98bd1d1af898a4f04e03f15d3aa7",
    "owner_public_key": "0202817047d701d1d006374e30e873d5d56051c92fb105c047cf97c457d55aa42a93",
    "contract_type_id": 4,
    "contract_name": "my_token",
    "contract_description": null,
    "metadata": {
      "symbol": "SYMBOL"
    },
    "timestamp": "2022-12-13T11:31:13.000Z"
  }
}
```

### NFT Tokens

#### Get paginated list of nft tokens by owner account hash

**Endpoint**

```
GET /accounts/:account_hash/nft-tokens
```

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                         |
| ----------------------- | ------------ | --------------------------------------------------- |
| `contract_package_hash` | `string(64)` | Filters the results by parent contract package hash |

**Sorting**

Fields:

* `contract_package_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<NFTTokens>
```

**Example**

```
GET /accounts/124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268/nft-tokens?page=1&limit=3&fields=contract_package
```

```
{
  "data": [
    {
      "tracking_id": "39573",
      "token_standard_id": 1,
      "contract_package_hash": "43244c6700af3bd4283bed01ff4858d6d00326c8b23a47b8bed2a6095419f869",
      "token_id": "59",
      "owner_account_hash": "124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268",
      "metadata": [
        {
          "key": "contentHash",
          "value": "c7a3a57cdfde6499f012f553f13dc1163805e0a4992239221091beb0b9bb623f"
        },
        {
          "key": "name",
          "value": "Jan Hoffmann"
        },
        {
          "key": "url",
          "value": "https://assets.staging.nftselfie.app/nft/c7a3a57cdfde6499f012f553f13dc1163805e0a4992239221091beb0b9bb623f.mp4"
        },
        {
          "key": "description",
          "value": "CasperLabs Dev"
        },
        {
          "key": "organization",
          "value": "CasperLabs"
        },
        {
          "key": "event",
          "value": "Austin, Texas"
        }
      ],
      "is_burned": false,
      "timestamp": "2022-06-08T17:29:57.000Z",
      "contract_package": {
        "contract_package_hash": "43244c6700af3bd4283bed01ff4858d6d00326c8b23a47b8bed2a6095419f869",
        "owner_public_key": "015c7359149e0f61ef7ba85c5d30733b59ab0c398695eda36d7c003e1bf1f71f18",
        "contract_type_id": 4,
        "contract_name": "selfie",
        "contract_description": null,
        "metadata": {
          "symbol": "SELFIE"
        },
        "timestamp": "2022-05-17T16:20:56.000Z"
      },
      "owner_public_key": "01cf7a6c980aaef16da662785878e2abaf77bd72c9466d9269ad784ea5a94ebff5"
    },
    {
      "tracking_id": "39493",
      "token_standard_id": 1,
      "contract_package_hash": "43244c6700af3bd4283bed01ff4858d6d00326c8b23a47b8bed2a6095419f869",
      "token_id": "47",
      "owner_account_hash": "124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268",
      "metadata": [
        {
          "key": "contentHash",
          "value": "1ea50b421cb81f8480e97a579d079f3df81f43387cf29ea8bc0b24d7bc4b71ab"
        },
        {
          "key": "name",
          "value": "Jan Hoffmann"
        },
        {
          "key": "url",
          "value": "https://assets.staging.nftselfie.app/nft/1ea50b421cb81f8480e97a579d079f3df81f43387cf29ea8bc0b24d7bc4b71ab.jpg"
        },
        {
          "key": "description",
          "value": ""
        },
        {
          "key": "organization",
          "value": ""
        }
      ],
      "is_burned": false,
      "timestamp": "2022-06-07T14:10:02.000Z",
      "contract_package": {
        "contract_package_hash": "43244c6700af3bd4283bed01ff4858d6d00326c8b23a47b8bed2a6095419f869",
        "owner_public_key": "015c7359149e0f61ef7ba85c5d30733b59ab0c398695eda36d7c003e1bf1f71f18",
        "contract_type_id": 4,
        "contract_name": "selfie",
        "contract_description": null,
        "metadata": {
          "symbol": "SELFIE"
        },
        "timestamp": "2022-05-17T16:20:56.000Z"
      },
      "owner_public_key": "01cf7a6c980aaef16da662785878e2abaf77bd72c9466d9269ad784ea5a94ebff5"
    },
    {
      "tracking_id": "39492",
      "token_standard_id": 1,
      "contract_package_hash": "43244c6700af3bd4283bed01ff4858d6d00326c8b23a47b8bed2a6095419f869",
      "token_id": "46",
      "owner_account_hash": "124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268",
      "metadata": [
        {
          "key": "contentHash",
          "value": "e50af685a8e9550f5708e89b674c1f4b9000ea459d9d20f7443f4ac82776e47f"
        },
        {
          "key": "name",
          "value": "John Kowalski"
        },
        {
          "key": "url",
          "value": "https://assets.staging.nftselfie.app/nft/e50af685a8e9550f5708e89b674c1f4b9000ea459d9d20f7443f4ac82776e47f.mp4"
        },
        {
          "key": "description",
          "value": ""
        },
        {
          "key": "organization",
          "value": ""
        }
      ],
      "is_burned": false,
      "timestamp": "2022-06-07T13:38:00.000Z",
      "contract_package": {
        "contract_package_hash": "43244c6700af3bd4283bed01ff4858d6d00326c8b23a47b8bed2a6095419f869",
        "owner_public_key": "015c7359149e0f61ef7ba85c5d30733b59ab0c398695eda36d7c003e1bf1f71f18",
        "contract_type_id": 4,
        "contract_name": "selfie",
        "contract_description": null,
        "metadata": {
          "symbol": "SELFIE"
        },
        "timestamp": "2022-05-17T16:20:56.000Z"
      },
      "owner_public_key": "01cf7a6c980aaef16da662785878e2abaf77bd72c9466d9269ad784ea5a94ebff5"
    }
  ],
  "pageCount": 4,
  "itemCount": 10,
  "pages": [
    {
      "number": 1,
      "url": "/accounts/124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268/nft-tokens?page=1&limit=3&fields%5B0%5D=contract_package"
    },
    {
      "number": 2,
      "url": "/accounts/124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268/nft-tokens?page=2&limit=3&fields%5B0%5D=contract_package"
    },
    {
      "number": 3,
      "url": "/accounts/124379a752b010fce7da504857d0244116c0b2a85b2c6ce4c55fc505d627e268/nft-tokens?page=3&limit=3&fields%5B0%5D=contract_package"
    }
  ]
}
```

#### Get paginated list of nft tokens by contract package hash

**Endpoint**

```
GET /contract-packages/:contract_package_hash/nft-tokens
```

**Endpoint-specific query parameters**

**Sorting**

Fields:

* `contract_package_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<NFTTokens>
```

**Example**

```
GET /contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens?page=1&limit=3&fields=contract_package
```

```
{
  "data": [
    {
      "tracking_id": "27578",
      "token_standard_id": 1,
      "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
      "token_id": "US-7000001-Q1",
      "owner_account_hash": "e47d488097f9fbffcff2e403674dd339d4480ffed84e0c97f0e3fb7c149ccd8b",
      "metadata": [
        {
          "key": "tokenId",
          "value": "US-7000001-Q1"
        },
        {
          "key": "tokenMetaHash",
          "value": "dNeBQoQdAJez6KshvoD5Gvyr9EO7wh6wA3n2k8A3EP8="
        }
      ],
      "is_burned": false,
      "timestamp": "2021-08-13T13:22:55.000Z",
      "contract_package": {
        "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
        "owner_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
        "contract_type_id": 5,
        "contract_name": "ipwe_nft",
        "contract_description": null,
        "metadata": {
          "symbol": "IPWENFT"
        },
        "timestamp": "2021-08-10T19:09:55.000Z"
      },
      "owner_public_key": null
    },
    {
      "tracking_id": "27577",
      "token_standard_id": 1,
      "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
      "token_id": "E2E-DEMO-02",
      "owner_account_hash": "fcc99f47a8a39da698c15e0dfc4a5ab5d6de08346b5d66c0235dee1342deea57",
      "metadata": [
        {
          "key": "tokenId",
          "value": "E2E-DEMO-02"
        },
        {
          "key": "tokenMetaHash",
          "value": "eMWBfY6Q+OmRhuSSABfpR/sAgyXEK5Lc9aMxH9pdaMo="
        }
      ],
      "is_burned": false,
      "timestamp": "2021-08-12T14:28:10.000Z",
      "contract_package": {
        "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
        "owner_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
        "contract_type_id": 5,
        "contract_name": "ipwe_nft",
        "contract_description": null,
        "metadata": {
          "symbol": "IPWENFT"
        },
        "timestamp": "2021-08-10T19:09:55.000Z"
      },
      "owner_public_key": null
    },
    {
      "tracking_id": "27576",
      "token_standard_id": 1,
      "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
      "token_id": "E2E-DEMO-01",
      "owner_account_hash": "fcc99f47a8a39da698c15e0dfc4a5ab5d6de08346b5d66c0235dee1342deea57",
      "metadata": [
        {
          "key": "tokenId",
          "value": "E2E-DEMO-01"
        },
        {
          "key": "tokenMetaHash",
          "value": "aUSvGy+AEcKzSjtQa0nb+w5nnT60MYFwm+9uGtgcAQI="
        }
      ],
      "is_burned": false,
      "timestamp": "2021-08-12T14:23:09.000Z",
      "contract_package": {
        "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
        "owner_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
        "contract_type_id": 5,
        "contract_name": "ipwe_nft",
        "contract_description": null,
        "metadata": {
          "symbol": "IPWENFT"
        },
        "timestamp": "2021-08-10T19:09:55.000Z"
      },
      "owner_public_key": null
    }
  ],
  "pageCount": 8,
  "itemCount": 22,
  "pages": [
    {
      "number": 1,
      "url": "/contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens?page=1&limit=3&fields%5B0%5D=contract_package"
    },
    {
      "number": 2,
      "url": "/contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens?page=2&limit=3&fields%5B0%5D=contract_package"
    },
    {
      "number": 3,
      "url": "/contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens?page=3&limit=3&fields%5B0%5D=contract_package"
    }
  ]
}
```

#### Get nft token by contract package hash and token id

**Endpoint**

```
GET /contract-packages/:contract_package_hash//nft-tokens/:token_id
```

**Response**

```
NFTToken
```

**Example**

```
GET /contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens/E2E-TEST-05?fields=contract_package
```

```
{
  "tracking_id": "27573",
  "token_standard_id": 1,
  "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
  "token_id": "E2E-TEST-05",
  "owner_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
  "metadata": [
    {
      "key": "tokenId",
      "value": "E2E-TEST-05"
    },
    {
      "key": "tokenMetaHash",
      "value": "WXrBOoFMTzkWRuqUzIboNWBdviq9VyYpOfaCvJ5bzIQ="
    }
  ],
  "is_burned": false,
  "timestamp": "2021-08-12T06:30:47.000Z",
  "contract_package": {
    "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
    "owner_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
    "contract_type_id": 5,
    "contract_name": "ipwe_nft",
    "contract_description": null,
    "metadata": {
      "symbol": "IPWENFT"
    },
    "timestamp": "2021-08-10T19:09:55.000Z"
  },
  "owner_public_key": null
}
```

### NFT Token Actions

#### Get paginated list of nft token actions by contract package hash and token id

**Endpoint**

```
GET /contract-packages/:contract_package_hash/nft-tokens/:token_id/actions
```

**Endpoint-specific query parameters**

**Sorting**

Fields:

* `deploy_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<NFTTokenActions>
```

**Example**

```
GET /contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens/E2E-TEST-05/actions?page=1&limit=2&fields=deploy
```

```
{
  "data": [
    {
      "deploy_hash": "a4575a027e7fbdf939fb1c0da1b18817a3824418c7cca2465ba735a04ab08d17",
      "token_tracking_id": "27573",
      "from_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
      "from_public_key": null,
      "to_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
      "to_public_key": null,
      "nft_action_id": 5,
      "timestamp": "2021-08-12T12:20:59.000Z",
      "deploy": {
        "deploy_hash": "a4575a027e7fbdf939fb1c0da1b18817a3824418c7cca2465ba735a04ab08d17",
        "block_hash": "6df67ffa0cf74bf155544b74cfa7a3eb999fb11c5ff59f78935b45d3222abb20",
        "caller_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
        "execution_type_id": 2,
        "contract_hash": "25f1c770dfe5258dd05d182dce8e96b1a2e35990b88c3f62f46e90dc352eabc6",
        "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
        "cost": "247504850",
        "payment_amount": "12000000000",
        "error_message": null,
        "timestamp": "2021-08-12T12:20:59.000Z",
        "status": "executed",
        "args": {
          "token_id": {
            "parsed": "E2E-TEST-05",
            "cl_type": "String"
          },
          "token_meta": {
            "parsed": [
              {
                "key": "tokenId",
                "value": "E2E-TEST-05"
              },
              {
                "key": "tokenMetaHash",
                "value": "WXrBOoFMTzkWRuqUzIboNWBdviq9VyYpOfaCvJ5bzIQ="
              }
            ],
            "cl_type": {
              "Map": {
                "key": "String",
                "value": "String"
              }
            }
          }
        },
        "amount": null
      }
    },
    {
      "deploy_hash": "3430254ceff99cd48a779334b325109b61ce540337f37832b70e5a26beaa566a",
      "token_tracking_id": "27573",
      "from_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
      "from_public_key": null,
      "to_account_hash": "fd3436916830ce706cdc9796fd01500ddcaa8d021b58207d7e87eca00f4b4e9a",
      "to_public_key": null,
      "nft_action_id": 5,
      "timestamp": "2021-08-12T06:52:20.000Z",
      "deploy": {
        "deploy_hash": "3430254ceff99cd48a779334b325109b61ce540337f37832b70e5a26beaa566a",
        "block_hash": "14a3913c56057ffa30e3b0ced909744a6a20c0ecf7357e8daac246251e196538",
        "caller_public_key": "0151cfcc0e740203030902649d1cdd18e55018175d08a4cb985dacd53e237f129c",
        "execution_type_id": 2,
        "contract_hash": "25f1c770dfe5258dd05d182dce8e96b1a2e35990b88c3f62f46e90dc352eabc6",
        "contract_package_hash": "542359cb825bbf2a10017db5cb31b8862df7a64784e39b947678164156050d89",
        "cost": "247504850",
        "payment_amount": "12000000000",
        "error_message": null,
        "timestamp": "2021-08-12T06:52:20.000Z",
        "status": "executed",
        "args": {
          "token_id": {
            "parsed": "E2E-TEST-05",
            "cl_type": "String"
          },
          "token_meta": {
            "parsed": [
              {
                "key": "tokenId",
                "value": "E2E-TEST-05"
              },
              {
                "key": "tokenMetaHash",
                "value": "D8pT5qyrZUKbpzePdG4kfzjU8O1tQLCaGBtT8DJ9CJs="
              }
            ],
            "cl_type": {
              "Map": {
                "key": "String",
                "value": "String"
              }
            }
          }
        },
        "amount": null
      }
    }
  ],
  "pageCount": 3,
  "itemCount": 6,
  "pages": [
    {
      "number": 1,
      "url": "/contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens/E2E-TEST-05/actions?page=1&limit=2&fields%5B0%5D=deploy"
    },
    {
      "number": 2,
      "url": "/contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens/E2E-TEST-05/actions?page=2&limit=2&fields%5B0%5D=deploy"
    },
    {
      "number": 3,
      "url": "/contract-packages/542359CB825BBF2A10017DB5CB31B8862DF7A64784E39B947678164156050D89/nft-tokens/E2E-TEST-05/actions?page=3&limit=2&fields%5B0%5D=deploy"
    }
  ]
}
```

#### Get paginated list of nft token actions by nft token tracking id

**Endpoint**

```
GET /nft-tokens/:tracking_id/actions
```

**Endpoint-specific query parameters**

**Sorting**

Fields:

* `deploy_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<NFTTokenActions>
```

**Example**

```
GET /nft-tokens/31710/actions
```

```
{
  "data": [
    {
      "deploy_hash": "8064eaa7f26bd0cced3cbe1c6726b8d469a29f82d1a5bc86ca31a195e655d87b",
      "token_tracking_id": "31710",
      "from_account_hash": "ab7b7ce03c569dfed429f818049986220f115ea8a15cdb0aee81d46c6a1f0135",
      "from_public_key": "0184426518339bc2195656b5f97c9c6802229cac4303a08cad41f32aa99439329b",
      "to_account_hash": "25904fd9f64e37580422c44cb61d87ec63331b46dbd08bb0f88dec40c51fb2f2",
      "to_public_key": null,
      "nft_action_id": 4,
      "timestamp": "2022-06-17T19:11:21.000Z"
    },
    {
      "deploy_hash": "89f28ee20a2dba15dde87bf529e2e24aa68866d7d30f8378179140ab7e79d9cd",
      "token_tracking_id": "31710",
      "from_account_hash": "db16063b214c6ae72ff5d4d89cf64cfc51a9ff555237ffebbb190650acc70491",
      "from_public_key": null,
      "to_account_hash": "ab7b7ce03c569dfed429f818049986220f115ea8a15cdb0aee81d46c6a1f0135",
      "to_public_key": "0184426518339bc2195656b5f97c9c6802229cac4303a08cad41f32aa99439329b",
      "nft_action_id": 4,
      "timestamp": "2022-06-17T18:57:50.000Z"
    },
    {
      "deploy_hash": "e89ca4e836f2e07a2b4d550601684411a9f5907be6bb763c1618192314b7a5b4",
      "token_tracking_id": "31710",
      "from_account_hash": "ab7b7ce03c569dfed429f818049986220f115ea8a15cdb0aee81d46c6a1f0135",
      "from_public_key": "0184426518339bc2195656b5f97c9c6802229cac4303a08cad41f32aa99439329b",
      "to_account_hash": "db16063b214c6ae72ff5d4d89cf64cfc51a9ff555237ffebbb190650acc70491",
      "to_public_key": null,
      "nft_action_id": 4,
      "timestamp": "2022-06-13T18:42:01.000Z"
    }
  ],
  "pageCount": 10,
  "itemCount": 29,
  "pages": [
    {
      "number": 1,
      "url": "/nft-tokens/31710/actions?page=1&limit=3"
    },
    {
      "number": 2,
      "url": "/nft-tokens/31710/actions?page=2&limit=3"
    },
    {
      "number": 3,
      "url": "/nft-tokens/31710/actions?page=3&limit=3"
    }
  ]
}
```

### NFT Token Standards

#### Get list of nft token standards

**Endpoint**

```
GET /nft-token-standards
```

**Response**

```
NFTTokenStandards
```

**Example**

```
GET /nft-token-standards
```

```
[
  {
    "id": 1,
    "name": "CEP47"
  }
]
```

### NFT Token Action Types

#### Get list of nft token action types

**Endpoint**

```
GET /nft-token-action-types
```

**Response**

```
NFTTokenActionTypes
```

**Example**

```
GET /nft-token-action-types
```

```
[
  {
    "id": 1,
    "name": "MintOne"
  },
  {
    "id": 2,
    "name": "BurnOne"
  },
  {
    "id": 3,
    "name": "ApproveToken"
  },
  {
    "id": 4,
    "name": "TransferToken"
  },
  {
    "id": 5,
    "name": "MetadataUpdate"
  }
]
```

### ERC20 Token Actions

#### Get paginated list of erc20 token actions

**Endpoint**

```
GET /erc20-token-actions
```

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                         |
| ----------------------- | ------------ | --------------------------------------------------- |
| `contract_package_hash` | `string(64)` | Filters the results by parent contract package hash |
| `account_hash`          | `string(64)` | Filters the results by the hash of the account      |

**Sorting**

Fields:

* `account_hash`
* `contract_package_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<ERC20TokenActions>
```

**Example**

```
GET /erc20-token-actions?limit=2&page=1&contract_package_hash=7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650
```

```
{
  "data": [
    {
      "deploy_hash": "65da3a9217805dadcc9dd4a2ba07307d60776e95dc83d3addec66db77f02ffd4",
      "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
      "from_type": "account-hash",
      "from_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
      "from_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
      "to_type": "hash",
      "to_hash": "949ace24f87a4b1f7011e5f48cbf262555d78003edec0919e4b3902c698c9db7",
      "to_public_key": null,
      "erc20_action_type_id": 3,
      "amount": "0",
      "timestamp": "2022-08-17T09:03:27.000Z"
    },
    {
      "deploy_hash": "65da3a9217805dadcc9dd4a2ba07307d60776e95dc83d3addec66db77f02ffd4",
      "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
      "from_type": "account-hash",
      "from_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
      "from_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
      "to_type": "hash",
      "to_hash": "becb21ae454b40ee1f5869416787f57f2712be18e208c5577ac17ce0fa5c7a69",
      "to_public_key": null,
      "erc20_action_type_id": 2,
      "amount": "10000000000",
      "timestamp": "2022-08-17T09:03:27.000Z"
    }
  ],
  "pageCount": 2,
  "itemCount": 4,
  "pages": [
    {
      "number": 1,
      "url": "/erc20-token-actions?limit=2&page=1&contract_package_hash=7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650"
    },
    {
      "number": 2,
      "url": "/erc20-token-actions?limit=2&page=2&contract_package_hash=7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650"
    }
  ]
}
```

#### Get paginated list of erc20 token actions by contract package hash

**Endpoint**

```
GET /contract-packages/:contract_package_hash/erc20-token-actions
```

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                         |
| ----------------------- | ------------ | --------------------------------------------------- |
| `contract_package_hash` | `string(64)` | Filters the results by parent contract package hash |
| `account_hash`          | `string(64)` | Filters the results by the hash of the account      |

**Sorting**

Fields:

* `account_hash`
* `contract_package_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<ERC20TokenActions>
```

**Example**

```
GET /contract-packages/7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650/erc20-token-actions?fields=deploy,contract_package
```

```
{
  "data": [
    {
      "deploy_hash": "65da3a9217805dadcc9dd4a2ba07307d60776e95dc83d3addec66db77f02ffd4",
      "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
      "from_type": "account-hash",
      "from_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
      "from_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
      "to_type": "hash",
      "to_hash": "949ace24f87a4b1f7011e5f48cbf262555d78003edec0919e4b3902c698c9db7",
      "to_public_key": null,
      "erc20_action_type_id": 3,
      "amount": "0",
      "timestamp": "2022-08-17T09:03:27.000Z",
      "deploy": {
        "deploy_hash": "65da3a9217805dadcc9dd4a2ba07307d60776e95dc83d3addec66db77f02ffd4",
        "block_hash": "4eff137019c83f378c68be5ca4d077c8e6eae6108bb94dffac57b7c6fdac0b42",
        "caller_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "execution_type_id": 2,
        "contract_hash": "8f75e28470aefade0310d4a663a01fa46251b80d04e0aac3d1b49caac2c94c9c",
        "contract_package_hash": "949ace24f87a4b1f7011e5f48cbf262555d78003edec0919e4b3902c698c9db7",
        "cost": "4278245980",
        "payment_amount": "20000000000",
        "error_message": null,
        "timestamp": "2022-08-17T09:03:27.000Z",
        "status": "executed",
        "args": {
          "to": {
            "parsed": {
              "Hash": "hash-282fabb87a057d991937770223de98ae86f6e652a050825aa196dfd4f480029e"
            },
            "cl_type": "Key"
          },
          "pair": {
            "parsed": {
              "Hash": "hash-becb21ae454b40ee1f5869416787f57f2712be18e208c5577ac17ce0fa5c7a69"
            },
            "cl_type": {
              "Option": "Key"
            }
          },
          "token_a": {
            "parsed": {
              "Hash": "hash-7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650"
            },
            "cl_type": "Key"
          },
          "token_b": {
            "parsed": {
              "Hash": "hash-3e90882bb65c57f28aab0fc820a0e53fdda2da6165a7fae04b3318ebaadb66b7"
            },
            "cl_type": "Key"
          },
          "deadline": {
            "parsed": "1739598100811",
            "cl_type": "U256"
          },
          "amount_a_min": {
            "parsed": "100000",
            "cl_type": "U256"
          },
          "amount_b_min": {
            "parsed": "100000",
            "cl_type": "U256"
          },
          "amount_a_desired": {
            "parsed": "10000000000",
            "cl_type": "U256"
          },
          "amount_b_desired": {
            "parsed": "10000000000",
            "cl_type": "U256"
          }
        },
        "amount": null
      },
      "contract_package": {
        "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
        "owner_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "contract_type_id": 3,
        "contract_name": "Dai-Token",
        "contract_description": null,
        "metadata": {
          "symbol": "DAI",
          "decimals": 9,
          "balances_uref": "uref-5eb59a3e2fd776f3ce5abf869634f112134f2bd5d7eff34e78bbaa3bb3ff8392-007",
          "total_supply_uref": "uref-c0bba347aab0a6014002d2b5023db86e2080b789c84c5735f64a835e8b3ca132-007"
        },
        "timestamp": "2022-08-16T11:46:58.000Z"
      }
    },
    {
      "deploy_hash": "65da3a9217805dadcc9dd4a2ba07307d60776e95dc83d3addec66db77f02ffd4",
      "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
      "from_type": "account-hash",
      "from_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
      "from_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
      "to_type": "hash",
      "to_hash": "becb21ae454b40ee1f5869416787f57f2712be18e208c5577ac17ce0fa5c7a69",
      "to_public_key": null,
      "erc20_action_type_id": 2,
      "amount": "10000000000",
      "timestamp": "2022-08-17T09:03:27.000Z",
      "deploy": {
        "deploy_hash": "65da3a9217805dadcc9dd4a2ba07307d60776e95dc83d3addec66db77f02ffd4",
        "block_hash": "4eff137019c83f378c68be5ca4d077c8e6eae6108bb94dffac57b7c6fdac0b42",
        "caller_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "execution_type_id": 2,
        "contract_hash": "8f75e28470aefade0310d4a663a01fa46251b80d04e0aac3d1b49caac2c94c9c",
        "contract_package_hash": "949ace24f87a4b1f7011e5f48cbf262555d78003edec0919e4b3902c698c9db7",
        "cost": "4278245980",
        "payment_amount": "20000000000",
        "error_message": null,
        "timestamp": "2022-08-17T09:03:27.000Z",
        "status": "executed",
        "args": {
          "to": {
            "parsed": {
              "Hash": "hash-282fabb87a057d991937770223de98ae86f6e652a050825aa196dfd4f480029e"
            },
            "cl_type": "Key"
          },
          "pair": {
            "parsed": {
              "Hash": "hash-becb21ae454b40ee1f5869416787f57f2712be18e208c5577ac17ce0fa5c7a69"
            },
            "cl_type": {
              "Option": "Key"
            }
          },
          "token_a": {
            "parsed": {
              "Hash": "hash-7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650"
            },
            "cl_type": "Key"
          },
          "token_b": {
            "parsed": {
              "Hash": "hash-3e90882bb65c57f28aab0fc820a0e53fdda2da6165a7fae04b3318ebaadb66b7"
            },
            "cl_type": "Key"
          },
          "deadline": {
            "parsed": "1739598100811",
            "cl_type": "U256"
          },
          "amount_a_min": {
            "parsed": "100000",
            "cl_type": "U256"
          },
          "amount_b_min": {
            "parsed": "100000",
            "cl_type": "U256"
          },
          "amount_a_desired": {
            "parsed": "10000000000",
            "cl_type": "U256"
          },
          "amount_b_desired": {
            "parsed": "10000000000",
            "cl_type": "U256"
          }
        },
        "amount": null
      },
      "contract_package": {
        "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
        "owner_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "contract_type_id": 3,
        "contract_name": "Dai-Token",
        "contract_description": null,
        "metadata": {
          "symbol": "DAI",
          "decimals": 9,
          "balances_uref": "uref-5eb59a3e2fd776f3ce5abf869634f112134f2bd5d7eff34e78bbaa3bb3ff8392-007",
          "total_supply_uref": "uref-c0bba347aab0a6014002d2b5023db86e2080b789c84c5735f64a835e8b3ca132-007"
        },
        "timestamp": "2022-08-16T11:46:58.000Z"
      }
    },
    {
      "deploy_hash": "9a733f3466c670953ac8f01169c00c00e7fa333b67f1a122645dc5b546ef8a33",
      "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
      "from_type": "account-hash",
      "from_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
      "from_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
      "to_type": "hash",
      "to_hash": "949ace24f87a4b1f7011e5f48cbf262555d78003edec0919e4b3902c698c9db7",
      "to_public_key": null,
      "erc20_action_type_id": 3,
      "amount": "10000000000",
      "timestamp": "2022-08-16T17:55:41.000Z",
      "deploy": {
        "deploy_hash": "9a733f3466c670953ac8f01169c00c00e7fa333b67f1a122645dc5b546ef8a33",
        "block_hash": "abbaacdbbedc486a33293a28b64f7f488e4160ec03e4c7fe8ee46f2357469abe",
        "caller_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "execution_type_id": 2,
        "contract_hash": "93c6ea23c3ef98d6863478114b795cbf76034bda13c6a09c4a2e597741adf8a3",
        "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
        "cost": "339258770",
        "payment_amount": "5000000000",
        "error_message": null,
        "timestamp": "2022-08-16T17:55:41.000Z",
        "status": "executed",
        "args": {
          "amount": {
            "parsed": "10000000000",
            "cl_type": "U256"
          },
          "spender": {
            "parsed": {
              "Hash": "hash-949ace24f87a4b1f7011e5f48cbf262555d78003edec0919e4b3902c698c9db7"
            },
            "cl_type": "Key"
          }
        },
        "amount": "10000000000"
      },
      "contract_package": {
        "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
        "owner_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "contract_type_id": 3,
        "contract_name": "Dai-Token",
        "contract_description": null,
        "metadata": {
          "symbol": "DAI",
          "decimals": 9,
          "balances_uref": "uref-5eb59a3e2fd776f3ce5abf869634f112134f2bd5d7eff34e78bbaa3bb3ff8392-007",
          "total_supply_uref": "uref-c0bba347aab0a6014002d2b5023db86e2080b789c84c5735f64a835e8b3ca132-007"
        },
        "timestamp": "2022-08-16T11:46:58.000Z"
      }
    },
    {
      "deploy_hash": "1f6ce947f6a6e3aeb422dfd2a15a9b3576cf18fe18f1cf753572f572b1b23490",
      "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
      "from_type": null,
      "from_hash": null,
      "from_public_key": null,
      "to_type": "account-hash",
      "to_hash": "afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b",
      "to_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
      "erc20_action_type_id": 1,
      "amount": "100000000000000000000",
      "timestamp": "2022-08-16T17:54:05.000Z",
      "deploy": {
        "deploy_hash": "1f6ce947f6a6e3aeb422dfd2a15a9b3576cf18fe18f1cf753572f572b1b23490",
        "block_hash": "c3fe5f1128371bfeb41f2f52ce6610402c282a7a0c698b217f6b6c36bd819d43",
        "caller_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "execution_type_id": 2,
        "contract_hash": "93c6ea23c3ef98d6863478114b795cbf76034bda13c6a09c4a2e597741adf8a3",
        "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
        "cost": "378168830",
        "payment_amount": "5000000000",
        "error_message": null,
        "timestamp": "2022-08-16T17:54:05.000Z",
        "status": "executed",
        "args": {
          "to": {
            "parsed": {
              "Account": "account-hash-afad4779d55438441bb423437c6cae4d058f3e761018e68b7a96704a98f49d5b"
            },
            "cl_type": "Key"
          },
          "amount": {
            "parsed": "100000000000000000000",
            "cl_type": "U256"
          }
        },
        "amount": "100000000000000000000"
      },
      "contract_package": {
        "contract_package_hash": "7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650",
        "owner_public_key": "01e3b6ef459f27376599266bcb6c03fc7e172faa2edf551f3791c2a8a27d72bc1c",
        "contract_type_id": 3,
        "contract_name": "Dai-Token",
        "contract_description": null,
        "metadata": {
          "symbol": "DAI",
          "decimals": 9,
          "balances_uref": "uref-5eb59a3e2fd776f3ce5abf869634f112134f2bd5d7eff34e78bbaa3bb3ff8392-007",
          "total_supply_uref": "uref-c0bba347aab0a6014002d2b5023db86e2080b789c84c5735f64a835e8b3ca132-007"
        },
        "timestamp": "2022-08-16T11:46:58.000Z"
      }
    }
  ],
  "pageCount": 1,
  "itemCount": 4,
  "pages": [
    {
      "number": 1,
      "url": "/contract-packages/7ea0b783101136b14b10a58974e930f7f393c6b87b18e99e71e7df44dc9bc650/erc20-token-actions?fields%5B0%5D=deploy&fields%5B1%5D=contract_package&page=1&limit=10"
    }
  ]
}
```

#### Get paginated list of erc20 token actions by account hash

**Endpoint**

```
GET /accounts/:account_hash/erc20-token-actions
```

**Endpoint-specific query parameters**

| Parameter               | Type         | Description                                         |
| ----------------------- | ------------ | --------------------------------------------------- |
| `contract_package_hash` | `string(64)` | Filters the results by parent contract package hash |
| `account_hash`          | `string(64)` | Filters the results by the hash of the account      |

**Sorting**

Fields:

* `account_hash`
* `contract_package_hash`
* `timestamp`

Default sorting: `timestamp DESC`

**Response**

```
PaginatedResponse<ERC20TokenActions>
```

**Example**

```
GET /accounts/428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72/erc20-token-actions?fields=deploy&with_amounts_in_currency_id=1
```

```
{
  "data": [
    {
      "deploy_hash": "d42a2c8e7ac76e4eec0a64c563c13f509386a3a4d8a2705c413afa610ec8aa9d",
      "contract_package_hash": "c2677a0846623cb925c5cc2a92ef5975dfd6cc82d9f81c8dc04ade98517355fd",
      "from_type": "account-hash",
      "from_hash": "516bae78a83f7b0f6a34a256507434e0f1a432cb0bb2212ca54a01d9ca5a15c9",
      "from_public_key": "01270a577d2d106c4d29402775f3dffcb9f04aad542579dd4d1cfad20572ebcb7c",
      "to_type": "account-hash",
      "to_hash": "428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72",
      "to_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
      "erc20_action_type_id": 2,
      "amount": "250000000",
      "timestamp": "2022-07-23T14:06:00.000Z",
      "deploy": {
        "deploy_hash": "d42a2c8e7ac76e4eec0a64c563c13f509386a3a4d8a2705c413afa610ec8aa9d",
        "block_hash": "e784f17bc2769962af85ad8820a4bbf49ad95f9092b0274153a60e2d1e63b493",
        "caller_public_key": "01270a577d2d106c4d29402775f3dffcb9f04aad542579dd4d1cfad20572ebcb7c",
        "execution_type_id": 2,
        "contract_hash": "9af628fe541a8ad58e020a79f7260228dc58745e295f5dfa2dedd497064e31df",
        "contract_package_hash": "c2677a0846623cb925c5cc2a92ef5975dfd6cc82d9f81c8dc04ade98517355fd",
        "cost": "436884000",
        "payment_amount": "1000000000",
        "error_message": null,
        "timestamp": "2022-07-23T14:06:00.000Z",
        "status": "executed",
        "args": {
          "amount": {
            "parsed": "250000000",
            "cl_type": "U256"
          },
          "recipient": {
            "parsed": {
              "Account": "account-hash-428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72"
            },
            "cl_type": "Key"
          }
        },
        "amount": "250000000",
        "currency_cost": 0.0135816750384,
        "rate": 0.0310876,
        "current_currency_cost": 0.0130058619264
      }
    },
    {
      "deploy_hash": "c8e332c184d61512e44c74ce69cd1a816981cc992e826d124fc5de476a0983bc",
      "contract_package_hash": "c2677a0846623cb925c5cc2a92ef5975dfd6cc82d9f81c8dc04ade98517355fd",
      "from_type": "account-hash",
      "from_hash": "428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72",
      "from_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
      "to_type": "hash",
      "to_hash": "24bfdae2ed128fa5e4057bc398e4933329570e47240e57fc92f5611a6178eba5",
      "to_public_key": null,
      "erc20_action_type_id": 2,
      "amount": "1",
      "timestamp": "2022-07-07T18:46:39.000Z",
      "deploy": {
        "deploy_hash": "c8e332c184d61512e44c74ce69cd1a816981cc992e826d124fc5de476a0983bc",
        "block_hash": "6deec4027aa0eece41cb34a816194c3de372fff8f0e5859d91f82c4e2b86ac7b",
        "caller_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
        "execution_type_id": 2,
        "contract_hash": "9af628fe541a8ad58e020a79f7260228dc58745e295f5dfa2dedd497064e31df",
        "contract_package_hash": "c2677a0846623cb925c5cc2a92ef5975dfd6cc82d9f81c8dc04ade98517355fd",
        "cost": "412664770",
        "payment_amount": "1000000000",
        "error_message": null,
        "timestamp": "2022-07-07T18:46:39.000Z",
        "status": "executed",
        "args": {
          "amount": {
            "parsed": "1",
            "cl_type": "U256"
          },
          "recipient": {
            "parsed": "0124bfdae2ed128fa5e4057bc398e4933329570e47240e57fc92f5611a6178eba5",
            "cl_type": "PublicKey"
          }
        },
        "amount": "1",
        "currency_cost": 0.012405528315739999,
        "rate": 0.030062,
        "current_currency_cost": 0.012284865136992
      }
    },
    {
      "deploy_hash": "bb3cf5782c6afe46d77c4d27d836ab1059f149d99ef182d0e112a38e27a564bf",
      "contract_package_hash": "c2677a0846623cb925c5cc2a92ef5975dfd6cc82d9f81c8dc04ade98517355fd",
      "from_type": "account-hash",
      "from_hash": "428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72",
      "from_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
      "to_type": "hash",
      "to_hash": "24bfdae2ed128fa5e4057bc398e4933329570e47240e57fc92f5611a6178eba5",
      "to_public_key": null,
      "erc20_action_type_id": 3,
      "amount": "1",
      "timestamp": "2022-07-07T18:43:34.000Z",
      "deploy": {
        "deploy_hash": "bb3cf5782c6afe46d77c4d27d836ab1059f149d99ef182d0e112a38e27a564bf",
        "block_hash": "317d6879b87c288f5de7283309902533352b5c5b97fc8d23d70f052b056f5e60",
        "caller_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
        "execution_type_id": 2,
        "contract_hash": "9af628fe541a8ad58e020a79f7260228dc58745e295f5dfa2dedd497064e31df",
        "contract_package_hash": "c2677a0846623cb925c5cc2a92ef5975dfd6cc82d9f81c8dc04ade98517355fd",
        "cost": "354016860",
        "payment_amount": "10000000000",
        "error_message": null,
        "timestamp": "2022-07-07T18:43:34.000Z",
        "status": "executed",
        "args": {
          "amount": {
            "parsed": "1",
            "cl_type": "U256"
          },
          "spender": {
            "parsed": "0124bfdae2ed128fa5e4057bc398e4933329570e47240e57fc92f5611a6178eba5",
            "cl_type": "PublicKey"
          }
        },
        "amount": "1",
        "currency_cost": 0.010643198280726,
        "rate": 0.0300641,
        "current_currency_cost": 0.010538940315456
      }
    },
    {
      "deploy_hash": "c7986c3b4650ce751bc95eb1cf4f87af654fa37acf852ff09a0a71c3af2c341a",
      "contract_package_hash": "7c36a5debc0c1c6d5c2e774954b6c9a63d496ef339e2b8c0eaa6314224081a81",
      "from_type": "account-hash",
      "from_hash": "428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72",
      "from_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
      "to_type": "account-hash",
      "to_hash": "72a08a1d2ea95c1b975a6e211e9468075d16ced5d4160250c3d0b1bf0c132314",
      "to_public_key": "0124bfdae2ed128fa5e4057bc398e4933329570e47240e57fc92f5611a6178eba5",
      "erc20_action_type_id": 3,
      "amount": "1",
      "timestamp": "2022-07-07T18:23:51.000Z",
      "deploy": {
        "deploy_hash": "c7986c3b4650ce751bc95eb1cf4f87af654fa37acf852ff09a0a71c3af2c341a",
        "block_hash": "9a74da2553e3ee0f00ac0fe5863eb64de244aa2b1933eb28583e4b1cf766962e",
        "caller_public_key": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
        "execution_type_id": 2,
        "contract_hash": "279445c140615fd511759dfb96c610dee212769913f61a57b0f9dde42d6a8d10",
        "contract_package_hash": "7c36a5debc0c1c6d5c2e774954b6c9a63d496ef339e2b8c0eaa6314224081a81",
        "cost": "87964290",
        "payment_amount": "1000000000",
        "error_message": null,
        "timestamp": "2022-07-07T18:23:51.000Z",
        "status": "executed",
        "args": {
          "amount": {
            "parsed": "1",
            "cl_type": "U256"
          },
          "spender": {
            "parsed": "0124bfdae2ed128fa5e4057bc398e4933329570e47240e57fc92f5611a6178eba5",
            "cl_type": "PublicKey"
          },
          "delegator": {
            "parsed": "015acde48328ae5ae008ecd27a4671f7b967b5c89477d1315265e762c7f07fe52c",
            "cl_type": "PublicKey"
          }
        },
        "amount": "1",
        "currency_cost": 0.002635348553397,
        "rate": 0.0299593,
        "current_currency_cost": 0.002618661727584
      }
    }
  ],
  "pageCount": 1,
  "itemCount": 4,
  "pages": [
    {
      "number": 1,
      "url": "/accounts/428ba32ee1b04a673a5c6eb0cdae68672139b0ed68a41e4a8b55da664c04db72/erc20-token-actions?fields%5B0%5D=deploy&with_amounts_in_currency_id=1&page=1&limit=10"
    }
  ]
}
```

### ERC20 Token Action Types

#### Get list of erc20 token action types

**Endpoint**

```
GET /erc20-token-action-types
```

**Response**

```
ERC20TokenActionTypes
```

**Example**

```
GET /erc20-token-action-types
```

```
{
  "data": [
    {
      "id": 1,
      "name": "Mint"
    },
    {
      "id": 2,
      "name": "Transfer"
    },
    {
      "id": 3,
      "name": "Approve"
    },
    {
      "id": 4,
      "name": "Burn"
    }
  ]
}
```

### Validators

#### Get paginated list of blocks proposed by validator

**Endpoint**

```
GET /validators/:validatorPublicKey/blocks
```

**Endpoint-specific query parameters**

| Parameter     | Type         | Description                         |
| ------------- | ------------ | ----------------------------------- |
| `blockHash`   | `string(64)` | Filters the results by block hash   |
| `blockHeight` | `int`        | Filters the results by block height |
| `eraId`       | `int`        | Filters the results by era ID       |

**Sorting**

Fields:

* `eraId`
* `blockHeight`
* `deployCount`
* `transferCount`
* `timestamp`

Default: `blockHeight DESC`

**Response**

```
PaginatedResponse<Block>
```

**Example**

```
GET /validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/blocks
```

```
{
  "data": [
    {
      "blockHash": "3dd8ebea170289fcc38334fd0cfb79ad8e3f85ef703aee41e0cf603437ccfd97",
      "parentHash": "e23c981307b98afbf4a0cde7641f842b7ed177c6776e46b78f7f40c2fe02ce81",
      "timestamp": "2021-06-23T12:04:35.000Z",
      "eraId": 902,
      "proposer": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "state": "5542c06b2665a497280d68df5ed7f74d31ea4303c8c95455e2716a13d5e4e89b",
      "deployCount": 0,
      "transferCount": 0,
      "blockHeight": 86364
    },
    ...,
    {
      "blockHash": "34c2d83a4f61c4ad4f8eb3520392fc637acd0fad13f232b55cc1bfa895ef4c3d",
      "parentHash": "aff8fd1580b643c0e92906025d3f11fbf3792740e8bc06c0f4987523b92bde4c",
      "timestamp": "2021-06-23T08:49:05.000Z",
      "eraId": 900,
      "proposer": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "state": "96aa10a683ed4ea9c04b3b49284f2666edc73739da660fce48723b4494b7d1cf",
      "deployCount": 0,
      "transferCount": 0,
      "blockHeight": 86185
    }
  ],
  "pageCount": 597,
  "itemCount": 5968,
  "pages": [
    {
      "number": 1,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/blocks?page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/blocks?page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/blocks?page=3&limit=10"
    }
  ]
}
```

#### Get paginated list of validator rewards

**Endpoint**

```
GET /validators/:validatorPublicKey/rewards
```

**Endpoint-specific query parameters**

None

**Sorting**

Fields:

* `eraId`
* `amount`
* `timestamp`

Default: `eraId DESC`

**Response**

```
PaginatedResponse<ValidatorReward>
```

**Example**

```
GET /validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1
```

```
{
  "data": [
    {
      "eraId": 901,
      "publicKey": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "amount": 323966562044,
      "timestamp": "2021-06-23T10:50:19.000Z",
      "currency_amount": 70.00334265959161,
      "current_currency_amount": 70.82751359343153
    },
    ...,
    {
      "eraId": 892,
      "publicKey": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "amount": 324760984370,
      "timestamp": "2021-06-22T16:48:58.000Z",
      "currency_amount": 67.62335597044326,
      "current_currency_amount": 71.00119496887562
    }
  ],
  "pageCount": 91,
  "itemCount": 902,
  "pages": [
    {
      "number": 1,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1&page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1&page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/rewards?with_amounts_in_currency_id=1&page=3&limit=10"
    }
  ]
}
```

#### Get total validator rewards amount

**Endpoint**

```
GET /validators/:validatorPublicKey/total-rewards
```

**Endpoint-specific query parameters**

None

**Response**

```
int
```

**Example**

```
GET /validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/total-rewards
```

```
{
  "data": 259265504145519
}
```

#### Get total validator delegators rewards amount

**Endpoint**

```
GET /validators/:validatorPublicKey/total-delegator-rewards
```

**Endpoint-specific query parameters**

None

**Response**

```
int
```

**Example**

```
GET /validators/017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e/total-delegator-rewards
```

```
{
  "data": 259265504145519
}
```

### Delegators

#### Get paginated list of delegator rewards

**Endpoint**

```
GET /delegators/:delegatorPublicKey/rewards
```

**Endpoint-specific query parameters**

| Parameter            | Type         | Description                      |
| -------------------- | ------------ | -------------------------------- |
| `validatorPublicKey` | `string(68)` | Filters the results by validator |

**Sorting**

Fields:

* `eraId`
* `amount`
* `timestamp`

Default: `eraId DESC`

**Response**

```
PaginatedResponse<ValidatorReward>
```

**Example**

```
GET /delegators/01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079/rewards?with_amounts_in_currency_id=1
```

```
{
  "data": [
    {
      "eraId": 902,
      "publicKey": "01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079",
      "validatorPublicKey": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "amount": 826045897,
      "timestamp": "2021-06-23T12:50:28.000Z",
      "currency_amount": 0.18037125183943498,
      "current_currency_amount": 0.184921938686008
    },
    ...,
    {
      "eraId": 893,
      "publicKey": "01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079",
      "validatorPublicKey": "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e",
      "amount": 826991286,
      "timestamp": "2021-06-22T18:49:07.000Z",
      "currency_amount": 0.1768107369468,
      "current_currency_amount": 0.185133577249104
    }
  ],
  "pageCount": 40,
  "itemCount": 398,
  "pages": [
    {
      "number": 1,
      "url": "/delegators/01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079/rewards?with_amounts_in_currency_id=1&page=1&limit=10"
    },
    {
      "number": 2,
      "url": "/delegators/01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079/rewards?with_amounts_in_currency_id=1&page=2&limit=10"
    },
    {
      "number": 3,
      "url": "/delegators/01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079/rewards?with_amounts_in_currency_id=1&page=3&limit=10"
    }
  ]
}
```

#### Get total delegator rewards amount

**Endpoint**

```
GET /delegators/:delegatorPublicKey/total-rewards
```

**Endpoint-specific query parameters**

None

**Response**

```
int
```

**Example**

```
GET /delegators/01360dbdb9fdcd720f560c9b94815481b0d0109bc1ec761b2e99e974ee00022079/total-rewards
```

```
{
  "data": 340609543815
}
```

### Token supply

**Endpoint**

```
GET /supply
```

**Endpoint-specific query parameters**

None

**Response**

```
TokenSupply
```

**Example**

```
GET /supply
```

```
{
  "data": {
    "total": 10168406025,
    "circulating": 592774555,
    "timestamp": 1624455946839
  }
}
```
