# Taraxa RPC Specs

## Taraxa RPC's Ethereum Compatibility

Taraxa is nearly 100% ETH-compatible, with a few quirks, exceptions, and Taraxa-specific specs.&#x20;

## Quirks of ETH-RPC on Taraxa

* "pending" block identifier means "latest"
* `eth_syncing` return values are to be better defined

## ETH-RPC not implemented on Taraxa

Taraxa protocol supports all Ethereum methods described on [this page](https://eth.wiki/json-rpc/API#json-rpc-methods) except:

* web3\_clientVersion
* web3\_sha3
* eth\_mining
* eth\_hashrate
* eth\_getWork
* eth\_submitWork
* eth\_submitHashrate
* eth\_getCompilers
* eth\_compileSolidity
* eth\_compileLLL
* eth\_compileSerpent
* db\_putString
* db\_getString
* db\_putHex
* db\_getHex
* shh\_version
* shh\_post
* shh\_newIdentity
* shh\_hasIdentity
* shh\_newGroup
* shh\_addToGroup
* shh\_newFilter
* shh\_uninstallFilter
* shh\_getFilterChanges
* shh\_getMessages

All unimplemented methods will return a standard json-rpc error that the method is not present

## Taraxa-Specific RPC Methods&#x20;

### taraxa\_protocolVersion

Returns current taraxa network protocol version

#### Parameters

none

#### Returns

`QUANTITY` - The current network protocol version

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_protocolVersion","params":[],"id":1}'

// Result
{
  "id":67,
  "jsonrpc":"2.0",
  "result": "0x2"
}
```

### taraxa\_getVersion

Returns extended description of Taraxa node version.

#### Parameters

none

#### Returns

`OBJECT`, An object with info about current version

* `version`: `STRING` - Triplet describing full version of node in format `MAJOR.MINOR.PATCH`
* `git_branch`: `STRING` - Name of the branch node was built from
* `git_commit_hash`: `DATA`, 20 Bytes - Hash of the commit node was built from
* `git_commit_date`: `STRING` - Date of the commit node was built from
* `git_description`: `STRING` - Git description of commit node was built from

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_getVersion","params":[],"id":1}'

// Result
{
  "id":67,
  "jsonrpc":"2.0",
  "result": {
    "version": "1.0.2",
    "git_branch": "develop",
    "git_commit_hash": "0e2abae5cec9159702fbe6521005f901c5c24ed8",
    "git_commit_date": "Mon, 23 May 2022 16:53:09 +0200",
    "git_description": "v1.0.1-candidate-405-g0e2abae5"
  }
}
```

### taraxa\_getDagBlockByHash

Returns information about DAG block by hash

#### Parameters

1. `DATA`, 32 Bytes - Hash of a block.
2. `Boolean` - If true it returns the full transaction objects, if false only the hashes of the transactions.

#### Returns

`OBJECT` - A DAG block object, or null when no block was found:

* `pivot`: `DATA`, 32 Bytes -
* `level`: `QUANTITY` - Level at which block was produced
* `period`: `QUANTITY` - Finalization period of this block
* `tips`: `ARRAY` - List of tips
* `transactions`: `ARRAY` - Array of transaction objects, or 32 Bytes transaction hashes depending on the last given parameter.
* `trx_estimations`: `ARRAY` - Array of `QUANTITIES` that means transaction gas estimation for corresponding transaction. For example `trx_estimations[0]` is for `transactions[0]`
* `sig`: `DATA`, 65 Bytes - Signature of block creator
* `hash`: `DATA`, 32 Bytes - Hash of this block
* `sender`: `DATA`, 20 Bytes - Address of block creator
* `timestamp`: `QUANTITY` - Time of block creation
* `vdf`: `OBJECT` - vdf proof for this block
  * `pk`: `DATA`, 32 Bytes - Public key
  * `proof`: `DATA`, 80 Bytes - Bytes of proof
  * `sol1`: `DATA` - First part of solution
  * `sol1`: `DATA` - Second part of solution
  * `difficulty`: `QUANTITY` - Difficulty with which block was produced

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_getDagBlockByHash","params": ["0x73fabc5e2ff3863b8c8a313ee0200b915ef2f3606d24f3ff817a4655c04852a6", false],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "hash": "0x73fabc5e2ff3863b8c8a313ee0200b915ef2f3606d24f3ff817a4655c04852a6",
    "level": "0xea1c6a",
    "period": "0x1d523f",
    "pivot": "0x7611f8f12ec5ad55bc86ea01b81cc02e42972c0142ff78a7998265428b1a44e7",
    "sender": "0xd4e4728bea5a67dd70dccb742bdc9c3a48465bec",
    "sig": "0xe0ca2ea180b90fa605f62334780893a282991dfda9cfb8d376a122fdd76878c2640e5ab95008082d30c99dea39bcb22dc4fc41ea66d9cfca3bc3e06f44f22bb701",
    "timestamp": "0x628f5829",
    "tips": [
      "0x8f267d6cd3d312c39739f55e078a9c3687edd26404bdb1f14bf0dd2ec6a093e3"
    ],
    "transactions": [
      "0xa0fe8112059edd24ce6486b429ef3e17e5338aa395d762f36b2f9271d8c1fce9", ...
    ],
    "trx_estimations": [
      22000, ...
    ]
      "vdf": {
      "difficulty": "0x11",
      "pk": "0x3258951e738ca5322b25f929f2c4bbbd1ebcef9acbf306a38ab9f1a5264af0eb",
      "proof": "0x5af4ebd0274f67d759ef5c87b90351d0c1cd5fb017a2b39387423973dd4126e916e44ee472b04876c9520b6f2d81be6dfbf1395c62a8412f4074e578791225fff52d387afb269176600f1daa8699b405",
      "sol1": "0x1c4ec46437cc82bc358014096d0730224a232c7554c12481fdf6c99480b92d632def11d57ac3e51b26b2a30a4e376b49661ddf91d11f3d2870cf172c15cd66df51c65464f875da1638825873192a7d830dbce6d5d1ca9e20a33b784a39d162e79d3c4061b9e6c5078323b5b536b4fdba84087f8159fdc08ca27779a0e66c964cbeeadae1dfcf8c8c1e525fdb283438fd3f9c4e1ae39818f280e8c7fd8c069c6a54c27dcddd1e6758b53d54c3973416a03ff3dab941a96e098ef963b3a763a9bb37c4658a4b9695e275ec543e79a825236e27a577d9ce779f831e68b0195b3f8f6f8993cae7dd6faaac7241c6c64580567991ca442a40e7093a3457c589a34a32",
      "sol2": "0x220effaba1e781cd9e3302416e821a4c24750f1150320cac207805cf78accec4ce18fe2dd9d0bba38009fdade0e9e31c8478aec1bdff782768f52f65cd42260fbb3ee572c5d3784e4ff1b1d57ab53383a5c9d0c6ee17c6c06af788c8d51e651184d7b9ee7cc972cf5dab14f0c45fe3fcdcf25465a531abd4e8cef1407177225a4dd28b404ab6f1772ee8d16ac4c28ef700a22f351d4afa601068177dd48f4d5a7660ff6a5c5aa4ce32551ad78f846054946262b190168bed0aa871e69b704bdd74b6fcb788acc7b410af6f6bbe09ff562d42cc6b2f6ebf3e51a52e8d263d6be3f3d1447d31f7b09cdeab384136d86f4910db8c99426b6fe5ed1f885c6c0aedb0"
    }
  }
}
```

### taraxa\_getDagBlockByLevel

Returns information about DAG blocks for specified level

#### Parameters

1. `QUANTITY` - Level to get blocks from
2. `Boolean` - If true it returns the full transaction objects, if false only the hashes of the transactions.

#### Returns

`ARRAY` of `OBJECT` - A DAG block object, or null when no block was found:

* `pivot`: `DATA`, 32 Bytes -
* `level`: `QUANTITY` - Level at which block was produced
* `period`: `QUANTITY` - Finalization period of this block
* `tips`: `ARRAY` - List of tips
* `transactions`: `ARRAY` - Array of transaction objects, or 32 Bytes transaction hashes depending on the last given parameter.
* `trx_estimations`: `ARRAY` - Array of `QUANTITIES` that means transaction gas estimation for corresponding transaction. For example `trx_estimations[0]` is for `transactions[0]`
* `sig`: `DATA`, 65 Bytes - Signature of block creator
* `hash`: `DATA`, 32 Bytes - Hash of this block
* `sender`: `DATA`, 20 Bytes - Address of block creator
* `timestamp`: `QUANTITY` - Time of block creation
* `vdf`: `OBJECT` - vdf proof for this block
  * `pk`: `DATA`, 32 Bytes - Public key
  * `proof`: `DATA`, 80 Bytes - Bytes of proof
  * `sol1`: `DATA` - First part of solution
  * `sol1`: `DATA` - Second part of solution
  * `difficulty`: `QUANTITY` - Difficulty with which block was produced

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_getDagBlockByLevel","params":["0xEA1C6A", false],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [
    {
      "hash": "0x038ab6a764130199849cd79916d0f310f300edda22c547759ff063839fc574c0",
      "level": "0xea1c6a",
      "period": "0x1d523f",
      "pivot": "0x7611f8f12ec5ad55bc86ea01b81cc02e42972c0142ff78a7998265428b1a44e7",
      "sender": "0x30273be3d2bc695f861e9319ec8197b39056a0c5",
      "sig": "0xddf6ac39b9465b897af5c852c90c2e5ec25c08114ca2a4e1bf582cb065d0e6237e4df1016143c8a7a3efe638240c50ae55e55a8701e01cc58fac566405736a1401",
      "timestamp": "0x628f5828",
      "tips": [],
      "transactions": [
        "0x35b2e032eb6b248099e4afb03297f0ef628cc2e768c0b611169b2999125aac88", ...
      ],
      "trx_estimations": [
        22000, ...
      ],
      "vdf": {
        "difficulty": "0x11",
        "pk": "0x13d9157caaefe6ce5795fdbed6b3994ed83a3fa0dae4384575aa259eeb658321",
        "proof": "0xffe0c378dbf2549cb9fe5f36ab645cd64e9231e801163c7d052fd5831148f5cfa93dc7e670d9f974825a13a2be8fe3ed6edca275eff93fb84556b960a67d2eb83ab0dd1f7f92bac3c174d9173467f905",
        "sol1": "0x1c4ec46437cc82bc358014096d0730224a232c7554c12481fdf6c99480b92d632def11d57ac3e51b26b2a30a4e376b49661ddf91d11f3d2870cf172c15cd66df51c65464f875da1638825873192a7d830dbce6d5d1ca9e20a33b784a39d162e79d3c4061b9e6c5078323b5b536b4fdba84087f8159fdc08ca27779a0e66c964cbeeadae1dfcf8c8c1e525fdb283438fd3f9c4e1ae39818f280e8c7fd8c069c6a54c27dcddd1e6758b53d54c3973416a03ff3dab941a96e098ef963b3a763a9bb37c4658a4b9695e275ec543e79a825236e27a577d9ce779f831e68b0195b3f8f6f8993cae7dd6faaac7241c6c64580567991ca442a40e7093a3457c589a34a32",
        "sol2": "0x220effaba1e781cd9e3302416e821a4c24750f1150320cac207805cf78accec4ce18fe2dd9d0bba38009fdade0e9e31c8478aec1bdff782768f52f65cd42260fbb3ee572c5d3784e4ff1b1d57ab53383a5c9d0c6ee17c6c06af788c8d51e651184d7b9ee7cc972cf5dab14f0c45fe3fcdcf25465a531abd4e8cef1407177225a4dd28b404ab6f1772ee8d16ac4c28ef700a22f351d4afa601068177dd48f4d5a7660ff6a5c5aa4ce32551ad78f846054946262b190168bed0aa871e69b704bdd74b6fcb788acc7b410af6f6bbe09ff562d42cc6b2f6ebf3e51a52e8d263d6be3f3d1447d31f7b09cdeab384136d86f4910db8c99426b6fe5ed1f885c6c0aedb0"
      }
    }, ...
  ]
}
```

