# Sui JSON-RPC

Sui API is available on [Web3 API platform](https://crypto-chief.com/rpc/sui/).

*Sui JSON-RPC* is the HTTP-based API for interacting with Sui nodes. It follows the [JSON-RPC 2.0](https://www.jsonrpc.org/specification) specification: a stateless, transport-agnostic protocol that encodes all requests and responses in JSON. This interface covers object reads, transaction inspection and execution, Move module introspection, coin and staking queries, and event filtering.

> **Note:** The Sui JSON-RPC API is deprecated and scheduled for sunset at the end of July 2026. For new integrations, Mysten Labs recommends the [gRPC](/chains/sui/sui-grpc.md) or [GraphQL](/chains/sui/sui-graphql.md) interfaces.

***

### Methods supported

* [`sui_devInspectTransactionBlock`](#sui_devinspecttransactionblock) — runs the transaction in dev-inspect mode.
* [`sui_dryRunTransactionBlock`](#sui_dryruntransactionblock) — retrieves transaction execution effects including the gas cost summary, while the effects are not committed to the chain.
* [`sui_executeTransactionBlock`](#sui_executetransactionblock) — executes the transaction and wait for results if desired.
* [`sui_getChainIdentifier`](#sui_getchainidentifier) — retrieves the chain's identifier.
* [`sui_getCheckpoint`](#sui_getcheckpoint) — retrieves a checkpoint.
* [`sui_getCheckpoints`](#sui_getcheckpoints) — retrieves a paginated list of checkpoints.
* [`sui_getEvents`](#sui_getevents) — retrieves transaction events.
* [`sui_getLatestCheckpointSequenceNumber`](#sui_getlatestcheckpointsequencenumber) — retrieves the sequence number of the latest checkpoint that has been executed.
* [`sui_getLoadedChildObjects`](#sui_getloadedchildobjects) — retrieves loaded child objects.
* [`sui_getMoveFunctionArgTypes`](#sui_getmovefunctionargtypes) — retrieves the argument types of a Move function, based on normalized Type.
* [`sui_getNormalizedMoveFunction`](#sui_getnormalizedmovefunction) — retrieves a structured representation of Move function.
* [`sui_getNormalizedMoveModule`](#sui_getnormalizedmovemodule) — retrieves a structured representation of Move module.
* [`sui_getNormalizedMoveModulesByPackage`](#sui_getnormalizedmovemodulesbypackage) — retrieves structured representations of all modules in the given package.
* [`sui_getNormalizedMoveStruct`](#sui_getnormalizedmovestruct) — retrieves a structured representation of Move struct.
* [`sui_getObject`](#sui_getobject) — retrieves the object information for a specified object.
* [`sui_getProtocolConfig`](#sui_getprotocolconfig) — retrieves the protocol config table for the given version number.
* [`sui_getTotalTransactionBlocks`](#sui_gettotaltransactionblocks) — retrieves the total number of transactions known to the server.
* [`sui_getTransactionBlock`](#sui_gettransactionblock) — retrieves the transaction response object.
* [`sui_multiGetObjects`](#sui_multigetobjects) — retrieves the object data for a list of objects.
* [`sui_multiGetTransactionBlocks`](#sui_multigettransactionblocks) — retrieves an ordered list of transaction responses.
* [`sui_tryGetPastObject`](#sui_trygetpastobject) — retrieves the object information for a specified version.
* [`sui_tryMultiGetPastObjects`](#sui_trymultigetpastobjects) — retrieves the object information for a specified version.
* [`suix_getAllBalances`](#suix_getallbalances) — retrieves the total coin balance for all coin type, owned by the address owner.
* [`suix_getAllCoins`](#suix_getallcoins) — retrieves all Coin objects owned by an address.
* [`suix_getBalance`](#suix_getbalance) — retrieves the total coin balance for one coin type, owned by the address owner.
* [`suix_getCoinMetadata`](#suix_getcoinmetadata) — retrieves metadata (as symbol or decimals) for a coin.
* [`suix_getCoins`](#suix_getcoins) — retrieves all coin type objects owned by an address.
* [`suix_getCommitteeInfo`](#suix_getcommitteeinfo) — retrieves the committee information for the epoch specified.
* [`suix_getDynamicFieldObject`](#suix_getdynamicfieldobject) — retrieves the dynamic field object information for a specified object.
* [`suix_getDynamicFields`](#suix_getdynamicfields) — retrieves the list of dynamic field objects owned by an object.
* [`suix_getLatestSuiSystemState`](#suix_getlatestsuisystemstate) — retrieves the latest SUI system state object on-chain.
* [`suix_getOwnedObjects`](#suix_getownedobjects) — retrieves the list of objects owned by an address.
* [`suix_getReferenceGasPrice`](#suix_getreferencegasprice) — retrieves the reference gas price for the network.
* [`suix_getStakes`](#suix_getstakes) — retrieves all `DelegatedStake`.
* [`suix_getStakesByIds`](#suix_getstakesbyids) — retrieves one or more `DelegatedStake`s.
* [`suix_getTotalSupply`](#suix_gettotalsupply) — retrieves total supply for a coin.
* [`suix_getValidatorsApy`](#suix_getvalidatorsapy) — retrieves the validator APY.
* [`suix_queryEvents`](#suix_queryevents) — retrieves the list of events for a specified query criteria.
* [`suix_queryTransactionBlocks`](#suix_querytransactionblocks) — retrieves list of transactions for a specified query criteria.
* [`suix_resolveNameServiceAddress`](#suix_resolvenameserviceaddress) — retrieves the resolved address given the resolver and name.
* [`suix_resolveNameServiceNames`](#suix_resolvenameservicenames) — retrieves the resolved names given an address.
* [`unsafe_batchTransaction`](#unsafe_batchtransaction) — creates an unsigned batched transaction.
* [`unsafe_mergeCoins`](#unsafe_mergecoins) — creates an unsigned transaction to merge multiple coins into one coin.
* [`unsafe_moveCall`](#unsafe_movecall) — creates an unsigned transaction to execute a Move call on the network by calling the specified function in the module of a given package.
* [`unsafe_pay`](#unsafe_pay) — sends `Coin<T>` to a list of addresses.
* [`unsafe_payAllSui`](#unsafe_payallsui) — sends all SUI coins to one recipient.
* [`unsafe_paySui`](#unsafe_paysui) — sends SUI coins to a list of addresses, following a list of amounts.
* [`unsafe_publish`](#unsafe_publish) — creates an unsigned transaction to publish a Move package.
* [`unsafe_requestAddStake`](#unsafe_requestaddstake) — adds the stake to a validator's staking pool using multiple coins and amount.
* [`unsafe_requestWithdrawStake`](#unsafe_requestwithdrawstake) — withdraws the stake from a validator's staking pool.
* [`unsafe_splitCoin`](#unsafe_splitcoin) — creates an unsigned transaction to split a coin object into multiple coins.
* [`unsafe_splitCoinEqual`](#unsafe_splitcoinequal) — creates an unsigned transaction to split a coin object into multiple equal-size coins.
* [`unsafe_transferObject`](#unsafe_transferobject) — creates an unsigned transaction to transfer an object from one address to another.
* [`unsafe_transferSui`](#unsafe_transfersui) — an unsigned transaction to send SUI coin object to a Sui address.

***

#### `sui_devInspectTransactionBlock`

> Executes a transaction in dev-inspect mode — allows any transaction or Move call with arbitrary arguments and returns detailed effects and return values without committing state changes.

This mode allows for nearly any transaction (or Move call) with any arguments. Detailed results are provided, including both the transaction effects and any return values.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<sender_address>`: Sui address.
  * `<tx_bytes>` (Base64): a BCS encoded `TransactionKind` (as opposed to `TransactionData`, which include `gasBudget` and `gasPrice`).
  * `<gas_price>` (string): gas is not charged, but gas usage is still calculated. Defaults to using a reference gas price.
  * `<epoch>` (string): the epoch to perform the call. Will be set from the system state object if not provided.

**Returns**

* `effects` (TransactionBlockEffects): the summary of effects that likely would be generated if the transaction is actually run. Note however, that not all dev-inspect transactions are actually usable as transactions, so it might not be possible actually to generate these effects from a normal transaction.
* `error` (string, null): an execution error from executing the transactions.
* `events` (Event): events that likely would be generated if the transaction is actually run.
* `results` (SuiExecutionResult): execution results (including return values) from executing the transactions.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "sui_devInspectTransactionBlock",
      "params": [
        "0xd70420418b84502e506794227f897237764dde8d79a01ab2104bf742a277a2ab",
        "AAACACBnxtMcbJcOVn8D72fYEaT4Q2ZbjePygvpIs+AQO6m77QEAagYVO5/EhuEB8OnicDrIZm0GrsxN3355JqNhlwxlpbECAAAAAAAAACDoQ3EipycU+/EOvBcDPFtMkZiSbdzWAw3CwdmQCAtBWAEBAQEBAAEAAC9cVD1xauQ9RT3rOxmbva8bxwMMdoL4dwPc5DEkj+3gASxDgF0Nb1QCp60Npb3sVJx83qBrxKHTOaIlIe6pM7iJAgAAAAAAAAAgnvsgc1pPauyCE27/c+aBnHN3fSsxRAWdEJYzYFOryNAvXFQ9cWrkPUU96zsZm72vG8cDDHaC+HcD3OQxJI/t4AoAAAAAAAAAAC0xAQAAAAAA",
        "1000",
        "8888"
      ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_devInspectTransactionBlock",
    params: ["0xd70420418b84502e506794227f897237764dde8d79a01ab2104bf742a277a2ab", "AAACACBnxtMcbJcOVn8D72fYEaT4Q2ZbjePygvpIs+AQO6m77QEAagYVO5/EhuEB8OnicDrIZm0GrsxN3355JqNhlwxlpbECAAAAAAAAACDoQ3EipycU+/EOvBcDPFtMkZiSbdzWAw3CwdmQCAtBWAEBAQEBAAEAAC9cVD1xauQ9RT3rOxmbva8bxwMMdoL4dwPc5DEkj+3gASxDgF0Nb1QCp60Npb3sVJx83qBrxKHTOaIlIe6pM7iJAgAAAAAAAAAgnvsgc1pPauyCE27/c+aBnHN3fSsxRAWdEJYzYFOryNAvXFQ9cWrkPUU96zsZm72vG8cDDHaC+HcD3OQxJI/t4AoAAAAAAAAAAC0xAQAAAAAA", "1000", "8888"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_devInspectTransactionBlock",
        "params": ["0xd70420418b84502e506794227f897237764dde8d79a01ab2104bf742a277a2ab", "AAACACBnxtMcbJcOVn8D72fYEaT4Q2ZbjePygvpIs+AQO6m77QEAagYVO5/EhuEB8OnicDrIZm0GrsxN3355JqNhlwxlpbECAAAAAAAAACDoQ3EipycU+/EOvBcDPFtMkZiSbdzWAw3CwdmQCAtBWAEBAQEBAAEAAC9cVD1xauQ9RT3rOxmbva8bxwMMdoL4dwPc5DEkj+3gASxDgF0Nb1QCp60Npb3sVJx83qBrxKHTOaIlIe6pM7iJAgAAAAAAAAAgnvsgc1pPauyCE27/c+aBnHN3fSsxRAWdEJYzYFOryNAvXFQ9cWrkPUU96zsZm72vG8cDDHaC+HcD3OQxJI/t4AoAAAAAAAAAAC0xAQAAAAAA", "1000", "8888"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "effects": {
      "messageVersion": "v1",
      "status": {
        "status": "success"
      },
      "executedEpoch": "0",
      "gasUsed": {
        "computationCost": "100",
        "storageCost": "100",
        "storageRebate": "10",
        "nonRefundableStorageFee": "0"
      },
      "transactionDigest": "76gyHCk7FRrGACRqXM7Ybj5uJLtAzgEMJ5P9CeEzxZSG",
      "mutated": [
        {
          "owner": {
            "AddressOwner": "0x2f5c543d716ae43d453deb3b199bbdaf1bc7030c7682f87703dce431248fede0"
          },
          "reference": {
            "objectId": "0x2c43805d0d6f5402a7ad0da5bdec549c7cdea06bc4a1d339a22521eea933b889",
            "version": 2,
            "digest": "BhbWpBeESxuRWvmvLMyb2JNUuFa6j4aG1T4WUiPgKAHm"
          }
        },
        {
          "owner": {
            "AddressOwner": "0x67c6d31c6c970e567f03ef67d811a4f843665b8de3f282fa48b3e0103ba9bbed"
          },
          "reference": {
            "objectId": "0x6a06153b9fc486e101f0e9e2703ac8666d06aecc4ddf7e7926a361970c65a5b1",
            "version": 2,
            "digest": "GdfET1avZReDftpJNB8LSuHJ2cKUheSbEaLMzuPVXHsM"
          }
        }
      ],
      "gasObject": {
        "owner": {
          "ObjectOwner": "0x2f5c543d716ae43d453deb3b199bbdaf1bc7030c7682f87703dce431248fede0"
        },
        "reference": {
          "objectId": "0x2c43805d0d6f5402a7ad0da5bdec549c7cdea06bc4a1d339a22521eea933b889",
          "version": 2,
          "digest": "BhbWpBeESxuRWvmvLMyb2JNUuFa6j4aG1T4WUiPgKAHm"
        }
      },
      "eventsDigest": "6kerMphN4S5QTfd9TAhwMiFq1q9c2YwfpheBfWm85vUq"
    },
    "events": []
  }
}
```

***

#### `sui_dryRunTransactionBlock`

> Performs a dry-run of a signed transaction block, returning gas cost summary and execution effects without writing anything to the chain.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<tx_bytes>` (Base64): a BCS encoded `TransactionKind` (as opposed to `TransactionData`, which include `gasBudget` and `gasPrice`).

**Returns**

* `balanceChanges`: balance change.
* `effects`: transaction block effects.
* `events`: an event.
* `input`: transaction block data.
* `objectChanges`: object change.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "sui_dryRunTransactionBlock",
      "params": [
        "AAACACB7qR3cfnF89wjJNwYPBASHNuwz+xdG2Zml5YzVxnftgAEAT4LxyFh7mNZMAL+0bDhDvYv2zPp8ZahhOGmM0f3Kw9wCAAAAAAAAACCxDABG4pPAjOwPQHg9msS/SrtNf4IGR/2F0ZGD3ufH/wEBAQEBAAEAAGH7tbTzQqQL2/h/5KlGueONGM+P/HsAALl1F1x7apV2AejYx86GPzE9o9vZKoPvJtEouI/ma/JuDg0Jza9yfR2EAgAAAAAAAAAgzMqpegLMOpgEFnDhYJ23FOmFjJbp5GmFXxzzv9+X6GVh+7W080KkC9v4f+SpRrnjjRjPj/x7AAC5dRdce2qVdgoAAAAAAAAAAC0xAQAAAAAA"
      ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_dryRunTransactionBlock",
    params: ["AAACACB7qR3cfnF89wjJNwYPBASHNuwz+xdG2Zml5YzVxnftgAEAT4LxyFh7mNZMAL+0bDhDvYv2zPp8ZahhOGmM0f3Kw9wCAAAAAAAAACCxDABG4pPAjOwPQHg9msS/SrtNf4IGR/2F0ZGD3ufH/wEBAQEBAAEAAGH7tbTzQqQL2/h/5KlGueONGM+P/HsAALl1F1x7apV2AejYx86GPzE9o9vZKoPvJtEouI/ma/JuDg0Jza9yfR2EAgAAAAAAAAAgzMqpegLMOpgEFnDhYJ23FOmFjJbp5GmFXxzzv9+X6GVh+7W080KkC9v4f+SpRrnjjRjPj/x7AAC5dRdce2qVdgoAAAAAAAAAAC0xAQAAAAAA"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_dryRunTransactionBlock",
        "params": ["AAACACB7qR3cfnF89wjJNwYPBASHNuwz+xdG2Zml5YzVxnftgAEAT4LxyFh7mNZMAL+0bDhDvYv2zPp8ZahhOGmM0f3Kw9wCAAAAAAAAACCxDABG4pPAjOwPQHg9msS/SrtNf4IGR/2F0ZGD3ufH/wEBAQEBAAEAAGH7tbTzQqQL2/h/5KlGueONGM+P/HsAALl1F1x7apV2AejYx86GPzE9o9vZKoPvJtEouI/ma/JuDg0Jza9yfR2EAgAAAAAAAAAgzMqpegLMOpgEFnDhYJ23FOmFjJbp5GmFXxzzv9+X6GVh+7W080KkC9v4f+SpRrnjjRjPj/x7AAC5dRdce2qVdgoAAAAAAAAAAC0xAQAAAAAA"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "digest": "Gm54bTY5F9KjiCw3kfKpkXPaEE3kx8ToJkYqTsuQDZ7q",
    "transaction": {
      "data": {
        "messageVersion": "v1",
        "transaction": {
          "kind": "ProgrammableTransaction",
          "inputs": [
            {
              "type": "pure",
              "valueType": "address",
              "value": "0x7ba91ddc7e717cf708c937060f04048736ec33fb1746d999a5e58cd5c677ed80"
            },
            {
              "type": "object",
              "objectType": "immOrOwnedObject",
              "objectId": "0x4f82f1c8587b98d64c00bfb46c3843bd8bf6ccfa7c65a86138698cd1fdcac3dc",
              "version": "2",
              "digest": "Cv7n2YaM7Am1ssZGu4khsFkcKHnpgVhwFCSs4kLjrtLW"
            }
          ],
          "transactions": [
            {
              "TransferObjects": [
                [
                  {
                    "Input": 1
                  }
                ],
                {
                  "Input": 0
                }
              ]
            }
          ]
        },
        "sender": "0x61fbb5b4f342a40bdbf87fe4a946b9e38d18cf8ffc7b0000b975175c7b6a9576",
        "gasData": {
          "payment": [
            {
              "objectId": "0xe8d8c7ce863f313da3dbd92a83ef26d128b88fe66bf26e0e0d09cdaf727d1d84",
              "version": 2,
              "digest": "EnRQXe1hDGAJCFyF2ds2GmPHdvf9V6yxf24LisEsDkYt"
            }
          ],
          "owner": "0x61fbb5b4f342a40bdbf87fe4a946b9e38d18cf8ffc7b0000b975175c7b6a9576",
          "price": "10",
          "budget": "20000000"
        }
      },
      "txSignatures": [
        "AGLsaLe6fSvGG/YgrxirjhKqE21kVCcveOW9h0IiCZ1Ei/oAOmu95EnKjoBhLHcS2/2Ga2Ljw0BVnGrY6reYkwVDij1TvBYKLcfLNo8fq6GASb9yfo6uvuwNUBGkTf54wQ=="
      ]
    },
    "rawTransaction": "AQAAAAAAAgAge6kd3H5xfPcIyTcGDwQEhzbsM/sXRtmZpeWM1cZ37YABAE+C8chYe5jWTAC/tGw4Q72L9sz6fGWoYThpjNH9ysPcAgAAAAAAAAAgsQwARuKTwIzsD0B4PZrEv0q7TX+CBkf9hdGRg97nx/8BAQEBAQABAABh+7W080KkC9v4f+SpRrnjjRjPj/x7AAC5dRdce2qVdgHo2MfOhj8xPaPb2SqD7ybRKLiP5mvybg4NCc2vcn0dhAIAAAAAAAAAIMzKqXoCzDqYBBZw4WCdtxTphYyW6eRphV8c87/fl+hlYfu1tPNCpAvb+H/kqUa5440Yz4/8ewAAuXUXXHtqlXYKAAAAAAAAAAAtMQEAAAAAAAFhAGLsaLe6fSvGG/YgrxirjhKqE21kVCcveOW9h0IiCZ1Ei/oAOmu95EnKjoBhLHcS2/2Ga2Ljw0BVnGrY6reYkwVDij1TvBYKLcfLNo8fq6GASb9yfo6uvuwNUBGkTf54wQ==",
    "effects": {
      "messageVersion": "v1",
      "status": {
        "status": "success"
      },
      "executedEpoch": "0",
      "gasUsed": {
        "computationCost": "100",
        "storageCost": "100",
        "storageRebate": "10",
        "nonRefundableStorageFee": "0"
      },
      "transactionDigest": "8UExPV121BEfWkbymSPDYhh23rVNh3MSWtC5juJ9JGMJ",
      "mutated": [
        {
          "owner": {
            "AddressOwner": "0x61fbb5b4f342a40bdbf87fe4a946b9e38d18cf8ffc7b0000b975175c7b6a9576"
          },
          "reference": {
            "objectId": "0xe8d8c7ce863f313da3dbd92a83ef26d128b88fe66bf26e0e0d09cdaf727d1d84",
            "version": 2,
            "digest": "EnRQXe1hDGAJCFyF2ds2GmPHdvf9V6yxf24LisEsDkYt"
          }
        },
        {
          "owner": {
            "AddressOwner": "0x7ba91ddc7e717cf708c937060f04048736ec33fb1746d999a5e58cd5c677ed80"
          },
          "reference": {
            "objectId": "0x4f82f1c8587b98d64c00bfb46c3843bd8bf6ccfa7c65a86138698cd1fdcac3dc",
            "version": 2,
            "digest": "Cv7n2YaM7Am1ssZGu4khsFkcKHnpgVhwFCSs4kLjrtLW"
          }
        }
      ],
      "gasObject": {
        "owner": {
          "ObjectOwner": "0x61fbb5b4f342a40bdbf87fe4a946b9e38d18cf8ffc7b0000b975175c7b6a9576"
        },
        "reference": {
          "objectId": "0xe8d8c7ce863f313da3dbd92a83ef26d128b88fe66bf26e0e0d09cdaf727d1d84",
          "version": 2,
          "digest": "EnRQXe1hDGAJCFyF2ds2GmPHdvf9V6yxf24LisEsDkYt"
        }
      },
      "eventsDigest": "55TNn3v5vpuXjQfjqamw76P9GZD522pumo4NuT7RYeFB"
    },
    "objectChanges": [
      {
        "type": "transferred",
        "sender": "0x61fbb5b4f342a40bdbf87fe4a946b9e38d18cf8ffc7b0000b975175c7b6a9576",
        "recipient": {
          "AddressOwner": "0x7ba91ddc7e717cf708c937060f04048736ec33fb1746d999a5e58cd5c677ed80"
        },
        "objectType": "0x2::example::Object",
        "objectId": "0x4f82f1c8587b98d64c00bfb46c3843bd8bf6ccfa7c65a86138698cd1fdcac3dc",
        "version": "2",
        "digest": "B3xLC8EbyvTxy5pgiwTNUzHLa6kS7uwD6sZdErKB8F8f"
      }
    ]
  }
}
```

***

#### `sui_executeTransactionBlock`

> Submits a signed transaction block for execution and returns the resulting effects, events, and object changes.

Request types:

1. `WaitForEffectsCert`: waits for `TransactionEffectsCert` and then return to client. This mode is a proxy for transaction finality.
2. `WaitForLocalExecution`: waits for `TransactionEffectsCert` and make sure the node executed the transaction locally before returning the client. The local execution makes sure this node is aware of this transaction when client fires subsequent queries. However, if the node fails to execute the transaction locally in a timely manner, a bool type in the response is set to `false` to indicate the case. `request_type` is default to be `WaitForEffectsCert` unless `options.show_events` or `options.show_effects` is `true`.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<tx_bytes>` (Base64): a BCS encoded `TransactionKind` (as opposed to `TransactionData`, which include `gasBudget` and `gasPrice`).
  * `<signatures>` (Base64): a list of signatures (`flag || signature || pubkey` bytes, as base-64 encoded string). Signature is committed to the intent message of the transaction data, as base-64 encoded string.
  * `<options>` (TransactionBlockResponseOptions): options for specifying the content to be returned.
  * `<request_type>` (ExecuteTransactionRequestType): a request type, derived from `SuiTransactionBlockResponseOptions` if None.

**Returns**

* `<SuiTransactionBlockResponse>`

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_executeTransactionBlock",
  "params": [
    "AAACACBqEB6aOvXIBwES+Ahkizbvv43uihqC3kbZUE6WoRCKFwEAjvdvVsOZYzousxC8qRJOXy84znOeqsu2YAaIgE4HhEgCAAAAAAAAACB9w3+ufZMpihJFwxtCBojBaGy00TVtFxgN2C6TpIPFqwEBAQEBAAEAAAS0l6kWtGVmCaf6gnoJGE1vR2gdO6dM4NejbGSysfiHAZ+Q9/hmzCnfsdpjc86U+dldylpA9OF2mRjuv5+64AvTAgAAAAAAAAAgjleHL0UiRGjh/BfIFHCJ3EMY/dQA22c2TvNQyVJnbYUEtJepFrRlZgmn+oJ6CRhNb0doHTunTODXo2xksrH4hwoAAAAAAAAAAC0xAQAAAAAA",
    [
      "AEZc4UMAoxzWtp+i1dvyOgmy+Eeb/5ZNwO5dpHBqX5Rt36+HhYnBby8asFU4b0i7TjQZGgLahT8w3NQUfk0NUQnqvbuA0Q1Bqu4RHV3JPpqmH+C527hWJGUBOZN1j9sg8w=="
    ],
    {
      "showInput": true,
      "showRawInput": true,
      "showEffects": true,
      "showEvents": true,
      "showObjectChanges": true,
      "showBalanceChanges": true
    },
    "WaitForLocalExecution"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_executeTransactionBlock",
    params: ["AAACACBqEB6aOvXIBwES+Ahkizbvv43uihqC3kbZUE6WoRCKFwEAjvdvVsOZYzousxC8qRJOXy84znOeqsu2YAaIgE4HhEgCAAAAAAAAACB9w3+ufZMpihJFwxtCBojBaGy00TVtFxgN2C6TpIPFqwEBAQEBAAEAAAS0l6kWtGVmCaf6gnoJGE1vR2gdO6dM4NejbGSysfiHAZ+Q9/hmzCnfsdpjc86U+dldylpA9OF2mRjuv5+64AvTAgAAAAAAAAAgjleHL0UiRGjh/BfIFHCJ3EMY/dQA22c2TvNQyVJnbYUEtJepFrRlZgmn+oJ6CRhNb0doHTunTODXo2xksrH4hwoAAAAAAAAAAC0xAQAAAAAA", ["AEZc4UMAoxzWtp+i1dvyOgmy+Eeb/5ZNwO5dpHBqX5Rt36+HhYnBby8asFU4b0i7TjQZGgLahT8w3NQUfk0NUQnqvbuA0Q1Bqu4RHV3JPpqmH+C527hWJGUBOZN1j9sg8w=="], {"showInput": true, "showRawInput": true, "showEffects": true, "showEvents": true, "showObjectChanges": true, "showBalanceChanges": true}, "WaitForLocalExecution"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_executeTransactionBlock",
        "params": ["AAACACBqEB6aOvXIBwES+Ahkizbvv43uihqC3kbZUE6WoRCKFwEAjvdvVsOZYzousxC8qRJOXy84znOeqsu2YAaIgE4HhEgCAAAAAAAAACB9w3+ufZMpihJFwxtCBojBaGy00TVtFxgN2C6TpIPFqwEBAQEBAAEAAAS0l6kWtGVmCaf6gnoJGE1vR2gdO6dM4NejbGSysfiHAZ+Q9/hmzCnfsdpjc86U+dldylpA9OF2mRjuv5+64AvTAgAAAAAAAAAgjleHL0UiRGjh/BfIFHCJ3EMY/dQA22c2TvNQyVJnbYUEtJepFrRlZgmn+oJ6CRhNb0doHTunTODXo2xksrH4hwoAAAAAAAAAAC0xAQAAAAAA", ["AEZc4UMAoxzWtp+i1dvyOgmy+Eeb/5ZNwO5dpHBqX5Rt36+HhYnBby8asFU4b0i7TjQZGgLahT8w3NQUfk0NUQnqvbuA0Q1Bqu4RHV3JPpqmH+C527hWJGUBOZN1j9sg8w=="], {"showInput": True, "showRawInput": True, "showEffects": True, "showEvents": True, "showObjectChanges": True, "showBalanceChanges": True}, "WaitForLocalExecution"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "digest": "BgSFSEFYbCrVUJJtHFeoLmLJi8jDf1CpC2o8S33HjeDJ",
    "transaction": {
      "data": {
        "messageVersion": "v1",
        "transaction": {
          "kind": "ProgrammableTransaction",
          "inputs": [
            {
              "type": "pure",
              "valueType": "address",
              "value": "0x6a101e9a3af5c8070112f808648b36efbf8dee8a1a82de46d9504e96a1108a17"
            },
            {
              "type": "object",
              "objectType": "immOrOwnedObject",
              "objectId": "0x8ef76f56c399633a2eb310bca9124e5f2f38ce739eaacbb6600688804e078448",
              "version": "2",
              "digest": "9Tvs1pGrMbNv7kkr1PoKLsWamyQpaFz5UWbL2AQ1ezk2"
            }
          ],
          "transactions": [
            {
              "TransferObjects": [
                [
                  {
                    "Input": 1
                  }
                ],
                {
                  "Input": 0
                }
              ]
            }
          ]
        },
        "sender": "0x04b497a916b4656609a7fa827a09184d6f47681d3ba74ce0d7a36c64b2b1f887",
        "gasData": {
          "payment": [
            {
              "objectId": "0x9f90f7f866cc29dfb1da6373ce94f9d95dca5a40f4e1769918eebf9fbae00bd3",
              "version": 2,
              "digest": "AaeJbTYkUuyromsivxzkoxSkHt7pCESTyQG7xz6nbQ2G"
            }
          ],
          "owner": "0x04b497a916b4656609a7fa827a09184d6f47681d3ba74ce0d7a36c64b2b1f887",
          "price": "10",
          "budget": "20000000"
        }
      },
      "txSignatures": [
        "AEZc4UMAoxzWtp+i1dvyOgmy+Eeb/5ZNwO5dpHBqX5Rt36+HhYnBby8asFU4b0i7TjQZGgLahT8w3NQUfk0NUQnqvbuA0Q1Bqu4RHV3JPpqmH+C527hWJGUBOZN1j9sg8w=="
      ]
    },
    "rawTransaction": "AQAAAAAAAgAgahAemjr1yAcBEvgIZIs277+N7ooagt5G2VBOlqEQihcBAI73b1bDmWM6LrMQvKkSTl8vOM5znqrLtmAGiIBOB4RIAgAAAAAAAAAgfcN/rn2TKYoSRcMbQgaIwWhstNE1bRcYDdguk6SDxasBAQEBAQABAAAEtJepFrRlZgmn+oJ6CRhNb0doHTunTODXo2xksrH4hwGfkPf4Zswp37HaY3POlPnZXcpaQPThdpkY7r+fuuAL0wIAAAAAAAAAII5Xhy9FIkRo4fwXyBRwidxDGP3UANtnNk7zUMlSZ22FBLSXqRa0ZWYJp/qCegkYTW9HaB07p0zg16NsZLKx+IcKAAAAAAAAAAAtMQEAAAAAAAFhAEZc4UMAoxzWtp+i1dvyOgmy+Eeb/5ZNwO5dpHBqX5Rt36+HhYnBby8asFU4b0i7TjQZGgLahT8w3NQUfk0NUQnqvbuA0Q1Bqu4RHV3JPpqmH+C527hWJGUBOZN1j9sg8w==",
    "effects": {
      "messageVersion": "v1",
      "status": {
        "status": "success"
      },
      "executedEpoch": "0",
      "gasUsed": {
        "computationCost": "100",
        "storageCost": "100",
        "storageRebate": "10",
        "nonRefundableStorageFee": "0"
      },
      "transactionDigest": "9agZ3azEMgMqxrDVG8P4GddELfWag2HhimEkpjixHhGE",
      "mutated": [
        {
          "owner": {
            "AddressOwner": "0x04b497a916b4656609a7fa827a09184d6f47681d3ba74ce0d7a36c64b2b1f887"
          },
          "reference": {
            "objectId": "0x9f90f7f866cc29dfb1da6373ce94f9d95dca5a40f4e1769918eebf9fbae00bd3",
            "version": 2,
            "digest": "AaeJbTYkUuyromsivxzkoxSkHt7pCESTyQG7xz6nbQ2G"
          }
        },
        {
          "owner": {
            "AddressOwner": "0x6a101e9a3af5c8070112f808648b36efbf8dee8a1a82de46d9504e96a1108a17"
          },
          "reference": {
            "objectId": "0x8ef76f56c399633a2eb310bca9124e5f2f38ce739eaacbb6600688804e078448",
            "version": 2,
            "digest": "9Tvs1pGrMbNv7kkr1PoKLsWamyQpaFz5UWbL2AQ1ezk2"
          }
        }
      ],
      "gasObject": {
        "owner": {
          "ObjectOwner": "0x04b497a916b4656609a7fa827a09184d6f47681d3ba74ce0d7a36c64b2b1f887"
        },
        "reference": {
          "objectId": "0x9f90f7f866cc29dfb1da6373ce94f9d95dca5a40f4e1769918eebf9fbae00bd3",
          "version": 2,
          "digest": "AaeJbTYkUuyromsivxzkoxSkHt7pCESTyQG7xz6nbQ2G"
        }
      },
      "eventsDigest": "816hEv4WAW2reK9xkf11PeHiaZJrp7PQT9oGJZhdf9TN"
    },
    "objectChanges": [
      {
        "type": "transferred",
        "sender": "0x04b497a916b4656609a7fa827a09184d6f47681d3ba74ce0d7a36c64b2b1f887",
        "recipient": {
          "AddressOwner": "0x6a101e9a3af5c8070112f808648b36efbf8dee8a1a82de46d9504e96a1108a17"
        },
        "objectType": "0x2::example::Object",
        "objectId": "0x8ef76f56c399633a2eb310bca9124e5f2f38ce739eaacbb6600688804e078448",
        "version": "2",
        "digest": "7PsBHpUW6yfGNov2WrbVafLjgT9nYziQ3gVDbRq6zTbF"
      }
    ]
  }
}
```

***

#### `sui_getChainIdentifier`

> Returns the unique chain identifier string for the connected Sui network.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required): none.

**Returns**

A string identifier of a chain.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getChainIdentifier",
  "params": []
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getChainIdentifier",
    params: []
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getChainIdentifier",
        "params": []
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
    "jsonrpc": "2.0",
    "result": "4c78adac",
    "id": 1
}
```

***

#### `sui_getCheckpoint`

> Returns the checkpoint summary and contents for the given sequence number.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<id>`: checkpoint identifier, can use either checkpoint digest, or checkpoint sequence number as input.

**Returns**

* `checkpointCommitments`: commitments to checkpoint state.
* `digest`: checkpoint digest.
* `endOfEpochData`: to be present only on the final checkpoint of the epoch.
* `epoch`: checkpoint's epoch ID.
* `epochRollingGasCostSummary`: the running total gas costs of all transactions included in the current epoch so far until this checkpoint.
* `networkTotalTransactions`: total number of transactions committed since genesis, including those in this checkpoint.
* `previousDigest`: digest of the previous checkpoint.
* `sequenceNumber`: checkpoint sequence number.
* `timestampMs`: timestamp of the checkpoint — number of milliseconds from the Unix epoch Checkpoint timestamps are monotonic, but not strongly monotonic — subsequent checkpoints can have same timestamp if they originate from the same underlining consensus commit
* `transactions`: transaction digests.
* `validatorSignature`: validator Signature.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getCheckpoint",
  "params": [
    "1000"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getCheckpoint",
    params: ["1000"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getCheckpoint",
        "params": ["1000"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "epoch": "5000",
    "sequenceNumber": "1000",
    "digest": "G6Dtzr1ZSfHFhotGsTE3cLENa7L1ooe1BBvknAUsARbV",
    "networkTotalTransactions": "792385",
    "previousDigest": "6tBy8RXZKrdrB4XkMQn7J3MNG4fQCo9XcRduFFvYrL5Z",
    "epochRollingGasCostSummary": {
      "computationCost": "0",
      "storageCost": "0",
      "storageRebate": "0",
      "nonRefundableStorageFee": "0"
    },
    "timestampMs": "1676911928",
    "transactions": [
      "mN8YNBgVR3wB7vfXmjVgDRF4oqxVRRjzmJ6U4mzbq77"
    ],
    "checkpointCommitments": [],
    "validatorSignature": "wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
  }
}
```

***

#### `sui_getCheckpoints`

> Returns a paginated list of checkpoint summaries in the specified range.

Gets a paginated list of all checkpoints starting at the provided cursor organised in descending order. Each result page has a maximum number of checkpoints set by the provided limit.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<cursor>` (BigInt\_for\_uint64): an optional paging cursor. If provided, the query will start from the next item after the specified cursor. By default, starts from the first item.
  * `<limit>` (uint): the maximum items returned per page; defaults to \[QUERY\_MAX\_RESULT\_LIMIT\_CHECKPOINTS] if not specified.
  * `<descending_order>` (boolean): query result ordering, default to false (ascending order), oldest record first.

**Returns**

* CheckpointPage

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getCheckpoints",
  "params": [
    "1004",
    4,
    false
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getCheckpoints",
    params: ["1004", 4, false]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getCheckpoints",
        "params": ["1004", 4, False]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "epoch": "5000",
        "sequenceNumber": "1005",
        "digest": "9zA7Q9Ka1ykvYjSQGhQCdCf32FZkcWNWx7L22JczXGsk",
        "networkTotalTransactions": "792385",
        "previousDigest": "8BLFxLTjWZ2KqaGc3FjR1o9aL6kbyYrmhuNfJLU1ehYt",
        "epochRollingGasCostSummary": {
          "computationCost": "0",
          "storageCost": "0",
          "storageRebate": "0",
          "nonRefundableStorageFee": "0"
        },
        "timestampMs": "1676911928",
        "transactions": [
          "7RudGLkQDBNJyqrptkrNU66Zd3pvq8MHVAHYz9WpBm59"
        ],
        "checkpointCommitments": [],
        "validatorSignature": "wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      },
      {
        "epoch": "5000",
        "sequenceNumber": "1006",
        "digest": "FAUWHyWacmb4Vg4QGi9a6gqeVb7ixAZiL73FaGd6WpoV",
        "networkTotalTransactions": "792385",
        "previousDigest": "6Pn25cieaE62AT6BwCeBoca13AGZuneucaaTGqt3gNCo",
        "epochRollingGasCostSummary": {
          "computationCost": "0",
          "storageCost": "0",
          "storageRebate": "0",
          "nonRefundableStorageFee": "0"
        },
        "timestampMs": "1676911928",
        "transactions": [
          "7r7tmP5hzgrusiN6cucFwfTveqDb7K75tMJ7oNCyoDmy"
        ],
        "checkpointCommitments": [],
        "validatorSignature": "wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      },
      {
        "epoch": "5000",
        "sequenceNumber": "1007",
        "digest": "B3mzC6gy87SomUQwPsmVY7mtwkZLxfm5WwNi3kKyEb3x",
        "networkTotalTransactions": "792385",
        "previousDigest": "CnHTfdUJr1UUqwXkYUhbQjXeM16xR33UR62jE72toCis",
        "epochRollingGasCostSummary": {
          "computationCost": "0",
          "storageCost": "0",
          "storageRebate": "0",
          "nonRefundableStorageFee": "0"
        },
        "timestampMs": "1676911928",
        "transactions": [
          "Gb1UDqhmKMzMJ5FL37kBqCcuy4TtBL2ay3qec8tEUBLj"
        ],
        "checkpointCommitments": [],
        "validatorSignature": "wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      },
      {
        "epoch": "5000",
        "sequenceNumber": "1008",
        "digest": "HunuJWKu7azBfS47rJTq9FHTMvUDNVo2SK4hQeh5brXp",
        "networkTotalTransactions": "792385",
        "previousDigest": "38fLUfuigyzLPEDrsmRhcQmhKtbEUohuFBP9NDcWBmFz",
        "epochRollingGasCostSummary": {
          "computationCost": "0",
          "storageCost": "0",
          "storageRebate": "0",
          "nonRefundableStorageFee": "0"
        },
        "timestampMs": "1676911928",
        "transactions": [
          "GWTS9QR7mjNz9fBWGkk4JZU3mrzMXrmj74uS59Cd5und"
        ],
        "checkpointCommitments": [],
        "validatorSignature": "wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
      }
    ],
    "nextCursor": "1008",
    "hasNextPage": true
  }
}
```

***

#### `sui_getEvents`

> Returns Move events emitted by the transaction block with the given digest.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<transaction_digest>` (string): the event query criteria.

**Returns**

* `Vec<SuiEvent>`: a Sui event.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getEvents",
  "params": [
    "11a72GCQ5hGNpWGh2QhQkkusTEGS6EDqifJqxr7nSYX"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getEvents",
    params: ["11a72GCQ5hGNpWGh2QhQkkusTEGS6EDqifJqxr7nSYX"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getEvents",
        "params": ["11a72GCQ5hGNpWGh2QhQkkusTEGS6EDqifJqxr7nSYX"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "id": {
          "txDigest": "11a72GCQ5hGNpWGh2QhQkkusTEGS6EDqifJqxr7nSYX",
          "eventSeq": "0"
        },
        "packageId": "0xc54ab30a3d9adc07c1429c4d6bbecaf9457c9af77a91f631760853934d383634",
        "transactionModule": "test_module",
        "sender": "0xbcf7c32655009a61f1de0eae420a2e4ae1bb772ab2dd5d5a7dfa949c0ef06908",
        "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestEvent",
        "parsedJson": {
          "test": "example value"
        },
        "bcs": ""
      }
    ],
    "nextCursor": {
      "txDigest": "11a72GCQ5hGNpWGh2QhQkkusTEGS6EDqifJqxr7nSYX",
      "eventSeq": "5"
    },
    "hasNextPage": false
  }
}
```

***

#### `sui_getLatestCheckpointSequenceNumber`

> Returns the sequence number of the most recently executed checkpoint.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required): none.

**Returns**

* `BigInt<u64>`: the sequence number for the latest checkpoint.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getLatestCheckpointSequenceNumber",
  "params": []
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getLatestCheckpointSequenceNumber",
    params: []
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getLatestCheckpointSequenceNumber",
        "params": []
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": "507021"
}
```

***

#### `sui_getLoadedChildObjects`

> Returns the child objects that were dynamically loaded during the execution of a transaction block.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<digest>`: transaction digest.

**Returns**

* `<SuiLoadedChildObjectsResponse>`: loaded child objects associated with the transaction the request provides.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getLoadedChildObjects",
  "params": [
    "6hpz6Qxv6t5VkNT5rcBKQS2Jootr6WHuSuRMLmmN13Jg"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getLoadedChildObjects",
    params: ["6hpz6Qxv6t5VkNT5rcBKQS2Jootr6WHuSuRMLmmN13Jg"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getLoadedChildObjects",
        "params": ["6hpz6Qxv6t5VkNT5rcBKQS2Jootr6WHuSuRMLmmN13Jg"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "loadedChildObjects": [
      {
        "objectId": "0xb6a23efeb7298cf0a8d0b837b78749c2cfc711c42036cc6b76211639f3606a53",
        "sequenceNumber": "2462820"
      },
      {
        "objectId": "0xf61f3a566963b3eac49fe3bb57d304a454ed2f4859b44f4e49180047d5fa0a82",
        "sequenceNumber": "2462820"
      },
      {
        "objectId": "0xd55c32b09995a0ae1eedfee9c7b1354e805ed10ee3d0800105867da4655eca6d",
        "sequenceNumber": "2164186"
      },
      {
        "objectId": "0x258bfd1ad92af329a07781ee71e60065e00f2de961630d3505f8905a0f4d42c6",
        "sequenceNumber": "3350147"
      },
      {
        "objectId": "0xa78a6ba2b28f68a3299ec3417bbabc6717dcc95b9e341bc3aba1654bdbad707d",
        "sequenceNumber": "3560717"
      },
      {
        "objectId": "0xcd773bd6309363447ef3fe58a960de92aa9377b3482580ee8d5bdc5b824808df",
        "sequenceNumber": "3560717"
      }
    ]
  }
}
```

***

#### `sui_getMoveFunctionArgTypes`

> Returns the argument type descriptors for the specified Move function.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<package>`: an object ID.
  * `<module>` (string)
  * `function` (string)

**Returns**

* `Vec<MoveFunctionArgType>`: the argument types for the package and function the request provides.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getMoveFunctionArgTypes",
  "params": [
    "0x007efb0f94f1e64d2e8090c619a39299d87ee8070b5f56bb10bafa0e2261d819",
    "suifrens",
    "mint"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getMoveFunctionArgTypes",
    params: ["0x007efb0f94f1e64d2e8090c619a39299d87ee8070b5f56bb10bafa0e2261d819", "suifrens", "mint"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getMoveFunctionArgTypes",
        "params": ["0x007efb0f94f1e64d2e8090c619a39299d87ee8070b5f56bb10bafa0e2261d819", "suifrens", "mint"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": [
    {
      "Object": "ByMutableReference"
    },
    "Pure",
    "Pure",
    {
      "Object": "ByValue"
    },
    {
      "Object": "ByImmutableReference"
    },
    {
      "Object": "ByValue"
    },
    {
      "Object": "ByMutableReference"
    }
  ]
}
```

***

#### `sui_getNormalizedMoveFunction`

> Returns the normalized (fully-qualified) type signature of a Move function.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<package>`: an object ID.
  * `<module_name>` (string)
  * `function_name` (string)

**Returns**

* `SuiMoveNormalizedFunction`:
  * `isEntry`
  * `parameters`: Sui Move normalized type.
  * `return` : Sui Move normalized type.
  * `typeParameters` : Sui Move ability set.
  * `visibility` : Sui Move visibility.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getNormalizedMoveFunction",
  "params": [
    "0xb2582f82ab308bf9c96dfb22ec7345db1b5f14fdb2b9538efb160d31842e3a17",
    "moduleName",
    "functionName"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getNormalizedMoveFunction",
    params: ["0xb2582f82ab308bf9c96dfb22ec7345db1b5f14fdb2b9538efb160d31842e3a17", "moduleName", "functionName"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getNormalizedMoveFunction",
        "params": ["0xb2582f82ab308bf9c96dfb22ec7345db1b5f14fdb2b9538efb160d31842e3a17", "moduleName", "functionName"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "visibility": "Public",
    "isEntry": false,
    "typeParameters": [
      {
        "abilities": [
          "Store",
          "Key"
        ]
      }
    ],
    "parameters": [
      "U64"
    ],
    "return": [
      "U64"
    ]
  }
}
```

***

#### `sui_getNormalizedMoveModule`

> Returns the normalized schema for the specified Move module including all functions and structs.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<package>`: an object ID.
  * `<module_name>` (string)

**Returns**

* `SuiMoveNormalizedModule`:
  * `address`
  * `exposedFunctions`
  * `fileFormatVersion`
  * `friends`: Sui Move module ID.
  * `name`
  * `structs`

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getNormalizedMoveModule",
  "params": [
    "0x16dc6797cf787c839a07edc03e633842109123618df6438d21a48040e6bb568c",
    "module"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getNormalizedMoveModule",
    params: ["0x16dc6797cf787c839a07edc03e633842109123618df6438d21a48040e6bb568c", "module"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getNormalizedMoveModule",
        "params": ["0x16dc6797cf787c839a07edc03e633842109123618df6438d21a48040e6bb568c", "module"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "fileFormatVersion": 6,
    "address": "0x43cc4c24010dafad05b12619b275649741cc9060d87664c26a3f9a509228c21b",
    "name": "module",
    "friends": [],
    "structs": {},
    "exposedFunctions": {}
  }
}
```

***

#### `sui_getNormalizedMoveModulesByPackage`

> Returns normalized schemas for every module in the given Move package.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<package>`: an object ID.

**Returns**

* `BTreeMap<String,SuiMoveNormalizedModule>`: structured representations of all the modules for the package in the request.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getNormalizedMoveModulesByPackage",
  "params": [
    "0xece356d10d89e75f565b0934851ba8d5bc59462a46078b90f1f508a1e4fd4eed"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getNormalizedMoveModulesByPackage",
    params: ["0xece356d10d89e75f565b0934851ba8d5bc59462a46078b90f1f508a1e4fd4eed"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getNormalizedMoveModulesByPackage",
        "params": ["0xece356d10d89e75f565b0934851ba8d5bc59462a46078b90f1f508a1e4fd4eed"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "fileFormatVersion": 6,
    "address": "0xafc13246bd847c60448160e0358cac4a11345594d02890c986dbf328d28d21ac",
    "name": "module",
    "friends": [],
    "structs": {},
    "exposedFunctions": {}
  }
}
```

***

#### `sui_getNormalizedMoveStruct`

> Returns the normalized type definition for the specified Move struct.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<package>`: an object ID.
  * `<module_name>` (string): a module name.
  * `<struct_name>` (string): a struct name.

**Returns**

* `abilities`: Sui Move ability set.
* `fields`: Sui Move normalized field.
* `typeParameters`: Sui Move struct type parameter

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getNormalizedMoveStruct",
  "params": [
    "0x46c25c211cb35c05d801c769b78770474957b37379c527753c5c8ab783f697e7",
    "module",
    "StructName"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getNormalizedMoveStruct",
    params: ["0x46c25c211cb35c05d801c769b78770474957b37379c527753c5c8ab783f697e7", "module", "StructName"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getNormalizedMoveStruct",
        "params": ["0x46c25c211cb35c05d801c769b78770474957b37379c527753c5c8ab783f697e7", "module", "StructName"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "abilities": {
      "abilities": [
        "Store",
        "Key"
      ]
    },
    "typeParameters": [],
    "fields": []
  }
}
```

***

#### `sui_getObject`

> Returns the current state and metadata of the object with the given ID.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<object_id>`: the ID of the queried object.
  * `<options>` (array of boolean): specifies the object info to show.

**Returns**

* `<data>`: object data.
* `<error>`: object response error.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getObject",
  "params": [
    "0x53e4567ccafa5f36ce84c80aa8bc9be64e0d5ae796884274aef3005ae6733809",
    {
      "showType": true,
      "showOwner": true,
      "showPreviousTransaction": true,
      "showDisplay": false,
      "showContent": true,
      "showBcs": false,
      "showStorageRebate": true
    }
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getObject",
    params: ["0x53e4567ccafa5f36ce84c80aa8bc9be64e0d5ae796884274aef3005ae6733809", {"showType": true, "showOwner": true, "showPreviousTransaction": true, "showDisplay": false, "showContent": true, "showBcs": false, "showStorageRebate": true}]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getObject",
        "params": ["0x53e4567ccafa5f36ce84c80aa8bc9be64e0d5ae796884274aef3005ae6733809", {"showType": True, "showOwner": True, "showPreviousTransaction": True, "showDisplay": False, "showContent": True, "showBcs": False, "showStorageRebate": True}]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": {
      "objectId": "0x53e4567ccafa5f36ce84c80aa8bc9be64e0d5ae796884274aef3005ae6733809",
      "version": "1",
      "digest": "33K5ZXJ3RyubvYaHuEnQ1QXmmbhgtrFwp199dnEbL4n7",
      "type": "0x2::coin::Coin<0x2::sui::SUI>",
      "owner": {
        "AddressOwner": "0xc8ec1d5b84dd6289e193b9f88de4a994358c9f856135236c3e75a925e1c77ac3"
      },
      "previousTransaction": "5PLgmQye6rraDYqpV3npV6H1cUXoJZgJh1dPCyRa3WCv",
      "storageRebate": "100",
      "content": {
        "dataType": "moveObject",
        "type": "0x2::coin::Coin<0x2::sui::SUI>",
        "hasPublicTransfer": true,
        "fields": {
          "balance": "100000000",
          "id": {
            "id": "0x53e4567ccafa5f36ce84c80aa8bc9be64e0d5ae796884274aef3005ae6733809"
          }
        }
      }
    }
  }
}
```

***

#### `sui_getProtocolConfig`

> Returns the full protocol configuration table for the given protocol version.

If the version number is not specified, If none is specified, the node uses the version of the latest epoch it has processed.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<version>` (BigInt\_for\_uint64; optional): protocol version specifier. If omitted, the latest protocol config table for the node will be returned.

**Returns**

* `ProtocolConfigResponse`: the protocol config for the given protocol version. If none is specified, the node uses the version of the latest epoch it has processed.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getProtocolConfig",
  "params": [
    6
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getProtocolConfig",
    params: [6]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getProtocolConfig",
        "params": [6]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "minSupportedProtocolVersion": "1",
    "maxSupportedProtocolVersion": "12",
    "protocolVersion": "6",
    "featureFlags": {
      "advance_epoch_start_time_in_safe_mode": true,
      "advance_to_highest_supported_protocol_version": false,
      "ban_entry_init": false,
      "commit_root_state_digest": false,
      "consensus_order_end_of_epoch_last": true,
      "disable_invariant_violation_check_in_swap_loc": false,
      "disallow_adding_abilities_on_upgrade": false,
      "disallow_change_struct_type_params_on_upgrade": false,
      "loaded_child_objects_fixed": true,
      "missing_type_is_compatibility_error": true,
      "no_extraneous_module_bytes": false,
      "package_digest_hash_module": false,
      "package_upgrades": true,
      "scoring_decision_with_validity_cutoff": true
    },
    "attributes": {
    }
  }
}
```

***

#### `sui_getTotalTransactionBlocks`

> Returns the total number of transaction blocks processed by the network since genesis.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required): none.

**Returns**

* `BigInt<u64>`: total number of transactions on the network.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getTotalTransactionBlocks",
  "params": []
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getTotalTransactionBlocks",
    params: []
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getTotalTransactionBlocks",
        "params": []
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": "2451485"
}
```

***

#### `sui_getTransactionBlock`

> Returns the transaction block data, effects, and events for the given digest.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<digest>`: the digest of the queried transaction.
  * `<options>`: options for specifying the content to be returned.

**Returns**

* `<SuiTransactionBlockResponse>`: the transaction response object for specified transaction digest.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_getTransactionBlock",
  "params": [
    "oKtFZjL99EZ2K3TLPRarpZN8gz9xReMkiNf4Tjja2no",
    {
      "showInput": true,
      "showRawInput": false,
      "showEffects": true,
      "showEvents": true,
      "showObjectChanges": false,
      "showBalanceChanges": false
    }
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_getTransactionBlock",
    params: ["oKtFZjL99EZ2K3TLPRarpZN8gz9xReMkiNf4Tjja2no", {"showInput": true, "showRawInput": false, "showEffects": true, "showEvents": true, "showObjectChanges": false, "showBalanceChanges": false}]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_getTransactionBlock",
        "params": ["oKtFZjL99EZ2K3TLPRarpZN8gz9xReMkiNf4Tjja2no", {"showInput": True, "showRawInput": False, "showEffects": True, "showEvents": True, "showObjectChanges": False, "showBalanceChanges": False}]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "digest": "oKtFZjL99EZ2K3TLPRarpZN8gz9xReMkiNf4Tjja2no",
    "transaction": {
      "data": {
        "messageVersion": "v1",
        "transaction": {
          "kind": "ProgrammableTransaction",
          "inputs": [
            {
              "type": "pure",
              "valueType": "address",
              "value": "0x8196d048b7a6d04c8edc89579d86fd3fc90c52f9a14c6b812b94fe613c5bcebb"
            },
            {
              "type": "object",
              "objectType": "immOrOwnedObject",
              "objectId": "0x5eeb1d449e2516166d57d71fdeb154d0dc9ecdb7b30057d0a932684cac352cdc",
              "version": "2",
              "digest": "GK4NxEKSrK88XkPNeuBqtJYPmU9yMTWMD7K9TdU4ybKN"
            }
          ],
          "transactions": [
            {
              "TransferObjects": [
                [
                  {
                    "Input": 1
                  }
                ],
                {
                  "Input": 0
                }
              ]
            }
          ]
        },
        "sender": "0x82179c57d5895babfb655cd62e8e886a53334b5e7be9be658eb759cc35e3fc66",
        "gasData": {
          "payment": [
            {
              "objectId": "0x1a3e898029d024eec1d44c6af5e2facded84d03b5373514f16e3d66e00081051",
              "version": 2,
              "digest": "7nDZ5J4VyvYGUbX2f6mQdhkr3RFrb3vZqui1ogoyApD9"
            }
          ],
          "owner": "0x82179c57d5895babfb655cd62e8e886a53334b5e7be9be658eb759cc35e3fc66",
          "price": "10",
          "budget": "20000000"
        }
      },
      "txSignatures": [
        "ABTTP4JUSxqOQTlysdS30HzkMc3DOwJqlBJstqn2EwW0SKtvoGIoxFEbmTqIS+UYSemveVGJ+S6BijQQVS97cwxtCxWrqsEEHAdxoMDwblU5hyWJ8H3zFvk20E2fO5bzHA=="
      ]
    },
    "rawTransaction": "AQAAAAAAAgAggZbQSLem0EyO3IlXnYb9P8kMUvmhTGuBK5T+YTxbzrsBAF7rHUSeJRYWbVfXH96xVNDcns23swBX0KkyaEysNSzcAgAAAAAAAAAg43+UGkUe+CCaD7+/G1SbK7Jrjq7giJUUbfJ7w88mEMEBAQEBAQABAACCF5xX1Ylbq/tlXNYujohqUzNLXnvpvmWOt1nMNeP8ZgEaPomAKdAk7sHUTGr14vrN7YTQO1NzUU8W49ZuAAgQUQIAAAAAAAAAIGS7c6HtWLLBiwy/N3eS4gbmuA1NXupk4ucFY7FYkCbEghecV9WJW6v7ZVzWLo6IalMzS1576b5ljrdZzDXj/GYKAAAAAAAAAAAtMQEAAAAAAAFhABTTP4JUSxqOQTlysdS30HzkMc3DOwJqlBJstqn2EwW0SKtvoGIoxFEbmTqIS+UYSemveVGJ+S6BijQQVS97cwxtCxWrqsEEHAdxoMDwblU5hyWJ8H3zFvk20E2fO5bzHA==",
    "effects": {
      "messageVersion": "v1",
      "status": {
        "status": "success"
      },
      "executedEpoch": "0",
      "gasUsed": {
        "computationCost": "100",
        "storageCost": "100",
        "storageRebate": "10",
        "nonRefundableStorageFee": "0"
      },
      "transactionDigest": "6AyFnAuKAKCqm1cD94EyGzBqJCDDJ716ojjmsKF2rqoi",
      "mutated": [
        {
          "owner": {
            "AddressOwner": "0x82179c57d5895babfb655cd62e8e886a53334b5e7be9be658eb759cc35e3fc66"
          },
          "reference": {
            "objectId": "0x1a3e898029d024eec1d44c6af5e2facded84d03b5373514f16e3d66e00081051",
            "version": 2,
            "digest": "7nDZ5J4VyvYGUbX2f6mQdhkr3RFrb3vZqui1ogoyApD9"
          }
        },
        {
          "owner": {
            "AddressOwner": "0x8196d048b7a6d04c8edc89579d86fd3fc90c52f9a14c6b812b94fe613c5bcebb"
          },
          "reference": {
            "objectId": "0x5eeb1d449e2516166d57d71fdeb154d0dc9ecdb7b30057d0a932684cac352cdc",
            "version": 2,
            "digest": "GK4NxEKSrK88XkPNeuBqtJYPmU9yMTWMD7K9TdU4ybKN"
          }
        }
      ],
      "gasObject": {
        "owner": {
          "ObjectOwner": "0x82179c57d5895babfb655cd62e8e886a53334b5e7be9be658eb759cc35e3fc66"
        },
        "reference": {
          "objectId": "0x1a3e898029d024eec1d44c6af5e2facded84d03b5373514f16e3d66e00081051",
          "version": 2,
          "digest": "7nDZ5J4VyvYGUbX2f6mQdhkr3RFrb3vZqui1ogoyApD9"
        }
      },
      "eventsDigest": "9BQobwxQvJ1JxSXNn8v8htZPTu8FEzJJGgcD4kgLUuMd"
    },
    "objectChanges": [
      {
        "type": "transferred",
        "sender": "0x82179c57d5895babfb655cd62e8e886a53334b5e7be9be658eb759cc35e3fc66",
        "recipient": {
          "AddressOwner": "0x8196d048b7a6d04c8edc89579d86fd3fc90c52f9a14c6b812b94fe613c5bcebb"
        },
        "objectType": "0x2::example::Object",
        "objectId": "0x5eeb1d449e2516166d57d71fdeb154d0dc9ecdb7b30057d0a932684cac352cdc",
        "version": "2",
        "digest": "64UQ3a7m1mjWuzgyGoH8RnMyPGDN4XYTC9dS4qiSfdK4"
      }
    ]
  }
}
```

***

#### `sui_multiGetObjects`

> Returns the current state of multiple objects by their IDs in a single request.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<object_ids>`: the IDs of the queried objects.
  * `<options>`: options for specifying the content to be returned.

**Returns**

* `Vec<SuiObjectResponse>`: Sui object response.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_multiGetObjects",
  "params": [
    [
      "0xb61439368cd75ebe63d633af32ffb4a022d18b95b4eaa9fd3b22b43f6b2c8e92",
      "0x6ea7bed8f6c3d80f2a595c2305e12dd6d07c3fbbd3ebef7dbcc7b02346cdf056",
      "0x75da5e934f672d3da3e003d989075efaecc79b5cd5df0df2a168259b7115a41c",
      "0x38554a9ff7b4f6b59f9426c321c8013afed093481dd4ef1267c67a8e9a0d074f",
      "0xe74d1b250d5df2cb5170782a8a438fbf681eded4d1e0a2cd7dfb27e784493fb1"
    ],
    {
      "showType": true,
      "showOwner": true,
      "showPreviousTransaction": true,
      "showDisplay": false,
      "showContent": true,
      "showBcs": false,
      "showStorageRebate": true
    }
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_multiGetObjects",
    params: [["0xb61439368cd75ebe63d633af32ffb4a022d18b95b4eaa9fd3b22b43f6b2c8e92", "0x6ea7bed8f6c3d80f2a595c2305e12dd6d07c3fbbd3ebef7dbcc7b02346cdf056", "0x75da5e934f672d3da3e003d989075efaecc79b5cd5df0df2a168259b7115a41c", "0x38554a9ff7b4f6b59f9426c321c8013afed093481dd4ef1267c67a8e9a0d074f", "0xe74d1b250d5df2cb5170782a8a438fbf681eded4d1e0a2cd7dfb27e784493fb1"], {"showType": true, "showOwner": true, "showPreviousTransaction": true, "showDisplay": false, "showContent": true, "showBcs": false, "showStorageRebate": true}]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_multiGetObjects",
        "params": [["0xb61439368cd75ebe63d633af32ffb4a022d18b95b4eaa9fd3b22b43f6b2c8e92", "0x6ea7bed8f6c3d80f2a595c2305e12dd6d07c3fbbd3ebef7dbcc7b02346cdf056", "0x75da5e934f672d3da3e003d989075efaecc79b5cd5df0df2a168259b7115a41c", "0x38554a9ff7b4f6b59f9426c321c8013afed093481dd4ef1267c67a8e9a0d074f", "0xe74d1b250d5df2cb5170782a8a438fbf681eded4d1e0a2cd7dfb27e784493fb1"], {"showType": True, "showOwner": True, "showPreviousTransaction": True, "showDisplay": False, "showContent": True, "showBcs": False, "showStorageRebate": True}]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": [
    {
      "data": {
        "objectId": "0xb61439368cd75ebe63d633af32ffb4a022d18b95b4eaa9fd3b22b43f6b2c8e92",
        "version": "1",
        "digest": "6D2MGzZN1DnALrbg6y9nQWwuipCa6fJERLXAwNGuGtKQ",
        "type": "0x2::coin::Coin<0x2::sui::SUI>",
        "owner": {
          "AddressOwner": "0x090bd6d16522a6fd4fa83ec70a5f197ad656da104dde1de9880be827a1a753e5"
        },
        "previousTransaction": "CQN1aMpZRYrVHByFfPFceCXzv5kT7bNM4Uzoe2jbZvM",
        "storageRebate": "100",
        "content": {
          "dataType": "moveObject",
          "type": "0x2::coin::Coin<0x2::sui::SUI>",
          "hasPublicTransfer": true,
          "fields": {
            "balance": "100000000",
            "id": {
              "id": "0xb61439368cd75ebe63d633af32ffb4a022d18b95b4eaa9fd3b22b43f6b2c8e92"
            }
          }
        }
      }
    }
  ]
}
```

***

#### `sui_multiGetTransactionBlocks`

> Returns transaction block data for multiple digests in a single request.

The method will throw an error if the input contains any duplicate or the input size exceeds `QUERY_MAX_RESULT_LIMIT`.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<digests>`: a list of transaction digests.
  * `<options>`: config options to control which fields to fetch.

**Returns**

* `Vec<SuiTransactionBlockResponse>`: the transaction data for specified digest.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_multiGetTransactionBlocks",
  "params": [
    [
      "Gd2vRA1pRwWu8j7KQe6fzHS4mMChq1JHJpi9KGnVJMtV",
      "73FjSYzymaz1UWPu4bMW191cyxSxziKXJm2MyTQMjeur",
      "7TxdfBqwTPYgG4hztwiQdeQcdWgeqpZKF7EJpyjDojFd"
    ],
    {
      "showInput": true,
      "showRawInput": false,
      "showEffects": true,
      "showEvents": true,
      "showObjectChanges": false,
      "showBalanceChanges": false
    }
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_multiGetTransactionBlocks",
    params: [["Gd2vRA1pRwWu8j7KQe6fzHS4mMChq1JHJpi9KGnVJMtV", "73FjSYzymaz1UWPu4bMW191cyxSxziKXJm2MyTQMjeur", "7TxdfBqwTPYgG4hztwiQdeQcdWgeqpZKF7EJpyjDojFd"], {"showInput": true, "showRawInput": false, "showEffects": true, "showEvents": true, "showObjectChanges": false, "showBalanceChanges": false}]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_multiGetTransactionBlocks",
        "params": [["Gd2vRA1pRwWu8j7KQe6fzHS4mMChq1JHJpi9KGnVJMtV", "73FjSYzymaz1UWPu4bMW191cyxSxziKXJm2MyTQMjeur", "7TxdfBqwTPYgG4hztwiQdeQcdWgeqpZKF7EJpyjDojFd"], {"showInput": True, "showRawInput": False, "showEffects": True, "showEvents": True, "showObjectChanges": False, "showBalanceChanges": False}]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

***

#### `sui_tryGetPastObject`

> Returns the state of an object at a specific historical version, if still available in the node's object store.

There is no software-level guarantee/SLA that objects with past versions can be retrieved by this API, even if the object and version exists/existed. The result may vary across nodes depending on their pruning policies.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<object_id>`: a list of transaction digests.
  * `<version>` (sequence number): the version of the queried object. If None, default to the latest known version.
  * `<options>`: options for specifying the content to be returned.

**Returns**

* `SuiPastObjectResponse`: past object data.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sui_tryGetPastObject",
  "params": [
    "0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760",
    4,
    {
      "showType": true,
      "showOwner": true,
      "showPreviousTransaction": true,
      "showDisplay": false,
      "showContent": true,
      "showBcs": false,
      "showStorageRebate": true
    }
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "sui_tryGetPastObject",
    params: ["0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760", 4, {"showType": true, "showOwner": true, "showPreviousTransaction": true, "showDisplay": false, "showContent": true, "showBcs": false, "showStorageRebate": true}]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "sui_tryGetPastObject",
        "params": ["0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760", 4, {"showType": True, "showOwner": True, "showPreviousTransaction": True, "showDisplay": False, "showContent": True, "showBcs": False, "showStorageRebate": True}]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "status": "VersionFound",
    "details": {
      "objectId": "0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760",
      "version": "4",
      "digest": "5VPAwDXy3BL72ehFc7gSJoz27ahMd6spUg5YwYc4ibcv",
      "type": "0x2::coin::Coin<0x2::sui::SUI>",
      "owner": {
        "AddressOwner": "0x3568c40e814d9d5396d23087a0fd641e91e0e00df6c012cded9ef9ba5e5bf042"
      },
      "previousTransaction": "5jQByoouHBwaico5pQB73GdbzerC2StjTiHh5garBjiV",
      "storageRebate": "100",
      "content": {
        "dataType": "moveObject",
        "type": "0x2::coin::Coin<0x2::sui::SUI>",
        "hasPublicTransfer": true,
        "fields": {
          "balance": "10000",
          "id": {
            "id": "0x11af4b844ff94b3fbef6e36b518da3ad4c5856fa686464524a876b463d129760"
          }
        }
      }
    }
  }
}
```

***

#### `sui_tryMultiGetPastObjects`

> Returns the historical states of multiple objects at their specified versions in a single request.

There is no software-level guarantee/SLA that objects with past versions can be retrieved by this API, even if the object and version exists/existed. The result may vary across nodes depending on their pruning policies.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<past_objects>`: a vector of object and versions to be queried.
  * `<options>`: options for specifying the content to be returned.

**Returns**

* `SuiPastObjectResponse`: past object data.

***

#### `suix_getAllBalances`

> Returns the total coin balance for every coin type owned by the given address.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<owner>`: the owner's Sui address.

**Returns**

* `Vec<Balance>`: all balances for the address in the request.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getAllBalances",
  "params": [
    "0x94f1a597b4e8f709a396f7f6b1482bdcd65a673d111e49286c527fab7c2d0961"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getAllBalances",
    params: ["0x94f1a597b4e8f709a396f7f6b1482bdcd65a673d111e49286c527fab7c2d0961"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getAllBalances",
        "params": ["0x94f1a597b4e8f709a396f7f6b1482bdcd65a673d111e49286c527fab7c2d0961"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": [
    {
      "coinType": "0x2::sui::SUI",
      "coinObjectCount": 15,
      "totalBalance": "3000000000",
      "lockedBalance": {}
    }
  ]
}
```

***

#### `suix_getAllCoins`

> Returns a paginated list of all Coin objects owned by the given address.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<owner>`: the owner's Sui address.
  * `cursor` (optional): a page cursor.
  * `limit` (uint): max number of items per page.

**Returns**

* `CoinPage`: all coins for the address in the request body.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getAllCoins",
  "params": [
    "0x41f5975e3c6bd5c95f041a8493ad7e9934be26e69152d2c2e86d8a9bdbd242b3",
    "0x2564cd31a71cf9833609b111436d8f0f47b7f8b9927ec3f8975a1dcbf9b25564",
    3
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getAllCoins",
    params: ["0x41f5975e3c6bd5c95f041a8493ad7e9934be26e69152d2c2e86d8a9bdbd242b3", "0x2564cd31a71cf9833609b111436d8f0f47b7f8b9927ec3f8975a1dcbf9b25564", 3]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getAllCoins",
        "params": ["0x41f5975e3c6bd5c95f041a8493ad7e9934be26e69152d2c2e86d8a9bdbd242b3", "0x2564cd31a71cf9833609b111436d8f0f47b7f8b9927ec3f8975a1dcbf9b25564", 3]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "coinType": "0x2::sui::SUI",
        "coinObjectId": "0x91825debff541cf4e08b5c5f7296ff9840e6f0b185af93984cde8cf3870302c0",
        "version": "103626",
        "digest": "7dp5WtTmtGp83EXYYFMzjBJRFeSgR67AzqMETLrfgeFx",
        "balance": "200000000",
        "previousTransaction": "9WfFUVhjbbh4tWkyUse1QxzbKX952cyXScH7xJNPB2vQ"
      },
      {
        "coinType": "0x2::sui::SUI",
        "coinObjectId": "0x48a53f22e2e901ea2a5bf44fdd5bb94a1d83b6efc4dd779f0890ca3b1f6ba997",
        "version": "103626",
        "digest": "9xLdMXezY8d1yRA2TtN6pYjapyy2EVKHWNriGPFGCFvd",
        "balance": "200000000",
        "previousTransaction": "Byq9SyV7x6fvzaf88YRA9JM8vLbVLJAqUX8pESDmKcgw"
      },
      {
        "coinType": "0x2::sui::SUI",
        "coinObjectId": "0x6867fcc63161269c5c0c73b02229486bbaff319209dfb8299ced3b8609037997",
        "version": "103626",
        "digest": "5xexWFq6QpGHBQyC9P2cbAJXq9qm2EjzfuRM9NwS1uyG",
        "balance": "200000000",
        "previousTransaction": "CEjwHmo98nAiYhSMfKoSDvUMtfKJ6ge6Uj4wKotK4MPZ"
      }
    ],
    "nextCursor": "0x861c5e055605b2bb1199faf653a8771e448930bc95a0369fad43a9870a2e5878",
    "hasNextPage": true
  }
}
```

***

#### `suix_getBalance`

> Returns the total balance of a specific coin type owned by the given address.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<owner>`: the owner's Sui address.
  * `<coin_type>` (string, optional): type names for the coin (example `0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC`), defaults to `0x2::sui::SUI` if not specified.

**Returns**

* `coinObjectCount`
* `coinType`
* `lockedBalance`
* `totalBalance`

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getBalance",
  "params": [
    "0x51ceab2edc89f74730e683ebee65578cb3bc9237ba6fca019438a9737cf156ae",
    "0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getBalance",
    params: ["0x51ceab2edc89f74730e683ebee65578cb3bc9237ba6fca019438a9737cf156ae", "0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getBalance",
        "params": ["0x51ceab2edc89f74730e683ebee65578cb3bc9237ba6fca019438a9737cf156ae", "0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "coinType": "0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC",
    "coinObjectCount": 15,
    "totalBalance": "15",
    "lockedBalance": {}
  }
}
```

***

#### `suix_getCoinMetadata`

> Returns the name, symbol, and decimal precision metadata for the given coin type.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<coin_type>` (string): type names for the coin (example `0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC`).

**Returns**

* `decimals`: the number of decimal places the coin uses.
* `description`: token description.
* `iconUrl`: URL for the token logo.
* `id`: an object ID for the CoinMetadata object.
* `name`: a token name.
* `symbol`: a token symbol.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "result": {
    "id": {
      "id": "0x6d907beaa3a49db57bdfdb3557e6d405cbf01c293a53e01457d65e92b5d8dd68"
    },
    "decimals": 9,
    "name": "Usdc",
    "symbol": "USDC",
    "description": "Stable coin.",
    "icon_url": null
  }
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    result: {"id": {"id": "0x6d907beaa3a49db57bdfdb3557e6d405cbf01c293a53e01457d65e92b5d8dd68"}, "decimals": 9, "name": "Usdc", "symbol": "USDC", "description": "Stable coin.", "icon_url": null}
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "result": {"id": {"id": "0x6d907beaa3a49db57bdfdb3557e6d405cbf01c293a53e01457d65e92b5d8dd68"}, "decimals": 9, "name": "Usdc", "symbol": "USDC", "description": "Stable coin.", "icon_url": None}
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "id": {
      "id": "0x6d907beaa3a49db57bdfdb3557e6d405cbf01c293a53e01457d65e92b5d8dd68"
    },
    "decimals": 9,
    "name": "Usdc",
    "symbol": "USDC",
    "description": "Stable coin.",
    "icon_url": null
  }
}
```

***

#### `suix_getCoins`

> Returns a paginated list of Coin objects of the specified type owned by the given address.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<owner>`: the owner's Sui address.
  * `<coin_type>` (string): type names for the coin (example `0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC`), defaults to `0x2::sui::SUI` if not specified.
  * `<cursor>` (optional): a page cursor.
  * `<limit>` (uint): max number of items per page.

**Returns**

* `CoinPage`: all SUI coins owned by the address provided.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getCoins",
  "params": [
    "0xd62ca040aba24f862a763851c54908cd2a0ee7d709c11b93d4a2083747b76856",
    "0x2::sui::SUI",
    "0xe5c651321915b06c81838c2e370109b554a448a78d3a56220f798398dde66eab",
    3
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getCoins",
    params: ["0xd62ca040aba24f862a763851c54908cd2a0ee7d709c11b93d4a2083747b76856", "0x2::sui::SUI", "0xe5c651321915b06c81838c2e370109b554a448a78d3a56220f798398dde66eab", 3]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getCoins",
        "params": ["0xd62ca040aba24f862a763851c54908cd2a0ee7d709c11b93d4a2083747b76856", "0x2::sui::SUI", "0xe5c651321915b06c81838c2e370109b554a448a78d3a56220f798398dde66eab", 3]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "coinType": "0x2::sui::SUI",
        "coinObjectId": "0xa5a8e30db5a798a7354340b6ea78a66f50921841ab5359ec7a3dc01f282420ae",
        "version": "103626",
        "digest": "tw5DzJTfdxTn4f3rekFrhN7dQTUezBgsEhycDobTBLb",
        "balance": "200000000",
        "previousTransaction": "HSein75AFXgdsnbABWLQ5mvjFmPFWrBFi9CMVsNn7gJr"
      },
      {
        "coinType": "0x2::sui::SUI",
        "coinObjectId": "0x47dfa99496428c65b2054ad7db1872b87ff05b1047bb5e3adf5257cceb08ecb4",
        "version": "103626",
        "digest": "AfgFe7ZfjJ5dWV6VAy2LbtvBFhcABkvdvwEjLrRcFqtr",
        "balance": "200000000",
        "previousTransaction": "5WHnm9jUZEtDvSvsj7HBrP5BoxA3UY6R57qqumXJXboV"
      },
      {
        "coinType": "0x2::sui::SUI",
        "coinObjectId": "0xd4f062dbcfc3bf73f5861945592222ff7b090ac21c8a3cf840abdc5b743da778",
        "version": "103626",
        "digest": "9er6jxigfuQEKsn9gtPV2oW1zGQRcFtKNijHVe88GUJD",
        "balance": "200000000",
        "previousTransaction": "H3gwoKE2FSLx3BwvNTTKqCsNHmg6ARzm345icHhXUAEW"
      }
    ],
    "nextCursor": "0xd4f062dbcfc3bf73f5861945592222ff7b090ac21c8a3cf840abdc5b743da778",
    "hasNextPage": true
  }
}
```

***

#### `suix_getCommitteeInfo`

> Returns the committee (validator set) for the specified epoch.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<epoch>` (BigInt\_for\_uint64): the epoch of interest. If None, default to the latest epoch.

**Returns**

* `SuiCommittee`: committee information.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getCommitteeInfo",
  "params": [
    "5000"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getCommitteeInfo",
    params: ["5000"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getCommitteeInfo",
        "params": ["5000"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "epoch": "5000",
    "validators": [
      [
        "jc/20VUECmVvSBmxMRG1LFdGqGunLzlfuv4uw4R9HoFA5iSnUf32tfIFC8cgXPnTAATJCwx0Cv/TJs5nPMKyOi0k1T4q/rKG38Zo/UBgCJ1tKxe3md02+Q0zLlSnozjU",
        "2500"
      ],
      [
        "mfJe9h+AMrkUY2RgmCxcxvE07x3a52ZX8sv+wev8jQlzdAgN9vzw3Li8Sw2OCvXYDrv/K0xZn1T0LWMS38MUJ2B4wcw0fru+xRmL4lhRPzhrkw0CwnSagD4jMJVevRoQ",
        "2500"
      ],
      [
        "rd7vlNiYyI5A297/kcXxBfnPLHR/tvK8N+wD1ske2y4aV4z1RL6LCTHiXyQ9WbDDDZihbOO6HWzx1/UEJpkusK2zE0sFW+gUDS218l+wDYP45CIr8B/WrJOh/0152ljy",
        "2500"
      ],
      [
        "s/1e+1yHJAOkrRPxGZUTYG0jNUqEUkmuoVdWTCP/PBXGyeZSty10DoysuTy8wGhrDsDMDBx2C/tCtDZRn8WoBUt2UzqXqfI5h9CX75ax8lJrsgc/oQp3GZQXcjR+8nT0",
        "2500"
      ]
    ]
  }
}
```

***

#### `suix_getDynamicFieldObject`

> Returns the dynamic field object at the specified name on the given parent object.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<parent_object_id>`: the ID of the queried parent object.
  * `<name>`: the name of the dynamic field.

**Returns**

* `data`: object data.
* `error`: object response error.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getDynamicFieldObject",
  "params": [
    "0xc8359b6b5e3bfeab524e5edaad3a204b4053745b2d45d1f00cd8d24e5b697607",
    {
      "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField",
      "value": "some_value"
    }
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getDynamicFieldObject",
    params: ["0xc8359b6b5e3bfeab524e5edaad3a204b4053745b2d45d1f00cd8d24e5b697607", {"type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField", "value": "some_value"}]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getDynamicFieldObject",
        "params": ["0xc8359b6b5e3bfeab524e5edaad3a204b4053745b2d45d1f00cd8d24e5b697607", {"type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField", "value": "some_value"}]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": {
      "objectId": "0xc8359b6b5e3bfeab524e5edaad3a204b4053745b2d45d1f00cd8d24e5b697607",
      "version": "1",
      "digest": "2VivvkBoFVwEg8oXq3tK9r3d3ybvMACtk9QwpFnkM6v2",
      "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField",
      "owner": {
        "AddressOwner": "0xc055d5c23e2f6c69e6aacf5b4664b570cb20d4feace07fc863a2eef286c3e95e"
      },
      "previousTransaction": "FJjAr8fdpuQvVZgd9VswXxz9jZcFGEAgKgdi8d6zXE3S",
      "storageRebate": "100",
      "content": {
        "dataType": "moveObject",
        "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField",
        "hasPublicTransfer": true,
        "fields": {}
      }
    }
  }
}
```

***

#### `suix_getDynamicFields`

> Returns a paginated list of dynamic fields attached to the given object.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<parent_object_id>` (string, hex): the ID of the parent object.
  * `<cursor>` (optional): a page cursor. If provided, the query will start from the next item after the specified cursor. Defaults to start from the first item if not specified.
  * `<limit>` (uint): max items returned per page; defaults to `[QUERY_MAX_RESULT_LIMIT]` if not specified.

**Returns**

* `DynamicFieldPage`: dynamic fields for the object the request provides.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getDynamicFields",
  "params": [
    "0xe15bb8de6dadd21835dfe44f4973139c15f93ddea0f8c3da994d9ead562ce76e",
    "0xa9334aeacc435c70ab9635e47a277d8f8dd9d87765d1aadec2db8cc24c312542",
    3
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getDynamicFields",
    params: ["0xe15bb8de6dadd21835dfe44f4973139c15f93ddea0f8c3da994d9ead562ce76e", "0xa9334aeacc435c70ab9635e47a277d8f8dd9d87765d1aadec2db8cc24c312542", 3]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getDynamicFields",
        "params": ["0xe15bb8de6dadd21835dfe44f4973139c15f93ddea0f8c3da994d9ead562ce76e", "0xa9334aeacc435c70ab9635e47a277d8f8dd9d87765d1aadec2db8cc24c312542", 3]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "name": {
          "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField",
          "value": "some_value"
        },
        "bcsName": "2F1KQ3miNpBx1RzoRr1MVYMraK7RV",
        "type": "DynamicField",
        "objectType": "test",
        "objectId": "0x36fdef6a382da344930c73d1298b0e9644b85ea6f7a348f4a7bd1a9ab069eb7f",
        "version": 1,
        "digest": "7hWCQjKfZf7oNLpSrhFJZEmYnpmSPzVLwJfFuHmMD9ct"
      },
      {
        "name": {
          "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField",
          "value": "some_value"
        },
        "bcsName": "2F1KQ3miNpBx1RzoRr1MVYMraK7RV",
        "type": "DynamicField",
        "objectType": "test",
        "objectId": "0xfe41671856fd3450dc5574abd53c793c9f22d8a72d5550df8d2d64a9155d126c",
        "version": 1,
        "digest": "CxuC9uMcWLk8oMg7QGaJSqUE4hwP6cMUQ94ipiN53jr3"
      },
      {
        "name": {
          "type": "0x0000000000000000000000000000000000000000000000000000000000000009::test::TestField",
          "value": "some_value"
        },
        "bcsName": "2F1KQ3miNpBx1RzoRr1MVYMraK7RV",
        "type": "DynamicField",
        "objectType": "test",
        "objectId": "0x1edb2df5ea5d55c96a611371d22799d268270cd4bb4d4f520fe9bbf0cf1cebe3",
        "version": 1,
        "digest": "HJxTwLy4oE1Aoy3PocGfL9oHystQiyssHfmyE8YaPrw4"
      }
    ],
    "nextCursor": "0x8a25d8876ea3c60e345ac3861444136b4a1b0b37a91692359a98496738a58c17",
    "hasNextPage": true
  }
}
```

***

#### `suix_getLatestSuiSystemState`

> Returns the latest on-chain Sui system state object including epoch info, stake subsidies, and validator metadata.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required): none.

**Returns**

* `activeValidators`: the list of active validators in the current epoch.
* `atRiskValidators`: the map storing the number of epochs for which each validator has been below the low stake threshold.
* `epoch`: the current epoch ID, starting from 0.
* `epochDurationMs`: the duration of an epoch, in milliseconds.
* `epochStartTimestampMs`: the Unix timestamp of the current epoch start.
* `inactivePoolsId`: the ID of the object that maps from a staking pool ID to the inactive validator that has that pool as its staking pool.
* `inactivePoolsSize`: the of inactive staking pools.
* `maxValidatorCount`: the max number of active validators at any moment. We do not allow the number of validators in any epoch to go above this.
* `minValidatorJoiningStake`: the lower bound on the amount of stake required to become a validator.
* `pendingActiveValidatorsId`: the ID of the object that contains the list of new validators that will join at the end of the epoch.
* `pendingActiveValidatorsSize`: the number of new validators that will join at the end of the epoch.
* `pendingRemovals`: the removal of requests from the validators. Each element is an index pointing to `active_validators`.
* `protocolVersion`: the current protocol version, starting from 1.
* `referenceGasPrice`: the reference gas price for the current epoch.
* `safeMode`: whether the system is running in a downgraded safe mode due to a non-recoverable bug. This is set whenever we failed to execute `advance_epoch`, and ended up executing advance\_epoch\_safe\_mode. It can be reset once we are able to successfully execute `advance_epoch`.
* `safeModeComputationRewards`: the amount of computation rewards accumulated (and not yet distributed) during safe mode.
* `safeModeNonRefundableStorageFee`: the amount of non-refundable storage fee accumulated during safe mode.
* `safeModeStorageRebates`: the amount of storage rebates accumulated (and not yet burned) during safe mode.
* `safeModeStorageRewards`: the amount of storage rewards accumulated (and not yet distributed) during safe mode.
* `stakeSubsidyBalance`: the balance of SUI set aside for stake subsidies that will be drawn down over time.
* `stakeSubsidyCurrentDistributionAmount`: the amount of stake subsidy to be drawn down per epoch. This amount decays and decreases over time.
* `stakeSubsidyDecreaseRate`: the rate at which the distribution amount decays at the end of each period. Expressed in basis points.
* `stakeSubsidyDistributionCounter`: this counter may be different from the current epoch number if in some epochs it is decided to skip the subsidy.
* `stakeSubsidyPeriodLength`: the number of distributions to occur before the distribution amount decays.
* `stakeSubsidyStartEpoch`: the starting epoch in which stake subsidies start being paid out.
* `stakingPoolMappingsId`: the ID of the object that maps from staking pool's ID to the sui address of a validator.
* `stakingPoolMappingsSize`: the number of staking pool mappings.
* `storageFundNonRefundableBalance`: the non-refundable portion of the storage fund coming from storage reinvestment, non-refundable storage rebates and any leftover staking rewards.
* `storageFundTotalObjectStorageRebates`: the storage rebates of all the objects on-chain stored in the storage fund.
* `systemStateVersion`: the current version of the system state data structure type.
* `totalStake`: the total amount of stake from all active validators at the beginning of the epoch.
* `validatorCandidatesId`: the ID of the object that stores proactive validators, mapping their addresses to their `Validator` structs.
* `validatorCandidatesSize`: the number of proactive validators.
* `validatorLowStakeGracePeriod`: the validator can have stake below `validator_low_stake_threshold` for this many epochs before being kicked out.
* `validatorLowStakeThreshold`: validators with stake amount below `validator_low_stake_threshold` are considered to have low stake and will be escorted out of the validator set after being below this threshold for more than `validator_low_stake_grace_period` number of epochs.
* `validatorReportRecords`: a map storing the records of validator reporting each other.
* `validatorVeryLowStakeThreshold`: validators with stake below `validator_very_low_stake_threshold` will be removed immediately at epoch change, no grace period.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getLatestSuiSystemState",
  "params": []
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getLatestSuiSystemState",
    params: []
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getLatestSuiSystemState",
        "params": []
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": "some_system_state"
}
```

***

#### `suix_getOwnedObjects`

> Returns a paginated list of objects owned by the given address, with optional type and filter criteria.

Note that if the address owns more than `QUERY_MAX_RESULT_LIMIT` objects, the pagination is not accurate, because previous page may have been updated when the next page is fetched. Please use `suix_queryObjects` if this is a concern.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<address>` (BigInt\_for\_uint64): the owner's Sui address.
  * `<query>` (object): the objects query criteria.
  * `<cursor>` (objectID): the page cursor. If provided, the query will start from the next item after the specified cursor. Defaults to start from the first item if not specified.
  * `<limit>` (uint): the max number of items returned per page; defaults to `[QUERY_MAX_RESULT_LIMIT]` if not specified.

**Returns**

* `ObjectsPage`: all the objects the address provided in the request owns and that match the filter.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getOwnedObjects",
  "params": [
    "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2",
    {
      "filter": {
        "MatchAll": [
          {
            "StructType": "0x2::coin::Coin<0x2::sui::SUI>"
          },
          {
            "AddressOwner": "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2"
          },
          {
            "Version": "13488"
          }
        ]
      },
      "options": {
        "showType": true,
        "showOwner": true,
        "showPreviousTransaction": true,
        "showDisplay": false,
        "showContent": false,
        "showBcs": false,
        "showStorageRebate": false
      }
    },
    "0x76a1b4c23f2d9a9b6f0d8b2c17beace292b72aea16d6fb49b7d1ae51f33b01ed",
    3
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getOwnedObjects",
    params: ["0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2", {"filter": {"MatchAll": [{"StructType": "0x2::coin::Coin<0x2::sui::SUI>"}, {"AddressOwner": "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2"}, {"Version": "13488"}]}, "options": {"showType": true, "showOwner": true, "showPreviousTransaction": true, "showDisplay": false, "showContent": false, "showBcs": false, "showStorageRebate": false}}, "0x76a1b4c23f2d9a9b6f0d8b2c17beace292b72aea16d6fb49b7d1ae51f33b01ed", 3]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getOwnedObjects",
        "params": ["0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2", {"filter": {"MatchAll": [{"StructType": "0x2::coin::Coin<0x2::sui::SUI>"}, {"AddressOwner": "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2"}, {"Version": "13488"}]}, "options": {"showType": True, "showOwner": True, "showPreviousTransaction": True, "showDisplay": False, "showContent": False, "showBcs": False, "showStorageRebate": False}}, "0x76a1b4c23f2d9a9b6f0d8b2c17beace292b72aea16d6fb49b7d1ae51f33b01ed", 3]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "data": {
          "objectId": "0x3d6255ff8223c12b0fd985c49d5777a0d65ad3d707164b2a378eee639ebc2690",
          "version": "13488",
          "digest": "A6v9pFTLH3PkDSvEGgVjW1JhL7CtcUQKwGmgXK8SQNsc",
          "type": "0x2::coin::Coin<0x2::sui::SUI>",
          "owner": {
            "AddressOwner": "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2"
          },
          "previousTransaction": "AZiaEnge9YnawyLosmuxd8grpoiYasfpvBEjSLFUmJ8m",
          "storageRebate": "100"
        }
      },
      {
        "data": {
          "objectId": "0x1a6e30f43933bbf40f5f5b6ce1f44957337dcb28f32e0355326f8c7d932bd54d",
          "version": "13488",
          "digest": "Fn1HG7LyUcLDps6bhYQkPWXpeUXgisznxRJ2qvn7Q1JN",
          "type": "0x2::coin::Coin<0x2::sui::SUI>",
          "owner": {
            "AddressOwner": "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2"
          },
          "previousTransaction": "5EZjpdpApGGb48UZtuRgXuTRDBgkFDYaiNUtUNg7788k",
          "storageRebate": "100"
        }
      },
      {
        "data": {
          "objectId": "0x28628a24386298faa98850887f64da841b87279efd098d59a66a3d9adc87cce8",
          "version": "13488",
          "digest": "39aXGAwHaY3CiqWwLiBZ7JRaGSvnpvPbHxMSJAwAUY5i",
          "type": "0x2::coin::Coin<0x2::sui::SUI>",
          "owner": {
            "AddressOwner": "0xa69bb635dcee0f33643b4729ae81730d55e5e26860fac6839ce2d7ed7e6f29d2"
          },
          "previousTransaction": "CnBDiCrxWcJCCU1LHoda6XwwRaCSRfva8HZzfmR3p8Ag",
          "storageRebate": "100"
        }
      }
    ],
    "nextCursor": "0x28628a24386298faa98850887f64da841b87279efd098d59a66a3d9adc87cce8",
    "hasNextPage": true
  }
}
```

***

#### `suix_getReferenceGasPrice`

> Returns the reference gas price for the current epoch.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required): none.

**Returns**

* `BigInt<u64>`: reference gas price information for the network.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getReferenceGasPrice",
  "params": []
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getReferenceGasPrice",
    params: []
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getReferenceGasPrice",
        "params": []
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": 1000
}
```

***

#### `suix_getStakes`

> Returns all delegated stakes for the given staker address.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<owner>`: Sui address.

**Returns**

* `Vec<DelegatedStake>`

***

#### `suix_getStakesByIds`

> Returns delegated stake details for a list of stake object IDs.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<staked_sui_ids>`: object ID.

**Returns**

* `Vec<DelegatedStake>`

***

#### `suix_getTotalSupply`

> Returns the total circulating supply of the specified coin type.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<coin_type>` (string): a type name for the coin (example: `0x168da5bf1f48dafc111b0a488fa454aca95e0b5e::usdc::USDC`).

**Returns**

* `value`: total supply for the type of coin provided.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getTotalSupply",
  "params": [
    "0x0a52124e2d53af3bef7959609efa51761ad155441a1b73bdaeecce7c56488b13::acoin::ACOIN"
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getTotalSupply",
    params: ["0x0a52124e2d53af3bef7959609efa51761ad155441a1b73bdaeecce7c56488b13::acoin::ACOIN"]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getTotalSupply",
        "params": ["0x0a52124e2d53af3bef7959609efa51761ad155441a1b73bdaeecce7c56488b13::acoin::ACOIN"]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "value": "12023692"
  }
}
```

***

#### `suix_getValidatorsApy`

> Returns the annualized APY for each active validator in the current epoch.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required): none

**Returns**

* `apys`: validator APYs.
* `epoch`: the epoch.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_getValidatorsApy",
  "params": []
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_getValidatorsApy",
    params: []
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_getValidatorsApy",
        "params": []
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "apys": [
      {
        "address": "0xb7d1cb695b9491893f88a5ae1b9d4f235b3c7e00acf5386662fa062483ba507b",
        "apy": 0.06
      },
      {
        "address": "0x1e9e3039750f0a270f2e12441ad7f611a5f7fd0b2c4326c56b1fec231d73038d",
        "apy": 0.02
      },
      {
        "address": "0xba0f0885b97982f5fcac3ec6f5c8cae16743671832358f25bfacde706e528df4",
        "apy": 0.05
      }
    ],
    "epoch": "420"
  }
}
```

***

#### `suix_queryEvents`

> Returns a paginated list of Move events matching the specified filter criteria.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<query>` (EventFilter): the event query criteria.
  * `<cursor>` (EventID, optional): the page cursor.
  * `<limit>` (uint): the max number of items per page, defaults to `QUERY_MAX_RESULT_LIMIT` if not specified.
  * `<descending_order>` (boolean): the query results order; defaults to false (ascending order), oldest record first.

**Returns**

* `EventPage`: the events for a specified query criteria.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "suix_queryEvents",
  "params": [
    {
      "MoveModule": {
        "package": "0x30651d6e8f93e0fb79b4bc65a512beb5b9f3378423de90ed03b694cecf443c72",
        "module": "test"
      }
    },
    {
      "txDigest": "Nb5kW8n655ApSBA19d2K8UVFGtMnJHa1mJQRH1h5N9L",
      "eventSeq": "1"
    },
    100,
    false
  ]
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "suix_queryEvents",
    params: [{"MoveModule": {"package": "0x30651d6e8f93e0fb79b4bc65a512beb5b9f3378423de90ed03b694cecf443c72", "module": "test"}}, {"txDigest": "Nb5kW8n655ApSBA19d2K8UVFGtMnJHa1mJQRH1h5N9L", "eventSeq": "1"}, 100, false]
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "id": 1,
        "method": "suix_queryEvents",
        "params": [{"MoveModule": {"package": "0x30651d6e8f93e0fb79b4bc65a512beb5b9f3378423de90ed03b694cecf443c72", "module": "test"}}, {"txDigest": "Nb5kW8n655ApSBA19d2K8UVFGtMnJHa1mJQRH1h5N9L", "eventSeq": "1"}, 100, False]
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

**Response example**

```json
{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "id": {
          "txDigest": "8WecQq8Qd79MmrHRXYudNG7e6vjWC9HtGAT4XZFyyWRM",
          "eventSeq": "1"
        },
        "packageId": "0x28f9c59f430eaba84b8bee9b43a30f9cc83fa395759ca37c6e1ffc179184e98a",
        "transactionModule": "test",
        "sender": "0xc5db76052ab656e5f81853d0cf701cdbc8ebf27ab513fc6ef8c344406c78da3d",
        "type": "0x3::test::Test<0x3::test::Test>",
        "parsedJson": "some_value",
        "bcs": ""
      },
      {
        "id": {
          "txDigest": "CNLhn3qWzHhfmmLQTdinbFDd2DuXFPN9z77UUqsC4Z4A",
          "eventSeq": "1"
        },
        "packageId": "0x28f9c59f430eaba84b8bee9b43a30f9cc83fa395759ca37c6e1ffc179184e98a",
        "transactionModule": "test",
        "sender": "0x5ad3a5fcc295dc8803c15989a62d33ee859014cfd5e91c13a481370240e39246",
        "type": "0x3::test::Test<0x3::test::Test>",
        "parsedJson": "some_value",
        "bcs": ""
      },
      {
        "id": {
          "txDigest": "FEhceVx5a6mkeZH8dPxthQkEEPkWfjWN3w1e6uTB5rFm",
          "eventSeq": "1"
        },
        "packageId": "0x28f9c59f430eaba84b8bee9b43a30f9cc83fa395759ca37c6e1ffc179184e98a",
        "transactionModule": "test",
        "sender": "0x4c329a203fb9f0a8158aaab9b2a90044b26e14cc7fee4100fdcabda6d15c63c4",
        "type": "0x3::test::Test<0x3::test::Test>",
        "parsedJson": "some_value",
        "bcs": ""
      },
      {
        "id": {
          "txDigest": "Nb5kW8n655ApSBA19d2K8UVFGtMnJHa1mJQRH1h5N9L",
          "eventSeq": "1"
        },
        "packageId": "0x28f9c59f430eaba84b8bee9b43a30f9cc83fa395759ca37c6e1ffc179184e98a",
        "transactionModule": "test",
        "sender": "0xb49c45ae23f2b936495cd38b1a4b04010295baa75ac72e548aeecf2ce8b4e885",
        "type": "0x3::test::Test<0x3::test::Test>",
        "parsedJson": "some_value",
        "bcs": ""
      }
    ],
    "nextCursor": {
      "txDigest": "Nb5kW8n655ApSBA19d2K8UVFGtMnJHa1mJQRH1h5N9L",
      "eventSeq": "1"
    },
    "hasNextPage": false
  }
}
```

***

#### `suix_queryTransactionBlocks`

> Returns a paginated list of transaction blocks matching the specified filter and ordering criteria.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<query>` (TransactionBlockResponseQuery): the transaction query criteria.
  * `<cursor>` (TransactionDigest; optional): the page cursor. If provided, the query will start from the next item after the specified cursor. Defaults to start from the first item if not specified.
  * `<limit>` (uint): the max items returned per page, default to `QUERY_MAX_RESULT_LIMIT` if not specified.
  * `<descending_order>` (boolean): the query results order; defaults to false (ascending order), oldest record first.

**Returns**

* `TransactionBlocksPage`: the transaction digest for specified query criteria.

**Request example**

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X POST https://rpc.crypto-chief.com/sui/{YOUR_API_KEY} \
-H 'Content-Type: application/json' \
-d '{
  "jsonrpc": "2.0",
  "result": {
    "data": [
      {
        "digest": "GUPcK4cmRmgsTFr52ab9f6fnzNVg3Lz6hF2aXFcsRzaD"
      },
      {
        "digest": "B2iV1SVbBjgTKfbJKPQrvTT6F3kNdekFuBwY9tQcAxV2"
      },
      {
        "digest": "8QrPa4x9iNG5r2zQfmeH8pJoVjjtq9AGzp8rp2fxi8Sk"
      },
      {
        "digest": "3nek86HEjXZ7K3EtrAcBG4wMrCS21gqr8BqwwC6M6P7F"
      }
    ],
    "nextCursor": "3nek86HEjXZ7K3EtrAcBG4wMrCS21gqr8BqwwC6M6P7F",
    "hasNextPage": false
  }
}'
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    jsonrpc: "2.0",
    result: {"data": [{"digest": "GUPcK4cmRmgsTFr52ab9f6fnzNVg3Lz6hF2aXFcsRzaD"}, {"digest": "B2iV1SVbBjgTKfbJKPQrvTT6F3kNdekFuBwY9tQcAxV2"}, {"digest": "8QrPa4x9iNG5r2zQfmeH8pJoVjjtq9AGzp8rp2fxi8Sk"}, {"digest": "3nek86HEjXZ7K3EtrAcBG4wMrCS21gqr8BqwwC6M6P7F"}], "nextCursor": "3nek86HEjXZ7K3EtrAcBG4wMrCS21gqr8BqwwC6M6P7F", "hasNextPage": false}
  })
});
const data = await response.json();
console.log(data);
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

response = requests.post(
    "https://rpc.crypto-chief.com/sui/{YOUR_API_KEY}",
    json={
        "jsonrpc": "2.0",
        "result": {"data": [{"digest": "GUPcK4cmRmgsTFr52ab9f6fnzNVg3Lz6hF2aXFcsRzaD"}, {"digest": "B2iV1SVbBjgTKfbJKPQrvTT6F3kNdekFuBwY9tQcAxV2"}, {"digest": "8QrPa4x9iNG5r2zQfmeH8pJoVjjtq9AGzp8rp2fxi8Sk"}, {"digest": "3nek86HEjXZ7K3EtrAcBG4wMrCS21gqr8BqwwC6M6P7F"}], "nextCursor": "3nek86HEjXZ7K3EtrAcBG4wMrCS21gqr8BqwwC6M6P7F", "hasNextPage": False}
    }
)
print(response.json())
```

{% endtab %}
{% endtabs %}

***

#### `suix_resolveNameServiceAddress`

> Resolves a Sui Name Service (SuiNS) name to its registered address.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<name>` (string): the name to resolve.

**Returns**

* `SuiAddress`

***

#### `suix_resolveNameServiceNames`

> Returns all Sui Name Service names registered to the given address.

If multiple names are resolved, the first one is the primary name.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<address>` (SuiAddress): the address to resolve.
  * `<cursor>` (ObjectID): starting position.
  * `<limit>` (uint): max number per page.

**Returns**

* `Page<String,ObjectID>`

***

#### `unsafe_batchTransaction`

> Constructs an unsigned batch transaction combining multiple Move calls and transfers.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<single_transaction_params>` (RPCTransactionRequestParams): the list of transaction request parameters.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.
  * `<txn_builder_mode>` (SuiTransactionBlockBuilderMode): whether this is a regular transaction or a Dev Inspect Transaction.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_mergeCoins`

> Constructs an unsigned transaction to merge multiple Coin objects into a single coin.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<primary_coin>` (ObjectID): the coin object to merge into, this coin will remain after the transaction.
  * `<coin_to_merge>` (ObjectID): the coin object to be merged, this coin will be destroyed, the balance will be added to `primary_coin`.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: the objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_moveCall`

> Constructs an unsigned transaction to call the specified Move function in a given package and module.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address
  * `<package_object_id>` (ObjectID): the Move package ID (example: `0x2`).
  * `<module>` (string): the Move module name (example: `pay`).
  * `<function>` (string): the Move function name (example: `split`).
  * `<type_arguments>` (TypeTag): the type arguments of the Move function.
  * `<arguments>` (SuiJsonValue): the arguments to be passed into the Move function, in [SuiJson](https://docs.sui.io/build/sui-json) format.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `gas_budget` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.
  * `<execution_mode>` (SuiTransactionBlockBuilderMode): whether this is a Normal transaction or a Dev Inspect Transaction. Defaults to be `SuiTransactionBlockBuilderMode::Commit` when it's None.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_pay`

> Constructs an unsigned transaction to distribute Coin amounts to a list of recipients.

`T` can be any coin type, following a list of amounts, The object specified in the `gas` field will be used to pay the gas fee for the transaction. The gas object can not appear in `input_coins`. If the gas object is not specified, the RPC server will auto-select one.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<input_coins>` (ObjectID): the Sui coins to be used in this transaction.
  * `<recipients>` (SuiAddress): the recipients' addresses, the length of this vector must be the same as amounts.
  * `amounts` (BigInt\_for\_uint64): the amounts to be transferred to recipients, following the same order.
  * `gas` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `gas_budget` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_payAllSui`

> Constructs an unsigned transaction to send all SUI owned by the sender to a single recipient.

This is for SUI coin only and does not require a separate gas coin object. Specifically, what pay\_all\_sui does are:

1. accumulate all SUI from input coins and deposit all SUI to the first input coin
2. transfer the updated first coin to the recipient and also use this first coin as gas coin object.
3. the balance of the first input coin after tx is sum(input\_coins) - actual\_gas\_cost.
4. all other input coins other than the first are deleted.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<input_coins>` (ObjectID): the Sui coins to be used in this transaction, including the coin for gas payment.
  * `<recipient>` (SuiAddress): the recipient address.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_paySui`

> Constructs an unsigned transaction to send specific SUI amounts to a list of recipients.

This is for SUI coin only and does not require a separate gas coin object. Specifically, what pay\_sui does are:

1. debit each input\_coin to create new coin following the order of amounts and assign it to the corresponding recipient.
2. accumulate all residual SUI from input coins left and deposit all SUI to the first input coin, then use the first input coin as the gas coin object.
3. the balance of the first input coin after tx is sum(input\_coins) - sum(amounts) - actual\_gas\_cost.
4. all other input coints other than the first one are deleted.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<input_coins>` (ObjectID): the Sui coins to be used in this transaction, including the coin for gas payment.
  * `<recipients>` (SuiAddress): the recipients' addresses, the length of this vector must be the same as amounts.
  * `<amounts>` (BigInt\_for\_uint64): the amounts to be transferred to recipients, following the same order.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_publish`

> Constructs an unsigned transaction to publish a compiled Move package on-chain.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<sender>` (SuiAddress): the transaction signer's Sui address.
  * `<compiled_modules>` (Base64): the compiled bytes of a Move package.
  * `<dependencies>` (ObjectID): a list of transitive dependency addresses that this set of modules depends on.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget; the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_requestAddStake`

> Constructs an unsigned transaction to delegate SUI coins to a validator.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<coins>` (ObjectID): the coin object to stake.
  * `<amount>` (BigInt\_for\_uint64): the stake amount.
  * `<validator>` (SuiAddress): the validator's Sui address.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget; the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_requestWithdrawStake`

> Constructs an unsigned transaction to undelegate and withdraw staked SUI from a validator.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<staked_sui>` (ObjectID): the StakedSui object ID.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget; the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_splitCoin`

> Constructs an unsigned transaction to split a Coin object into multiple coins with specified amounts.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<coin_object_id>` (ObjectID): the coin object to be spilt.
  * `<split_amounts>` (BigInt\_for\_uint64): the amounts to split out from the coin.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget, the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_splitCoinEqual`

> Constructs an unsigned transaction to split a Coin object into a given number of equal-value coins.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<coin_object_id>` (ObjectID): the coin object to be spilt.
  * `<split_count>` (BigInt\_for\_uint64): the number of coins to split into.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget; the transaction will fail if the gas cost exceed the budget.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_transferObject`

> Constructs an unsigned transaction to transfer any object to the specified recipient.

The object's type must allow public transfers

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<object_id>` (ObjectID): the ID of the object to be transferred.
  * `<gas>` (ObjectID): the gas object to be used in this transaction, node will pick one from the signer's possession if not provided.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget; the transaction will fail if the gas cost exceed the budget.
  * `<recipient>` (SuiAddress): the recipient's Sui address.

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.

***

#### `unsafe_transferSui`

> Constructs an unsigned transaction to transfer SUI to the specified recipient.

The SUI object is also used as the gas object.

**Parameters**

* `id` (integer; required): a request ID (example: 1).
* `jsonrpc` (string; required): a JSON RPC spec used (example: 2.0).
* `method` (string; required): a method used for the request.
* `params` (array; required):
  * `<signer>` (SuiAddress): the transaction signer's Sui address.
  * `<sui_object_id>` (ObjectID): the Sui coin object to be used in this transaction.
  * `<gas_budget>` (BigInt\_for\_uint64): the gas budget; the transaction will fail if the gas cost exceed the budget.
  * `<recipient>` (SuiAddress): the recipient's Sui address.
  * `<amount>` (BigInt\_for\_uint64): the amount to be split out and transferred

**Returns**

* `gas`: the gas objects to be used.
* `inputObjects`: objects to be used in this transaction.
* `txBytes`: BCS serialized transaction data bytes without its type tag, as base-64 encoded string.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-rpc.crypto-chief.com/chains/sui/sui-json-rpc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