### taraxa\_dagBlockLevel

Returns current maximum level of DAG

#### Parameters

none

#### Returns

`QUANTITY` - The current maximum DAG level

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_dagBlockLevel","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xea1f7f"
}
```

### taraxa\_dagBlockPeriod

Returns last period

#### Parameters

none

#### Returns

`String` - The current protocol version

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_dagBlockPeriod","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x1d52a3"
}
```

### taraxa\_getScheduleBlockByPeriod

Returns PBFT block info with DAG block schedule for period

#### Parameters

`QUANTITY` - period

#### Returns

`OBJECT` - PBFT block info

* `beneficiary`: `DATA`, 20 Bytes - Address of beneficiary(block creator)
* `block_hash`: `DATA`, 32 Bytes - Hash of the block
* `dag_block_hash_as_pivot`: `DATA`, 32 Bytes - Hash of the pivot block
* `order_hash`: `DATA`, 32 Bytes - Hash of DAG blocks order
* `period`: `QUANTITY` - Period number
* `prev_block_hash`: `DATA`, 32 Bytes - Hash of previous PBFT block
* `schedule`: `OBJECT`
  * `dag_blocks_order`: `ARRAY` - DAG blocks order for current PBFT block
* `signature`: `DATA`, 65 Bytes - Beneficiary signature of the block
* `timestamp`: `QUANTITY` - Time of block generation

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_getScheduleBlockByPeriod","params":["0x1D533B"],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "beneficiary": "fa9d19d08422962316c58b0341ed938285855b4b",
    "block_hash": "024409a272dd2f87b0c98f8be109dbf993eb61346a0f4ff5dacc5a7205b49623",
    "dag_block_hash_as_pivot": "0b7986a9c8cc7677264a161f2e3622f57ff63aeb78fad1dcac4b32655aaab5ea",
    "order_hash": "9ee61bed15a723b6bc4178a30e3748635141e8b8cb2bd0ace398f1b65519cb08",
    "period": 1921851,
    "prev_block_hash": "664a895a8d030bdbe27e853641150915421c2418301e20f763d61746686c1d73",
    "schedule": {
      "dag_blocks_order": [
        "0x64c4e3f6380e8c85ab3a5cb497f19831e6b355d6007ff04af201e3a421d43703",
        "0x5847486c760d760eecb9289e75313eaa7bb6270fc39f5d94bacd6a62511ff58a",
        "0x687bdda424f51c87321e96c05d93717880d8a1360f9e36f43994fc93b47ccba7",
        "0xb6f1b364af58c343960882ce634e0146854277ec53547cc6014f0b8f0e6facb8",
        "0xda50bf40050c07ca4a683aebb3c9f88429f9d9fa3de56202277644fe82a16cf5",
        "0x508ba74261788c516e9f37074ff7eed427f1f385200dee228174d32379710c36",
        "0x4960ba2d0dad2656d63476eb84f703209b63406d9b36686dc6104fa87883cb48",
        "0x418670a0bc42e771f6e6094c1fd3759a37080fc0328580c244ea5702622e3149",
        "0x347ca32618309f37bd7efd2291a1f4aea70b9df1a1d6d5e1d5ecb21645e530e9",
        "0x04712c69a8b572eb3cb9118df41dd481c22467d76c2313eed8fe917ca4e495c0",
        "0xd48b200ee5d56ecaa97ca4456c573d10e0966f2114481cf21fd041b52141d24c",
        "0x0e9af05187db2043d87d54d2c2393fb4611e9c25c8774cee349bdce13650feb0",
        "0x8ca87291fecdfc4e75d946f24bcbe28d38abe470d23f456b9e6aabcc3114fce0",
        "0x9a277ade0123a9963efc85c03e3773903c9ff7bfb8c33ffbcdf05aa0c24040cc",
        "0xf8ad8dc55eba458540d3297bdf1bc7304c0b4e4a03c41f49a30f8e2b4a06e314",
        "0xbf763c19a3625e097fc9cc162f584379dc7fe6bf1329d3f887bb2079240a4e1c",
        "0xa328ef31b261ddc332ddb3dbff45d9aae4caa1a405dc580af12a91a357bed8f0",
        "0x1e843649f167f5180a0017e106e124477ad0c4e7ae6ca95ac1b17168c4eedd43",
        "0xd5305ce0bb792b0d98e47bd3cdc7f33f1d23e9309b63c174ebcb2be07b0248e1",
        "0x0b7986a9c8cc7677264a161f2e3622f57ff63aeb78fad1dcac4b32655aaab5ea"
      ]
    },
    "signature": "c95b29cad2dc3cd6987083a0782c90cc0e25b45ab353ee21f22ef0ed059077d26e14bfe7cc9401ac6dcd101a071951e06ce7d739094c2519e5a151c06ceb96a600",
    "timestamp": 1653563053
  }
}
```

### taraxa\_getConfig

Returns current node configuration

#### Parameters

none

#### Returns

`OBJECT` - config object

* `chain_id`: `QUANTITY` - chain id. Different between networks
* `dag_genesis_block`: `OBJECT` - DAG genesis block
* `final_chain`: `OBJECT` - FinalChain config object
* `pbft`: `OBJECT` - PBFT configuration object
* `sortition`: `OBJECT` - Sortition configuration object

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_getConfig","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "chain_id": "0x1",
    "dag_genesis_block": {
      "level": "0x0",
      "pivot": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "sig": "0xb7e22d46c1ba94d5e8347b01d137b5c428fcbbeaf0a77fb024cbbf1517656ff00d04f7f25be608c321b0d7483c402c294ff46c49b265305d046a52236c0a363701",
      "timestamp": "0x61cd9f40",
      "tips": [],
      "transactions": []
    },
    "final_chain": {
      "genesis_block_fields": {
        "author": "0x0000000000000000000000000000000000000000",
        "timestamp": "0x61cd9f40"
      },
      "state": {
        "disable_block_rewards": true,
        "dpos": {
          "deposit_delay": "0x5",
          "eligibility_balance_threshold": "0x186a0",
          "genesis_state": {
            "0x0274cfffea9fa850e54c93a23042f12a87358a82": {
              "0x00ccd0de0809ac03fd292036ee1544185583cd88": "0x989680",
              "0x0d149e61cc02b5893ef6fc33bc7d67ff13eeeee0": "0x989680",
              "0x1f8333245650a19a0683891b7afe7787a3ce9f00": "0x989680",
              "0x267e780b7843992e57f52e13018f0f97467ac06e": "0x989680",
              "0x6f96be7626a74e86c76e65ccbccf0a38e2b62fc5": "0x989680",
              "0x9d047654e55248ec38aa6723a5ab36d171008584": "0x989680",
              "0xd20131f980c9932b1df31cf3aafeecfb1d504381": "0x989680",
              "0xd4e4728bea5a67dd70dccb742bdc9c3a48465bec": "0x989680",
              "0xec591a85f613fe98f057dc09712a9b22cdd05845": "0x989680"
            }
          },
          "vote_eligibility_balance_step": "0x186a0",
          "withdrawal_delay": "0x5"
        },
        "eth_chain_config": {
          "byzantium_block": "0x0",
          "constantinople_block": "0x0",
          "dao_fork_block": "0xffffffffffffffff",
          "eip_150_block": "0x0",
          "eip_158_block": "0x0",
          "homestead_block": "0x0",
          "petersburg_block": "0x0"
        },
        "execution_options": {
          "disable_gas_fee": false,
          "disable_nonce_check": true
        },
        "genesis_balances": {
          "0x0274cfffea9fa850e54c93a23042f12a87358a82": "0x141e8d17",
          "0x111f91441efc8c6c0edf6534970cc887e2fabaa8": "0x24048ce3d"
        },
        "hardforks": {
          "fix_genesis_fork_block": "0x102ca0"
        }
      }
    },
    "pbft": {
      "committee_size": "0x3e8",
      "dag_blocks_size": "0xa",
      "ghost_path_move_back": "0x0",
      "lambda_ms_min": "0x5dc",
      "run_count_votes": false
    },
    "sortition": {
      "changes_count_for_average": "0x5",
      "changing_interval": "0x0",
      "computation_interval": "0xc8",
      "dag_efficiency_targets": [
        "0x12c0",
        "0x1450"
      ],
      "max_interval_correction": "0x3e8",
      "vdf": {
        "difficulty_max": "0x12",
        "difficulty_min": "0x10",
        "difficulty_stale": "0x14",
        "lambda_bound": "0x64"
      },
      "vrf": {
        "threshold_range": "0xbb8",
        "threshold_upper": "0x1770"
      }
    }
  }
}
```

### taraxa\_getChainStats

Returns current chain stats with count of transactions, PBFT blocks and DAG blocks

**Parameters**

none

**Returns**

`OBJECT` - current chain stats object

* `pbft_period`: `QUANTITY` - current PBFT period
* `dag_blocks_executed`: `QUANTITY` - count of executed(finalized) DAG blocks
* `transactions_executed`: `QUANTITY` - count of executed transactions

**Example**

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_getChainStats","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "pbft_period": 50,
    "dag_blocks_executed": 100,
    "transactions_executed": 200
  }
}
```

### taraxa\_yield

Returns calculated total network yield for specified period

**Parameters**

`QUANTITY` - period

**Returns**

`String` - yield

To transform returned yield to percents -> `decimal(yield) / 1e4`\
To transform returned yield to fraction -> `decimal(yield) / 1e6`

**Example**

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_yield","params":["0x1D533B"],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x30D40"
}
```

### taraxa\_totalSupply

Returns total supply for specified period

**Parameters**

`QUANTITY` - period

**Returns**

`String` - total supply

**Example**

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"taraxa_totalSupply","params":["0x1D533B"],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x204FCE5E3E25026110000000"
}
```

## Test API

### get\_sortition\_change

Get sortition params changes for closest smaller period to specified

#### Parameters

`OBJECT` - param is wrapped into object

* `period`: QUANTITY\` - period number to get sortition parameters for

#### Returns

`OBJECT` - sortition parameters

* `interval_efficiency`: `QUANTITY` - efficiency of interval
* `period`: `QUANTITY` - number of period when closest smaller change happened
* `threshold_range`: `QUANTITY` - range of normal selection
* `threshold_upper`: `QUANTITY` - upper bound of normal selection
* `kThresholdUpperMinValue`: `QUANTITY` - const that represents minimum value of `threshold_upper`

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"get_sortition_change","params":[{"period": 3000}],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "interval_efficiency": 1327,
    "kThresholdUpperMinValue": 80,
    "period": 2820,
    "threshold_range": 80,
    "threshold_upper": 31953
  }
}
```

### send\_coin\_transaction

Method to create and send transfer transaction. Used in some tests and CI

#### Parameters

`OBJECT` - block json to insert

* `secret`: `DATA`, 32 Bytes - Secret key for account to send transaction from
* `nonce`: `QUANTITY` - Nonce to send transaction with
* `value`: `QUANTITY` - Value to specify in created transaction
* `gas_price`: `QUANTITY` - Gas price to specify in created transaction
* `gas`: `QUANTITY` - Amount of gas transaction can use
* `receiver`: `DATA`, 20 Bytes - Address of receiver account

#### Returns

none

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"send_coin_transaction","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": null
}
```

### get\_account\_address

Returns address of account on current node

#### Parameters

none

#### Returns

`DATA`, 20 Bytes - address of account on current node

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"get_account_address","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "value": "b3888b0bafcf1f9481a0ec97ff032d84f22254ec"
  }
}
```

### get\_peer\_count

Returns count of peers that node is connected to

#### Parameters

none

#### Returns

`QUANTITY` - count of peers that node is connected to

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"get_peer_count","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "value": 50
  }
}
```

### get\_node\_status

Returns current taraxa network protocol version

#### Parameters

none

#### Returns

`OBJECT` - with a lot of info about node status including networking. See Example

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"get_node_status","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "blk_count": 6033325,
    "blk_executed": 6033312,
    "blk_queue_size": 0,
    "dag_level": 3058195,
    "dpos_node_votes": 0,
    "dpos_quorum": 667,
    "dpos_total_votes": 15300,
    "network": {
      "peer_max_node_dag_level": 3058195,
      "peer_max_node_dag_level_node_id": "26d873a8fe9f3fe763491bfb1e0fcb3e95c7f5ca0d791f22936f62ba1ece9f0384c347f0ed642f997fe93203781af8116180458f66ed27fa58e93cd7fddc8947",
      "peer_max_pbft_chain_size": 324432,
      "peer_max_pbft_chain_size_node_id": "dd607f2ec9daa9f47335d0da859ebc2d1b489085c8b918f5ca3f13c0c8e6a29b731be4adf0c9c729baf932a656bcc4b6c9e2b10e9aa906b170f2c271504ababc",
      "peer_max_pbft_round": 324617,
      "peer_max_pbft_round_node_id": "26d873a8fe9f3fe763491bfb1e0fcb3e95c7f5ca0d791f22936f62ba1ece9f0384c347f0ed642f997fe93203781af8116180458f66ed27fa58e93cd7fddc8947",
      "peers": [
        {
          "dag_level": 3058195,
          "dag_synced": true,
          "node_id": "26d873a8fe9f3fe763491bfb1e0fcb3e95c7f5ca0d791f22936f62ba1ece9f0384c347f0ed642f997fe93203781af8116180458f66ed27fa58e93cd7fddc8947",
          "pbft_size": 324431
        }, ...
      ]
    },
    "node_count": 79,
    "pbft_round": 324617,
    "pbft_size": 324432,
    "pbft_sync_period": 324432,
    "pbft_sync_queue_size": 0,
    "peer_count": 50,
    "synced": true,
    "syncing_seconds": 0,
    "trx_count": 28017090,
    "trx_executed": 28017007,
    "trx_nonfinalized_size": 83,
    "trx_pool_size": 7
  }
}
```

### get\_packets\_stats

Returns current taraxa network protocol version

#### Parameters

none

#### Returns

`OBJECT` - with info about packets statistic

* `received_packets`: `ARRAY` of `PACKET_STATS_OBJECT`
* `received_packets_period_max_stats`: `OBJECT`
  * `period_max_counts_stats`: `ARRAY` of `PACKET_STATS_OBJECT`
  * `period_max_sizes_stats`: `ARRAY` of `PACKET_STATS_OBJECT`
* `sent_packets`: `ARRAY` of `PACKET_STATS_OBJECT`
* `sent_packets_period_max_stats`: `OBJECT`
  * `period_max_counts_stats`: `ARRAY` of `PACKET_STATS_OBJECT`
  * `period_max_sizes_stats`: `ARRAY` of `PACKET_STATS_OBJECT`

`PACKET_STATS_OBJECT`:

* `avg_processing_duration`: `QUANTITY` - average processing time of one packet
* `avg_size`: `QUANTITY` - average packet size
* `avg_tp_wait_duration`: `QUANTITY` - Average ThreadPool waiting time for 1 packet
* `total_count`: `QUANTITY` - total count of processed packets
* `total_processing_duration`: `QUANTITY` - total processing time for all packets
* `total_size`: `QUANTITY` - sum of size of all processed packets
* `total_tp_wait_duration`: `QUANTITY` - Total ThreadPool waiting time
* `type`: `STRING` - Type of packet data related to. List of packet types:

  ```
  VotePacket
  GetVotesSyncPacket
  VotesSyncPacket
  PbftBlockPacket
  DagBlockPacket
  DagSyncPacket
  TransactionPacket
  StatusPacket
  GetPbftSyncPacket
  PbftSyncPacket
  GetDagSyncPacket
  ```

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"get_packets_stats","params":[],"id":1}'

// PACKET_STATS_OBJECT example
{
  "avg_processing_duration": 363,
  "avg_size": 5,
  "avg_tp_wait_duration": 543,
  "total_count": 243,
  "total_processing_duration": 88363,
  "total_size": 1215,
  "total_tp_wait_duration": 132164,
  "type": "PacketType"
}

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "received_packets": [PACKET_STATS_OBJECTs],
    "received_packets_period_max_stats": {
      "period_max_counts_stats": [PACKET_STATS_OBJECTs],
      "period_max_sizes_stats": [PACKET_STATS_OBJECTs]
    },
    "sent_packets": [PACKET_STATS_OBJECTs],
    "sent_packets_period_max_stats": {
      "period_max_counts_stats": [PACKET_STATS_OBJECTs],
      "period_max_sizes_stats": [PACKET_STATS_OBJECTs]
    }
  }
}
```

### get\_all\_nodes

Returns info of current connected nodes including its id, ip\_address and port

#### Parameters

none

#### Returns

`STRING` - string that contains info about peer if format `id ip_address:port` separated with .

#### Example

```json
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"get_all_nodes","params":[],"id":1}'

// Result
{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "f8ff62f2df819566023ec3cda97f73697e789089b5c97c22a24c175edec3256242796a7a843fe1b949558160dae0fd5510e31c93440798212ef99a55c64e7b0f 66.94.114.186:10002\n45022ea1765d3a569003e2088a0893ffe00656c25f32ee414b39c6e45c8aa05cc41453158d832c67b5bba710edb648223f654fae9e2a1f513d7e42447f25a2d6 38.242.218.203:10002"
}
```


---

# 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://taraxa.gitbook.io/taraxa-network/develop/taraxa-rpc-specs.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.
