REST API

The mirror node REST API offers the ability to query transaction information.

Hedera Mirror Nodes store the history of transactions that occurred on mainnet, testnet, and previewnet. Each transaction generates a record that is stored in a record file. The transaction contents can be accessed by the mirror node REST APIs

To make a request, use the network endpoint and the REST API of choice. For example, to get a list of transactions on mainnet you would make the following request.

Hedera Mirror Node Swagger UI environments

MAINNET BASEURL https://mainnet.mirrornode.hedera.com/

TESTNET BASEURL https://testnet.mirrornode.hedera.com/

PREVIEWNET BASEURL https://previewnet.mirrornode.hedera.com/

You may also check out Validation Cloud, DragonGlass, Arkhia or Ledger Works as alternatives.‌

Public mainnet mirror node requests per second (RPS) are currently throttled at 50 per IP address. These configurations may change in the future depending on performance or security considerations. At this time, no authentication is required.

Accounts

The accounts object represents the information associated with an account and returns a list of account information.‌

Account IDs take the following format: 0.0.<account number>.‌

Example: 0.0.1000‌

Account IDs can also take the account number as an input value. For example, for account ID 0.0.1000, the number 1000 can be specified in the request.

List account entities on network

Returns a list of all account entity items on the network.

GET/api/v1/accounts
Query parameters
Response

OK

Body
accounts*Accounts (array of AccountInfo (object))
links*Links (object)
Request
const response = await fetch('/api/v1/accounts', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "accounts": [
    {
      "account": "0.0.8",
      "alias": "HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA",
      "auto_renew_period": null,
      "balance": {
        "timestamp": "0.000002345",
        "balance": 80,
        "tokens": [
          {
            "token_id": "0.0.200001",
            "balance": 8
          }
        ]
      },
      "created_timestamp": "1562591528.000123456",
      "decline_reward": false,
      "deleted": false,
      "ethereum_nonce": 10,
      "evm_address": "0xac384c53f03855fa1b3616052f8ba32c6c2a2fec",
      "expiry_timestamp": null,
      "key": null,
      "max_automatic_token_associations": 200,
      "memo": "entity memo",
      "pending_reward": 100,
      "receiver_sig_required": false,
      "staked_account_id": null,
      "staked_node_id": 3,
      "stake_period_start": "172800000.000000000"
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item

Description

account

The ID of the account

allowances

The allowances granted to this account

alias

RFC4648 no-padding base32 encoded account alias

auto_renew_period

The period in which the account will auto renew

balance

The timestamp and account balance of the account

created_timestamp

The timestamp for the creation of that account

decline_reward

Whether or not the account has opted to decline a staking reward

deleted

Whether the account was deleted or not

ethereum_nonce

The ethereum transaction nonce associated with this account

evm_address

A network entity encoded as an EVM encoded hex

expiry_timestamp

The expiry date for the entity as set by a create or update transaction

key

The public key associated with the account

links.next

Hyperlink to the next page of results

max_automatic_token_associations

The number of automatic token associations, if any

memo

The account memo, if any

nfts

List of nfts informations belonging to this account

pending_reward

The account's pending staking reward that has not been transferred to the account

receiver_sig_required

Whether or not the account requires a signature to receive a transfer into the account

rewards

List of rewards which of the account

staked_account_id

The account ID the account is staked to, if set

staked_node_id

The node ID the account is staked to, if set

stake_period_start

The start of the staking period

tokens

The tokens and their balances associated to the specified account

Optional Filtering

Operator
Example
Description

lt (less than)

/api/v1/accounts?account.id=lt:0.0.1000

Returns account IDs less then 1000

lte (less than or equal to)

/api/v1/accounts?account.id=lte:0.0.1000

Returns account IDs less than or equal to 1000

gt (greater than)

/api/v1/accounts?account.id=gt:0.0.1000

Returns account IDs greater than 1000

gte (greater than or equal to)

/api/v1/accounts?account.id=gte:0.0.1000

Returns account IDs greater than or equal to 1000

order (order asc or desc values)

/api/v1/accounts?order=asc

/api/v1/accounts?order=desc

Returns account information in ascending order

Returns account information in descending order

Additional Examples

Example Requests
Description

/api/v1/accounts?account.id=0.0.1001

Returns the account information of account 1001

/api/v1/accounts?account.balance=gt:1000

Returns all account information that have a balance greater than 1000 tinybars

/api/v1/accounts?account.publickey=2b60955bcbf0cf5e9ea880b52e5b63f664b08edf6ed 15e301049517438d61864

Returns all account information for 2b60955bcbf0cf5e9ea880b52e5b63f664b08edf6ed15e301049517438d61864 public key

/api/v1/accounts/2?transactionType=cryptotransfer

Returns the crypto transfer transactions for account 2.

Get account by alias, id, or evm address

Return the account transactions and balance information given an account alias, an account id, or an evm address. The information will be limited to at most 1000 token balances for the account as outlined in HIP-367. When the timestamp parameter is supplied, we will return transactions and account state for the relevant timestamp query. Balance information will be accurate to within 15 minutes of the provided timestamp query. Historical ethereum nonce information is currently not available and may not be the exact value at a provided timestamp.

GET/api/v1/accounts/{idOrAliasOrEvmAddress}
Path parameters
idOrAliasOrEvmAddress*string

Account alias or account id or evm address

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40}|(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8}))$
Query parameters
Response

OK

Body
account*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
alias*nullable Alias (string)

RFC4648 no-padding base32 encoded account alias

Example: "HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA"
Pattern: ^(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8})$
auto_renew_period*nullable integer (int64)
balance*nullable Balance (object)
created_timestamp*nullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
decline_reward*boolean

Whether the account declines receiving a staking reward

deleted*nullable boolean
ethereum_nonce*nullable integer (int64)
evm_address*nullable EvmAddressNullable (string (binary))

A network entity encoded as an EVM address in hex.

Example: "0x0000000000000000000000000000000000001f41"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
expiry_timestamp*nullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
key*nullable Key (object)

The public key which controls access to various network entities.

max_automatic_token_associations*nullable integer (int32)
memo*nullable string
pending_rewardinteger (int64)

The pending reward in tinybars the account will receive in the next reward payout. Note the value is updated at the end of each staking period and there may be delay to reflect the changes in the past staking period.

receiver_sig_required*nullable boolean
staked_account_id*all of
staked_node_id*nullable integer (int64)

The id of the node to which this account is staking

stake_period_start*all of
transactions*Transactions (array of Transaction (object))
links*Links (object)
Request
const response = await fetch('/api/v1/accounts/{idOrAliasOrEvmAddress}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "account": "0.0.8",
  "alias": "HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA",
  "auto_renew_period": null,
  "balance": {
    "timestamp": "0.000002345",
    "balance": 80,
    "tokens": [
      {
        "token_id": "0.0.200001",
        "balance": 8
      }
    ]
  },
  "created_timestamp": "1562591528.000123456",
  "decline_reward": false,
  "deleted": false,
  "ethereum_nonce": 10,
  "evm_address": "0xac384c53f03855fa1b3616052f8ba32c6c2a2fec",
  "expiry_timestamp": null,
  "key": null,
  "max_automatic_token_associations": 200,
  "memo": "entity memo",
  "pending_reward": 100,
  "receiver_sig_required": false,
  "staked_account_id": null,
  "staked_node_id": 3,
  "stake_period_start": "172800000.000000000",
  "transactions": [
    {
      "bytes": null,
      "charged_tx_fee": 7,
      "consensus_timestamp": "1234567890.000000007",
      "entity_id": "0.0.2281979",
      "max_fee": 33,
      "memo_base64": null,
      "name": "CRYPTOTRANSFER",
      "nft_transfers": [
        {
          "is_approval": true,
          "receiver_account_id": "0.0.121",
          "sender_account_id": "0.0.122",
          "serial_number": 1,
          "token_id": "0.0.123"
        },
        {
          "is_approval": true,
          "receiver_account_id": "0.0.321",
          "sender_account_id": "0.0.422",
          "serial_number": 2,
          "token_id": "0.0.123"
        }
      ],
      "node": "0.0.3",
      "nonce": 0,
      "parent_consensus_timestamp": "1234567890.000000007",
      "result": "SUCCESS",
      "scheduled": false,
      "staking_reward_transfers": [
        {
          "account": 3,
          "amount": 150
        },
        {
          "account": 9,
          "amount": 200
        }
      ],
      "transaction_hash": "vigzKe2J7fv4ktHBbNTSzQmKq7Lzdq1/lJMmHT+a2KgvdhAuadlvS4eKeqKjIRmW",
      "transaction_id": "0.0.8-1234567890-000000006",
      "token_transfers": [
        {
          "token_id": "0.0.90000",
          "account": "0.0.9",
          "amount": 1200,
          "is_approval": false
        },
        {
          "token_id": "0.0.90000",
          "account": "0.0.8",
          "amount": -1200,
          "is_approval": false
        }
      ],
      "transfers": [
        {
          "account": "0.0.3",
          "amount": 2,
          "is_approval": false
        },
        {
          "account": "0.0.8",
          "amount": -3,
          "is_approval": false
        },
        {
          "account": "0.0.98",
          "amount": 1,
          "is_approval": false
        },
        {
          "account": "0.0.800",
          "amount": 150,
          "is_approval": false
        },
        {
          "account": "0.0.800",
          "amount": 200,
          "is_approval": false
        }
      ],
      "valid_duration_seconds": 11,
      "valid_start_timestamp": "1234567890.000000006"
    }
  ],
  "links": {
    "next": null
  }
}

Get crypto allowances for an account info

Returns information for all crypto allowances for an account.

GET/api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/crypto
Path parameters
idOrAliasOrEvmAddress*string

Account alias or account id or evm address

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40}|(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8}))$
Query parameters
Response

OK

Body
allowancesCryptoAllowances (array of CryptoAllowance (all of))
linksLinks (object)
Request
const response = await fetch('/api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/crypto', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "allowances": [
    {
      "amount": 0,
      "amount_granted": 0,
      "owner": "0.0.2",
      "spender": "0.0.2",
      "timestamp": {
        "from": {},
        "to": {}
      }
    }
  ],
  "links": {
    "next": null
  }
}

Get token relationships info for an account

Returns information for all token relationships for an account.

GET/api/v1/accounts/{idOrAliasOrEvmAddress}/tokens
Path parameters
idOrAliasOrEvmAddress*string

Account alias or account id or evm address

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40}|(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8}))$
Query parameters
Response

OK

Body
tokensarray of TokenRelationship (object)
linksLinks (object)
Request
const response = await fetch('/api/v1/accounts/{idOrAliasOrEvmAddress}/tokens', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "tokens": [
    {
      "automatic_association": true,
      "balance": 5,
      "created_timestamp": "123456789.000000001",
      "decimals": 3,
      "freeze_status": "UNFROZEN",
      "kyc_status": "GRANTED",
      "token_id": "0.0.27335"
    }
  ],
  "links": {
    "next": null
  }
}

Get nfts for an account info

Returns information for all non-fungible tokens for an account.

Ordering

When considering NFTs, their order is governed by a combination of their numerical token.Id and serialnumber values, with token.id being the parent column. A serialnumbers value governs its order within the given token.id

In that regard, if a user acquired a set of NFTs in the order (2-2, 2-4 1-5, 1-1, 1-3, 3-3, 3-4), the following layouts illustrate the ordering expectations for ownership listing

  1. All NFTs in ASC order: 1-1, 1-3, 1-5, 2-2, 2-4, 3-3, 3-4
  2. All NFTs in DESC order: 3-4, 3-3, 2-4, 2-2, 1-5, 1-3, 1-1
  3. NFTs above 1-1 in ASC order: 1-3, 1-5, 2-2, 2-4, 3-3, 3-4
  4. NFTs below 3-3 in ASC order: 1-1, 1-3, 1-5, 2-2, 2-4
  5. NFTs between 1-3 and 3-3 inclusive in DESC order: 3-4, 3-3, 2-4, 2-2, 1-5, 1-3

Note: The default order for this API is currently DESC

Filtering

When filtering there are some restrictions enforced to ensure correctness and scalability.

The table below defines the restrictions and support for the NFT ownership endpoint

Query Param Comparison Operator Support Description Example
token.id eq Y Single occurrence only. ?token.id=X
ne N
lt(e) Y Single occurrence only. ?token.id=lte:X
gt(e) Y Single occurrence only. ?token.id=gte:X
serialnumber eq Y Single occurrence only. Requires the presence of a token.id query ?serialnumber=Y
ne N
lt(e) Y Single occurrence only. Requires the presence of an lte or eq token.id query ?token.id=lte:X&serialnumber=lt:Y
gt(e) Y Single occurrence only. Requires the presence of an gte or eq token.id query ?token.id=gte:X&serialnumber=gt:Y
spender.id eq Y ?spender.id=Z
ne N
lt(e) Y ?spender.id=lt:Z
gt(e) Y ?spender.id=gt:Z

Note: When searching across a range for individual NFTs a serialnumber with an additional token.id query filter must be provided. Both filters must be a single occurrence of gt(e) or lt(e) which provide a lower and or upper boundary for search.

GET/api/v1/accounts/{idOrAliasOrEvmAddress}/nfts
Path parameters
idOrAliasOrEvmAddress*string

Account alias or account id or evm address

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40}|(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8}))$
Query parameters
Response

OK

Body
nftsarray of Nft (object)
linksLinks (object)
Request
const response = await fetch('/api/v1/accounts/{idOrAliasOrEvmAddress}/nfts', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "nfts": [
    {
      "account_id": "0.1.2",
      "created_timestamp": "1234567890.000000001",
      "delegating_spender": "0.0.400",
      "deleted": false,
      "metadata": "VGhpcyBpcyBhIHRlc3QgTkZU",
      "modified_timestamp": "1610682445.003266001",
      "serial_number": 124,
      "spender_id": "0.0.500",
      "token_id": "0.0.222"
    }
  ],
  "links": {
    "next": null
  }
}

Get fungible token allowances for an account

Returns information for fungible token allowances for an account.

Ordering

The order is governed by a combination of the spender id and the token id values, with spender id being the parent column. The token id value governs its order within the given spender id.

Note: The default order for this API is currently ASC

Filtering

When filtering there are some restrictions enforced to ensure correctness and scalability.

The table below defines the restrictions and support for the endpoint

Query Param Comparison Operator Support Description Example
spender.id eq Y Single occurrence only. ?spender.id=X
ne N
lt(e) Y Single occurrence only. ?spender.id=lte:X
gt(e) Y Single occurrence only. ?spender.id=gte:X
token.id eq Y Single occurrence only. Requires the presence of a spender.id query ?token.id=lt:Y
ne N
lt(e) Y Single occurrence only. Requires the presence of an lte or eq spender.id query ?spender.id=lte:X&token.id=lt:Y
gt(e) Y Single occurrence only. Requires the presence of an gte or eq spender.id query ?spender.id=gte:X&token.id=gt:Y

Both filters must be a single occurrence of gt(e) or lt(e) which provide a lower and or upper boundary for search.

GET/api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/tokens
Path parameters
idOrAliasOrEvmAddress*string

Account alias or account id or evm address

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40}|(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8}))$
Query parameters
Response

OK

Body
allowancesTokenAllowances (array of TokenAllowance (all of))
linksLinks (object)
Request
const response = await fetch('/api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/tokens', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "allowances": [
    {
      "amount": 75,
      "amount_granted": 100,
      "owner": "0.0.2",
      "spender": "0.0.2",
      "timestamp": {
        "from": {},
        "to": {}
      },
      "token_id": "0.0.2"
    }
  ],
  "links": {
    "next": null
  }
}

Get past staking reward payouts for an account

Returns information for all past staking reward payouts for an account.

GET/api/v1/accounts/{idOrAliasOrEvmAddress}/rewards
Path parameters
idOrAliasOrEvmAddress*string

Account alias or account id or evm address

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40}|(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8}))$
Query parameters
Response

OK

Body
rewardsarray of StakingReward (object)
linksLinks (object)
Request
const response = await fetch('/api/v1/accounts/{idOrAliasOrEvmAddress}/rewards', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "rewards": [
    {
      "account_id": "0.0.1000",
      "amount": 10,
      "timestamp": "1234567890.000000001"
    }
  ],
  "links": {
    "next": null
  }
}

Balances

The balance object represents the balance of accounts on the Hedera network. You can retrieve this to view the most recent balance of all the accounts on the network at that given time. The balances object returns the account ID and the balance in hbars. Balances are checked on a periodic basis and thus return the most recent snapshot of time captured prior to the request.

List account balances

Returns a list of account and token balances on the network. Balance information returned by this API has a 15 minute granularity as it's generated by an asynchronous balance snapshot process. This information is limited to at most 50 token balances per account as outlined in HIP-367. As such, it's not recommended for general use and we instead recommend using either /api/v1/accounts/{id}/tokens or /api/v1/tokens/{id}/balances to obtain the current token balance information and /api/v1/accounts/{id} to return the current account balance.

GET/api/v1/balances
Query parameters
Response

OK

Body
timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
balancesarray of AccountBalance (object)
linksLinks (object)
Request
const response = await fetch('/api/v1/balances', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "timestamp": "1586567700.453054000",
  "balances": [
    {
      "account": "0.15.10",
      "balance": 80,
      "tokens": [
        {
          "token_id": "0.0.200001",
          "balance": 8
        }
      ]
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

timestamp

The seconds.nanoseconds of the timestamp at which the list of balances for each account are returned

balances

List of balances for each account

account

The ID of the account

balance

The balance of the account

tokens

The tokens that are associated to this account

tokens.token_id

The ID of the token associated to this account

tokens.balance

The token balance for the specified token associated to this account

links.next

Hyperlink to the next page of results

Optional Filtering

Operator
Example
Description

lt (less than)

/api/v1/balances?account.id=lt:0.0.1000

Returns the balances of account IDs less than 1,000

lte (less than or equal to)

/api/v1/balances?account.id=lte:0.0.1000

Returns the balances account IDs less than or equal to 1,000

gt (greater than)

/api/v1/balances?account.id=gt:0.0.1000

Returns the balances of account IDs greater than to 1,000

gte (greater than or equal to)

/api/v1/balances?account.id=gte:0.0.1000

Returns the balances of account IDs greater than or equal to 1,000

order (order asc or desc values)

/api/v1/balances?order=asc

/api/v1/balances?order=desc

Lists balances in ascending order

Lists balances in descending order

Additional Examples

Example Requests
Description

/api/v1/balances?account.id=0.0.1000

Returns balance for account ID 1,000

/api/v1/balances?account.balance=gt:1000

Returns all account IDs that have a balance greater than 1000 tinybars

/api/v1/balances?timestamp=1566562500.040961001

Returns all account balances referencing the latest snapshot that occurred prior to 1566562500 seconds and 040961001 nanoseconds

/api/v1/balances?account.publickey=2b60955bcbf0cf5e9ea880b52e5b6 3f664b08edf6ed15e301049517438d61864

Returns balance information for 2b60955bcbf0cf5e9ea880b52e5b63f664b08edf6ed 15e301049517438d61864 public key

Transactions

The transaction object represents the transactions processed on the Hedera network. You can retrieve this to view the transaction metadata information including transaction id, timestamp, transaction fee, transfer list, etc. If a transaction was submitted to multiple nodes, the successful transaction and duplicate transaction(s) will be returned as separate entries in the response with the same transaction ID. Duplicate transactions will still be assessed network fees.

List transactions

Lists transactions on the network. This includes successful and unsuccessful transactions.

GET/api/v1/transactions
Query parameters
Response

OK

Body
transactionsTransactions (array of Transaction (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/transactions', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "transactions": [
    {
      "bytes": null,
      "charged_tx_fee": 7,
      "consensus_timestamp": "1234567890.000000007",
      "entity_id": "0.0.2281979",
      "max_fee": 33,
      "memo_base64": null,
      "name": "CRYPTOTRANSFER",
      "nft_transfers": [
        {
          "is_approval": true,
          "receiver_account_id": "0.0.121",
          "sender_account_id": "0.0.122",
          "serial_number": 1,
          "token_id": "0.0.123"
        },
        {
          "is_approval": true,
          "receiver_account_id": "0.0.321",
          "sender_account_id": "0.0.422",
          "serial_number": 2,
          "token_id": "0.0.123"
        }
      ],
      "node": "0.0.3",
      "nonce": 0,
      "parent_consensus_timestamp": "1234567890.000000007",
      "result": "SUCCESS",
      "scheduled": false,
      "staking_reward_transfers": [
        {
          "account": 3,
          "amount": 150
        },
        {
          "account": 9,
          "amount": 200
        }
      ],
      "transaction_hash": "vigzKe2J7fv4ktHBbNTSzQmKq7Lzdq1/lJMmHT+a2KgvdhAuadlvS4eKeqKjIRmW",
      "transaction_id": "0.0.8-1234567890-000000006",
      "token_transfers": [
        {
          "token_id": "0.0.90000",
          "account": "0.0.9",
          "amount": 1200,
          "is_approval": false
        },
        {
          "token_id": "0.0.90000",
          "account": "0.0.8",
          "amount": -1200,
          "is_approval": false
        }
      ],
      "transfers": [
        {
          "account": "0.0.3",
          "amount": 2,
          "is_approval": false
        },
        {
          "account": "0.0.8",
          "amount": -3,
          "is_approval": false
        },
        {
          "account": "0.0.98",
          "amount": 1,
          "is_approval": false
        },
        {
          "account": "0.0.800",
          "amount": 150,
          "is_approval": false
        },
        {
          "account": "0.0.800",
          "amount": 200,
          "is_approval": false
        }
      ],
      "valid_duration_seconds": 11,
      "valid_start_timestamp": "1234567890.000000006"
    }
  ],
  "links": {
    "next": null
  }
}

Get transaction by id

Returns transaction information based on the given transaction id

GET/api/v1/transactions/{transactionId}
Path parameters
transactionId*string

Transaction id

Example: "0.0.10-1234567890-000000000"
Query parameters
Response

OK

Body
transactionsTransactionDetails (array of TransactionDetail (all of))
Request
const response = await fetch('/api/v1/transactions/{transactionId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "transactions": [
    {
      "assessed_custom_fees": [
        {
          "amount": 100,
          "collector_account_id": "0.0.10",
          "effective_payer_account_ids": [
            "0.0.8",
            "0.0.72"
          ],
          "token_id": "0.0.90001"
        }
      ],
      "bytes": null,
      "charged_tx_fee": 7,
      "consensus_timestamp": "1234567890.000000007",
      "entity_id": "0.0.2281979",
      "max_fee": 33,
      "memo_base64": null,
      "name": "CRYPTOTRANSFER",
      "nft_transfers": [
        {
          "is_approval": true,
          "receiver_account_id": "0.0.121",
          "sender_account_id": "0.0.122",
          "serial_number": 1,
          "token_id": "0.0.123"
        },
        {
          "is_approval": true,
          "receiver_account_id": "0.0.321",
          "sender_account_id": "0.0.422",
          "serial_number": 2,
          "token_id": "0.0.123"
        }
      ],
      "node": "0.0.3",
      "nonce": 0,
      "parent_consensus_timestamp": "1234567890.000000007",
      "result": "SUCCESS",
      "scheduled": false,
      "staking_reward_transfers": [
        {
          "account": 3,
          "amount": 200
        },
        {
          "account": 9,
          "amount": 300
        }
      ],
      "transaction_hash": "vigzKe2J7fv4ktHBbNTSzQmKq7Lzdq1/lJMmHT+a2KgvdhAuadlvS4eKeqKjIRmW",
      "transaction_id": "0.0.8-1234567890-000000006",
      "token_transfers": [
        {
          "token_id": "0.0.90000",
          "account": "0.0.9",
          "amount": 1200,
          "is_approval": true
        },
        {
          "token_id": "0.0.90000",
          "account": "0.0.8",
          "amount": -1200,
          "is_approval": true
        }
      ],
      "transfers": [
        {
          "account": "0.0.3",
          "amount": 2,
          "is_approval": true
        },
        {
          "account": "0.0.8",
          "amount": -3,
          "is_approval": true
        },
        {
          "account": "0.0.98",
          "amount": 1,
          "is_approval": true
        },
        {
          "account": "0.0.800",
          "amount": 200,
          "is_approval": false
        },
        {
          "account": "0.0.800",
          "amount": 300,
          "is_approval": false
        }
      ],
      "valid_duration_seconds": 11,
      "valid_start_timestamp": "1234567890.000000006"
    }
  ]
}

Response Details

Response Item
Description

consensus timestamp

The consensus timestamp in seconds.nanoseconds

transaction hash

The hash value of the transaction processed on the Hedera network

valid start timestamp

The time the transaction is valid

charged tx fee

The transaction fee that was charged for that transaction

transaction id

The ID of the transaction

memo base64

The memo attached to the transaction encoded in Base64 format

result

Whether the cryptocurrency transaction was successful or not

entity ID

The entity ID that is created from create transactions (AccountCreateTransaction, TopicCreateTransaction, TokenCreateTransaction, ScheduleCreateTransaction, ContractCreateTransaction, FileCreateTransaction).

name

The type of transaction

max fee

The maximum transaction fee the client is willing to pay

valid duration seconds

The seconds for which a submitted transaction is to be deemed valid beyond the start time. The transaction is invalid if consensusTimestamp is greater than transactionValidStart + valid_duration_seconds.

node

The ID of the node that submitted the transaction to the network

transfers

A list of the account IDs the crypto transfer occurred between and the amount that was transferred. A negative (-) sign indicates a debit to that account. The transfer list includes the transfers between the from account and to account, the transfer of the node fee, the transfer of the network fee, and the transfer of the service fee for that transaction. If the transaction was not processed, a network fee is still assessed.

token transfers

The token ID, account, and amount that was transferred to by this account in this transaction. This will not be listed if it did not occur in the transaction

assessed custom fees

The fees that were charged for a custom fee token transfer

links.next

A hyperlink to the next page of responses

Optional Filtering

Operator
Example
Description

lt (less than)

/api/v1/transactions?account.id=lt:0.0.1000

Returns account.id transactions less than 1,000

lte (less than or equal to)

/api/v1/transactions?account.id=lte:0.0.1000

Returns account.id transactions less than or equal to 1,000

gt (greater than)

/api/v1/transactions?account.id=gt:0.0.1000

Returns account.id transactions greater than 1,000

gte (greater than or equal to)

api/v1/transactions?account.id=gte:0.0.1000

Returns account.id transactions greater than or equal to 1,000

order (order asc or desc values)

/api/v1/transactions?order=asc

/api/v1/transactions?order=desc

Lists transactions in ascending order Lists transactions descending order

Note: It is recommended that the account.id query should not select no more than 1000 accounts in a query. If the range specified in the query results in selecting more than 1000 accounts, the API will automatically only search for the first 1000 accounts that match the query in the database and return the transactions for those. For example, if you use ?account.id=gt:0.0.15000 or if you use?account.id=gt:0.0.15000&account.id=lt:0.0.30000, then the API will only return results or some 1000 accounts in this range that match the rest of the query filters.‌

A single transaction can also be returned by specifying the transaction ID in the request. If a transaction was submitted to multiple nodes, the response will return entries for the successful transaction along with separate entries for the duplicate transaction(s). The "result" key indicates "success" for the node that processed the transaction and "DUPLICATE_TRANSACTION" for each additional node submission. Duplicate entries are still charged network fees.

Parameter
Description

{transaction_ID}

A specific transaction can be returned by specifying a transaction ID

Additional Examples

Example Request
Description

/api/v1/transactions/?account.id=0.0.1000

Returns transaction for account ID 1,000

/api/v1/transactions?timestamp=1565779209.711927001

Returns transactions at 1565779209 seconds and 711927001 nanoseconds

/api/v1/transactions?result=fail

Returns all transactions that have failed

/api/v1/transactions?account.id=0.0.13622&type=credit /api/v1/transactions?account.id=0.0.13622&type=debit

Returns all transactions that deposited into an account ID 0.0.13622

Returns all transactions that withdrew from account ID 0.0.13622

/api/v1/transactions?transactionType=cryptotransfer

Returns all cryptotransfer transactions

Topics

List topic messages by id

Returns the list of topic messages for the given topic id.

GET/api/v1/topics/{topicId}/messages
Path parameters
topicId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Query parameters
Response

OK

Body
messagesTopicMessages (array of TopicMessage (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/topics/{topicId}/messages', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "messages": [
    {
      "chunk_info": {
        "initial_transaction_id": "0.0.10-1234567890-000000321",
        "nonce": 3,
        "number": 1,
        "total": 2,
        "scheduled": true
      },
      "consensus_timestamp": "1234567890.000000001",
      "message": "bWVzc2FnZQ==",
      "payer_account_id": "0.0.10",
      "running_hash": "cnVubmluZ19oYXNo",
      "running_hash_version": 2,
      "sequence_number": 1,
      "topic_id": "0.0.7"
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

consensus_timestamp

The consensus timestamp of the message in seconds.nanoseconds

topic_id

The ID of the topic the message was submitted to

payer_account_id

The account ID that paid for the transaction to submit the message

message

The content of the message

running_hash

The new running hash of the topic that received the message

sequence_number

The sequence number of the message relative to all other messages for the same topic

Get topic message by id and sequence number

Returns a single topic message for the given topic id and sequence number.

GET/api/v1/topics/{topicId}/messages/{sequenceNumber}
Path parameters
topicId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
sequenceNumber*integer (int64)

Topic message sequence number

Example: 2
Response

OK

Body
chunk_infonullable ChunkInfo (object)
consensus_timestamp*Timestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
message*string
payer_account_id*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
running_hash*string (byte)
running_hash_version*integer (int32)
sequence_number*integer (int64)
topic_id*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Request
const response = await fetch('/api/v1/topics/{topicId}/messages/{sequenceNumber}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "chunk_info": {
    "initial_transaction_id": "0.0.10-1234567890-000000321",
    "nonce": 3,
    "number": 1,
    "total": 2,
    "scheduled": true
  },
  "consensus_timestamp": "1234567890.000000001",
  "message": "bWVzc2FnZQ==",
  "payer_account_id": "0.0.10",
  "running_hash": "cnVubmluZ19oYXNo",
  "running_hash_version": 2,
  "sequence_number": 1,
  "topic_id": "0.0.7"
}

Get topic message by consensusTimestamp

Returns a topic message the given the consensusTimestamp.

GET/api/v1/topics/messages/{timestamp}
Path parameters
timestamp*string

The Unix timestamp in seconds.nanoseconds format, the timestamp at which the associated transaction reached consensus. See unixtimestamp.com for a simple way to convert a date to the 'seconds' part of the Unix time.

Example: 1234567890.0000007
Pattern: ^\d{1,10}(.\d{1,9})?$
Response

OK

Body
chunk_infonullable ChunkInfo (object)
consensus_timestamp*Timestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
message*string
payer_account_id*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
running_hash*string (byte)
running_hash_version*integer (int32)
sequence_number*integer (int64)
topic_id*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Request
const response = await fetch('/api/v1/topics/messages/{timestamp}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "chunk_info": {
    "initial_transaction_id": "0.0.10-1234567890-000000321",
    "nonce": 3,
    "number": 1,
    "total": 2,
    "scheduled": true
  },
  "consensus_timestamp": "1234567890.000000001",
  "message": "bWVzc2FnZQ==",
  "payer_account_id": "0.0.10",
  "running_hash": "cnVubmluZ19oYXNo",
  "running_hash_version": 2,
  "sequence_number": 1,
  "topic_id": "0.0.7"
}

Tokens

List tokens

Returns a list of tokens on the network.

GET/api/v1/tokens
Query parameters
Response

OK

Body
tokensTokens (array of Token (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/tokens', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "tokens": [
    {
      "admin_key": null,
      "decimals": 3,
      "metadata": "VGhpcyBpcyBhIHRlc3QgTkZU",
      "name": "First Mover",
      "symbol": "FIRSTMOVERLPDJH",
      "token_id": "0.0.1",
      "type": "FUNGIBLE_COMMON"
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

token_Id

The ID of the token in x.y.z format

symbol

The symbol of the token

admin_key

The admin key for the token

type

The type of token (fungible or non-fungible)

Additional Examples

Example Request
Description

/api/v1/tokens?publickey=3c3d546321ff6f63d70 1d2ec5c277095874e19f4a235bee1e6bb19258bf362be

All tokens with matching admin key

/api/v1/tokens?account.id=0.0.8

All tokens for matching account

/api/v1/tokens?token.id=gt:0.0.1001

All tokens in range

/api/v1/tokens?order=desc

All tokens in descending order of token.id

/api/v1/tokens?limit=x

All tokens taking the first x number of tokens

List token balances

Returns a list of token balances given the id. This represents the Token supply distribution across the network

GET/api/v1/tokens/{tokenId}/balances
Path parameters
tokenId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Query parameters
Response

OK

Body
timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
balancesTokenDistribution (array of object)
linksLinks (object)
Request
const response = await fetch('/api/v1/tokens/{tokenId}/balances', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "timestamp": "1586567700.453054000",
  "balances": [
    {
      "account": "0.15.2",
      "balance": 1000,
      "decimals": 3
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

timestamp

The timestamp of the recorded balances in seconds.nanoseconds

balances

The balance of the tokens in those accounts

account

The ID of the account that has the token balance

balance

The balance of the token associated with the account

Additional Examples

Example Request
Description

/api/v1/tokens/<token_id>/balances?order=asc

The balance of the token in ascending order

/api/v1/tokens/<token_id>/balances?account.id=0.0.1000

The balance of the token for account ID 0.0.1000

/api/v1/tokens/<token_id>/balances?account.balance=gt:1000

The balance for the token greater than 1000

/api/v1/tokens/<token_id>/balances?timestamp=1566562500.040961001

The token balances for the specified timestamp

Get token by id

Returns token entity information given the id

GET/api/v1/tokens/{tokenId}
Path parameters
tokenId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Query parameters
Response

OK

Body
admin_keynullable Key (object)

The public key which controls access to various network entities.

auto_renew_accountnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
auto_renew_periodnullable integer (int64)
created_timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
decimalsstring
Example: 1000
deletednullable boolean
Example: true
expiry_timestampnullable integer (int64)
Example: 1234567890100000
fee_schedule_keynullable Key (object)

The public key which controls access to various network entities.

freeze_defaultboolean
Example: false
freeze_keynullable Key (object)

The public key which controls access to various network entities.

initial_supplystring
Example: "1000000"
kyc_keynullable Key (object)

The public key which controls access to various network entities.

max_supplystring
Example: "9223372036854775807"
metadatastring (byte)

Arbitrary binary data associated with this token class encoded in base64.

metadata_keyall of
modified_timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
namestring
Example: "Token name"
memostring
Example: "token memo"
pause_keynullable Key (object)

The public key which controls access to various network entities.

pause_statusenum
Example: "UNPAUSED"
NOT_APPLICABLEPAUSEDUNPAUSED
supply_keynullable Key (object)

The public key which controls access to various network entities.

supply_typeenum
Example: "INFINITE"
FINITEINFINITE
symbolstring
Example: "ORIGINALRDKSE"
token_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
total_supplystring
Example: "1000000"
treasury_account_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
typeenum
Example: "FUNGIBLE_COMMON"
FUNGIBLE_COMMONNON_FUNGIBLE_UNIQUE
wipe_keynullable Key (object)

The public key which controls access to various network entities.

custom_feesCustomFees (object)
Request
const response = await fetch('/api/v1/tokens/{tokenId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "admin_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "auto_renew_account": "0.0.2",
  "auto_renew_period": null,
  "created_timestamp": "1586567700.453054000",
  "decimals": 1000,
  "deleted": true,
  "expiry_timestamp": 1234567890100000,
  "fee_schedule_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "freeze_default": false,
  "freeze_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "initial_supply": "1000000",
  "kyc_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "max_supply": "9223372036854775807",
  "metadata": "Ynl0ZXM=",
  "metadata_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "modified_timestamp": "1586567700.453054000",
  "name": "Token name",
  "memo": "token memo",
  "pause_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "pause_status": "UNPAUSED",
  "supply_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "supply_type": "INFINITE",
  "symbol": "ORIGINALRDKSE",
  "token_id": "0.0.2",
  "total_supply": "1000000",
  "treasury_account_id": "0.0.2",
  "type": "FUNGIBLE_COMMON",
  "wipe_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "custom_fees": {
    "created_timestamp": "1586567700.453054000",
    "fixed_fees": [
      {
        "all_collectors_are_exempt": false,
        "amount": 100,
        "collector_account_id": "0.0.2",
        "denominating_token_id": "0.0.2"
      }
    ],
    "fractional_fees": [
      {
        "all_collectors_are_exempt": false,
        "amount": {
          "numerator": 12,
          "denominator": 29
        },
        "collector_account_id": "0.0.2",
        "denominating_token_id": "0.0.2",
        "maximum": 120,
        "minimum": 30,
        "net_of_transfers": true
      }
    ],
    "royalty_fees": [
      {
        "all_collectors_are_exempt": false,
        "amount": {
          "numerator": 15,
          "denominator": 37
        },
        "collector_account_id": "0.0.2",
        "fallback_fee": {
          "amount": 100,
          "denominating_token_id": "0.0.2"
        }
      }
    ]
  }
}

Response Details

Response Item
Description

admin_key

The token's admin key, if specified

auto_renew_account

The auto renew account ID

auto_renew_period

The period at which the auto renew account will be charged a renewal fee

created_timestamp

The timestamp of when the token was created

decimals

The number of decimal places a token is divisible by

expiry_timestamp

The epoch second at which the token should expire

freeze_default

Whether or not accounts created

fee_schedule_key

The fee schedule key, if any

freeze_key

The freeze key for the token, if specified

initial_supply

The initial supply of the token

kyc_key

The KYC key for the token, if specified

modified_timestamp

The last time the token properties were modified

name

The name of the token

supply_key

The supply key for the token, if specified

symbol

The token symbol

token_id

The token ID

total_supply

The total supply of the token

treasury_account_id

The treasury account of the token

type

whether a token is a fungible or non-fungible token

wipe_key

The wipe key for the token, if specified

custom_fees

The custom fee schedule for the token, if any

pause_key

The pause key for a token, if specified

pause_status

Whether or not the token is paused

List nfts

Returns a list of non-fungible tokens

GET/api/v1/tokens/{tokenId}/nfts
Path parameters
tokenId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Query parameters
Response

OK

Body
nftsarray of Nft (object)
linksLinks (object)
Request
const response = await fetch('/api/v1/tokens/{tokenId}/nfts', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "nfts": [
    {
      "account_id": "0.1.2",
      "created_timestamp": "1234567890.000000001",
      "delegating_spender": "0.0.400",
      "deleted": false,
      "metadata": "VGhpcyBpcyBhIHRlc3QgTkZU",
      "modified_timestamp": "1610682445.003266001",
      "serial_number": 124,
      "spender_id": "0.0.500",
      "token_id": "0.0.222"
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

account_id

The account ID of the account associated with the NFT

created_timestamp

The timestamp of when the NFT was created

deleted

Whether the token was deleted or not

metadata

The meta data of the NFT

modified_timestamp

The last time the token properties were modified

serial_number

The serial number of the NFT

token_id

The token ID of the NFT

Get nft info

Returns information for a non-fungible token

GET/api/v1/tokens/{tokenId}/nfts/{serialNumber}
Path parameters
tokenId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
serialNumber*integer (int64)

The nft serial number

Example: 1
Response

OK

Body
account_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
created_timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
delegating_spendernullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
deletedboolean

whether the nft or the token it belongs to has been deleted

metadatastring (byte)

Arbitrary binary data associated with this NFT encoded in base64.

modified_timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
serial_numberinteger (int64)
Example: 1
spendernullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
token_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Request
const response = await fetch('/api/v1/tokens/{tokenId}/nfts/{serialNumber}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "account_id": "0.1.2",
  "created_timestamp": "1234567890.000000001",
  "delegating_spender": "0.0.400",
  "deleted": false,
  "metadata": "VGhpcyBpcyBhIHRlc3QgTkZU",
  "modified_timestamp": "1610682445.003266001",
  "serial_number": 124,
  "spender_id": "0.0.500",
  "token_id": "0.0.222"
}

Response Details

Response Item
Description

account_id

The account ID of the account associated with the NFT

created_timestamp

The timestamp of when the NFT was created

deleted

Whether the token was deleted or not

metadata

The meta data of the NFT

modified_timestamp

The last time the token properties were modified

serial_number

The serial number of the NFT

token_id

The token ID of the NFT

Get an nfts transction history

Returns a list of transactions for a given non-fungible token

GET/api/v1/tokens/{tokenId}/nfts/{serialNumber}/transactions
Path parameters
tokenId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
serialNumber*integer (int64)

The nft serial number

Example: 1
Query parameters
Response

OK

Body
transactions*array of NftTransactionTransfer (object)
links*Links (object)
Request
const response = await fetch('/api/v1/tokens/{tokenId}/nfts/{serialNumber}/transactions', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "transactions": [
    {
      "consensus_timestamp": "1618591023.997420021",
      "is_approval": false,
      "nonce": 0,
      "receiver_account_id": "0.0.11",
      "sender_account_id": "0.0.10",
      "transaction_id": "0.0.19789-1618591023-997420021",
      "type": "CRYPTOTRANSFER"
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

created_timestamp

The timestamp of the transaction

id

The timestamp of the transaction

receiver_account_id

The account that received the NFT

sender_account_id

The account that sent the NFT

type

The type of transaction

token_id

The token ID of the NFT

Get the network supply

Returns the network's released supply of hbars

GET/api/v1/network/supply
Query parameters
Response

OK

Body
released_supplystring

The network's released supply of hbars in tinybars

Example: "3999999999999999949"
timestampall of
total_supplystring

The network's total supply of hbars in tinybars

Example: "5000000000000000000"
Request
const response = await fetch('/api/v1/network/supply', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "released_supply": "3999999999999999949",
  "timestamp": {},
  "total_supply": "5000000000000000000"
}

Schedule Transactions

List schedules entities

Lists schedules on the network that govern the execution logic of scheduled transactions. This includes executed and non executed schedules.

GET/api/v1/schedules
Query parameters
Response

OK

Body
schedulesSchedules (array of Schedule (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/schedules', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "schedules": [
    {
      "admin_key": {
        "_type": "ProtobufEncoded",
        "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
      },
      "consensus_timestamp": "1586567700.453054000",
      "creator_account_id": "0.0.2",
      "deleted": false,
      "executed_timestamp": "1586567700.453054000",
      "expiration_time": "1586567700.453054000",
      "memo": "created on 02/10/2021",
      "payer_account_id": "0.0.2",
      "schedule_id": "0.0.2",
      "signatures": [
        {
          "consensus_timestamp": "1586567700.453054000",
          "public_key_prefix": "AAEBAwuqAwzB",
          "signature": "3q2+7wABAQMLqgMMwQ==",
          "type": "ED25519"
        }
      ],
      "transaction_body": "Kd6tvu8=",
      "wait_for_expiry": false
    }
  ],
  "links": {
    "next": null
  }
}

Response Details

Response Item
Description

schedules

List of schedules

admin_key

The admin key on the schedule

admin_key_type

The type of key

admin_key_key

The admin public key

consensus_timestamp

The consensus timestamp of when the schedule was created

creator_account_id

The account ID of the creator of the schedule

executed_timestamp

The timestamp at which the transaction that was scheduled was executed at

memo

A string of characters associated with the memo if set

payer_account_id

The account ID of the account paying for the execution of the transaction

schedule_id

The ID of the schedule entity

signatures

The list of keys that signed the transaction

signatures.public_key_prefix

The signatures public key prefix

signatures.signature

The signature of the key that signed the schedule transaction

signatures.type

The type of signature (ED5519 or ECDSA)

transaction_body

The transaction body of the transaction that was scheduled

wait_for_expiry

Whether or not the schedule transaction specified a specific time to expire by

links.next

Hyperlink to the next page of results

Get schedule by id

Returns schedule information based on the given schedule id

GET/api/v1/schedules/{scheduleId}
Path parameters
scheduleId*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
Response

OK

Body
admin_keynullable Key (object)

The public key which controls access to various network entities.

consensus_timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
creator_account_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
deletedboolean
Example: false
executed_timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
expiration_timenullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
memostring
Example: "created on 02/10/2021"
payer_account_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
schedule_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
signaturesarray of ScheduleSignature (object)
transaction_bodystring (byte)
Example: "Kd6tvu8="
wait_for_expiryboolean
Request
const response = await fetch('/api/v1/schedules/{scheduleId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "admin_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "consensus_timestamp": "1586567700.453054000",
  "creator_account_id": "0.0.2",
  "deleted": false,
  "executed_timestamp": "1586567700.453054000",
  "expiration_time": "1586567700.453054000",
  "memo": "created on 02/10/2021",
  "payer_account_id": "0.0.2",
  "schedule_id": "0.0.2",
  "signatures": [
    {
      "consensus_timestamp": "1586567700.453054000",
      "public_key_prefix": "AAEBAwuqAwzB",
      "signature": "3q2+7wABAQMLqgMMwQ==",
      "type": "ED25519"
    }
  ],
  "transaction_body": "Kd6tvu8=",
  "wait_for_expiry": false
}

Response Details

Response Item
Description

adminKey

The admin key on the schedule

adminKey._type

The type of key

adminKey.key

The admin public key

consensus_timestamp

The consensus timestamp of when the schedule was created

creator_account_id

The account ID of the creator of the schedule

executed_timestamp

The timestamp at which the transaction that was scheduled was executed at

memo

A string of characters associated with the memo if set

payer_account_id

The account ID of the account paying for the execution of the transaction

schedule_id

The ID of the schedule entity

signatures

The list of keys that signed the transaction

signatures.consensus_timestamp

The consensus timestamp at which the signature was added

signatures.public_key_prefix

The signatures public key prefix

signatures.signature

The signature of the key that signed the schedule transaction

signatures.type

The type of signature (ED5519 or ECDSA)

transaction_body

The transaction body of the transaction that was scheduled

wait_for_expiry

Whether or not the schedule transaction specified a specific time to expire by

Smart Contracts

List contract entities on network

Returns a list of all contract entity items on the network.

GET/api/v1/contracts
Query parameters
Response

OK

Body
contractsContracts (array of Contract (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "contracts": [
    {
      "admin_key": {
        "_type": "ProtobufEncoded",
        "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
      },
      "auto_renew_account": "0.0.2",
      "auto_renew_period": 7776000,
      "contract_id": "0.0.2",
      "created_timestamp": "1586567700.453054000",
      "deleted": false,
      "evm_address": "0000000000000000000000000000000000001f41",
      "expiration_timestamp": "1586567700.453054000",
      "file_id": "0.0.2",
      "max_automatic_token_associations": 0,
      "memo": "contract memo",
      "obtainer_id": "0.0.2",
      "permanent_removal": false,
      "proxy_account_id": "0.0.2",
      "timestamp": {
        "from": {},
        "to": {}
      }
    }
  ],
  "links": {
    "next": null
  }
}
Response Item
Description

admin_key

The admin key of the contract, if specified

auto_renew_account

The account paying the auto renew fees, if set

auto_renew_period

The period at which the contract auto renews

bytecode

The bytecode of the contract

contract_id

The contract ID

created_timestamp

The timestamp the contract was created at

deleted

Whether or not the contract is deleted

evm_address

The EVM address of the contract

expiration_timestamp

The timestamp of when the contract is set to expire

file_id

The ID of the file that stored the contract bytecode

max_automatic_token_associations

The number of automatic token association slots

memo

The memo of the contract, if specified

obtainer_id

The ID of the account or contract that will receive any remaining balance when the contract is deleted

permanent_removal

Set to true when the system expires a contract

proxy_account_id

The proxy account ID (disabled)

solidity_address

The solidity address

timestamp

The period for which the attributes are valid for

Get contract by id

Return the contract information given an id

GET/api/v1/contracts/{contractIdOrAddress}
Path parameters
contractIdOrAddress*string

The ID or hex encoded EVM address (with or without 0x prefix) associated with this contract.

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40})$
Query parameters
Response

OK

Body
admin_keynullable Key (object)

The public key which controls access to various network entities.

auto_renew_accountnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
auto_renew_periodnullable integer (int64)
Example: 7776000
contract_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
created_timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
deletedboolean
Example: false
evm_addressEvmAddress (string (binary))

A network entity encoded as an EVM address in hex.

Example: "0000000000000000000000000000000000001f41"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
expiration_timestampnullable TimestampNullable (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
file_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
max_automatic_token_associationsnullable integer (int32)
memostring
Example: "contract memo"
obtainer_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
permanent_removalnullable boolean
proxy_account_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
timestampTimestampRange (object)

A timestamp range an entity is valid for

bytecodenullable string (binary)

The contract bytecode in hex during deployment

Example: "0x01021a1fdc9b"
runtime_bytecodenullable string (binary)

The contract bytecode in hex after deployment

Example: "0x0302fa1ad39c"
Request
const response = await fetch('/api/v1/contracts/{contractIdOrAddress}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "admin_key": {
    "_type": "ProtobufEncoded",
    "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
  },
  "auto_renew_account": "0.0.2",
  "auto_renew_period": 7776000,
  "contract_id": "0.0.2",
  "created_timestamp": "1586567700.453054000",
  "deleted": false,
  "evm_address": "0000000000000000000000000000000000001f41",
  "expiration_timestamp": "1586567700.453054000",
  "file_id": "0.0.2",
  "max_automatic_token_associations": 0,
  "memo": "contract memo",
  "obtainer_id": "0.0.2",
  "permanent_removal": false,
  "proxy_account_id": "0.0.2",
  "timestamp": {
    "from": {},
    "to": {}
  },
  "bytecode": "0x01021a1fdc9b",
  "runtime_bytecode": "0x0302fa1ad39c"
}

List contract results from a contract on the network

Returns a list of all ContractResults for a contract's function executions.

GET/api/v1/contracts/{contractIdOrAddress}/results
Path parameters
contractIdOrAddress*string

The ID or hex encoded EVM address (with or without 0x prefix) associated with this contract.

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40})$
Query parameters
Response

OK

Body
resultsContractResults (array of ContractResult (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts/{contractIdOrAddress}/results', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "results": [
    {
      "access_list": "0xabcd",
      "address": "0x25fe26adc577cc89172e6156c9e24f7b9751b762",
      "amount": 10,
      "block_gas_used": 2000,
      "block_hash": "0x6ceecd8bb224da491",
      "block_number": 10,
      "bloom": {},
      "call_result": "0x2b048531b38d2882e86044bc972e940ee0a01938",
      "chain_id": "0x0127",
      "contract_id": "0.0.2",
      "created_contract_ids": [
        "0.0.2"
      ],
      "error_message": "Out of gas",
      "failed_initcode": "0x856739",
      "from": "0x0000000000000000000000000000000000001f41",
      "function_parameters": "0xbb9f02dc6f0e3289f57a1f33b71c73aa8548ab8b",
      "gas_consumed": 35000,
      "gas_limit": 100000,
      "gas_price": "0x4a817c800",
      "gas_used": 80000,
      "hash": "0xfebbaa29c513d124a6377246ea3506ad917d740c21a88f61a1c55ba338fc2bb1",
      "max_fee_per_gas": "0x5",
      "max_priority_fee_per_gas": "0x100",
      "nonce": 1,
      "r": "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043",
      "result": "SUCCESS",
      "s": "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355",
      "status": 1,
      "timestamp": "1586567700.453054000",
      "to": "0x0000000000000000000000000000000000001f41",
      "transaction_index": 1,
      "type": 2,
      "v": 1
    }
  ],
  "links": {
    "next": null
  }
}

The contract state from a contract on the network

Returns a list of all contract's slots. If no timestamp is provided, returns the current state.

GET/api/v1/contracts/{contractIdOrAddress}/state
Path parameters
contractIdOrAddress*string

The ID or hex encoded EVM address (with or without 0x prefix) associated with this contract.

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40})$
Query parameters
Response

OK

Body
statearray of ContractState (object)
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts/{contractIdOrAddress}/state', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "state": [
    {
      "address": "0000000000000000000000000000000000001f41",
      "contract_id": "0.0.2",
      "timestamp": "1586567700.453054000",
      "slot": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "value": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
    }
  ],
  "links": {
    "next": null
  }
}

Get the contract result from a contract on the network executed at a given timestamp

Returns a single ContractResult for a contract's function executions at a specific timestamp.

GET/api/v1/contracts/{contractIdOrAddress}/results/{timestamp}
Path parameters
contractIdOrAddress*string

The ID or hex encoded EVM address (with or without 0x prefix) associated with this contract.

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40})$
timestamp*string

The Unix timestamp in seconds.nanoseconds format, the timestamp at which the associated transaction reached consensus. See unixtimestamp.com for a simple way to convert a date to the 'seconds' part of the Unix time.

Example: 1234567890.0000007
Pattern: ^\d{1,10}(.\d{1,9})?$
Response

OK

Body
access_listnullable string

The hex encoded access_list of the wrapped ethereum transaction

Example: "0xabcd"
addressstring

The hex encoded evm address of contract

Example: "0x25fe26adc577cc89172e6156c9e24f7b9751b762"
amountnullable integer (int64)

The number of tinybars sent to the function

Example: 10
block_gas_usednullable integer (int64)

The total amount of gas used in the block

Example: 2000
block_hashnullable string

The hex encoded block (record file chain) hash

Example: "0x6ceecd8bb224da491"
block_numbernullable integer (int64)

The block height calculated as the number of record files starting from zero since network start.

Example: 10
bloomall of
call_resultnullable string

The hex encoded result returned by the function

Example: "0x2b048531b38d2882e86044bc972e940ee0a01938"
chain_idnullable string

The hex encoded chain_id of the wrapped ethereum transaction

Example: "0x0127"
contract_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
created_contract_idsnullable array of nullable EntityId (string)

The list of smart contracts that were created by the function call.

error_messagenullable string

The message when an error occurs during smart contract execution

Example: "Out of gas"
failed_initcodestring

The hex encoded initcode of a failed contract create transaction

Example: "0x856739"
fromnullable EvmAddressNullable (string (binary))

A network entity encoded as an EVM address in hex.

Example: "0x0000000000000000000000000000000000001f41"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
function_parametersnullable string

The hex encoded parameters passed to the function

Example: "0xbb9f02dc6f0e3289f57a1f33b71c73aa8548ab8b"
gas_consumednullable integer (int64)

The units of consumed gas by the EVM to execute contract

Example: 35000
gas_limitinteger (int64)

The maximum units of gas allowed for contract execution

Example: 100000
gas_pricenullable string

The hex encoded gas_price of the wrapped ethereum transaction

Example: "0x4a817c800"
gas_usednullable integer (int64)

The units of gas used to execute contract

Example: 80000
hashstring

A hex encoded 32 byte hash and it is only populated for Ethereum transaction case

Example: "0xfebbaa29c513d124a6377246ea3506ad917d740c21a88f61a1c55ba338fc2bb1"
max_fee_per_gasnullable string

The hex encoded max_fee_per_gas of the wrapped ethereum transaction

Example: "0x5"
max_priority_fee_per_gasnullable string

The hex encoded max_priority_fee_per_gas of the wrapped ethereum transaction

Example: "0x100"
noncenullable integer (int64)

The nonce of the wrapped ethereum transaction

Example: 1
rnullable string

The hex encoded signature_r of the wrapped ethereum transaction

Example: "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043"
resultstring

The result of the transaction

Example: "SUCCESS"
snullable string

The hex encoded signature_s of the wrapped ethereum transaction

Example: "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355"
statusstring

The status of the transaction, 0x1 for a SUCCESS transaction and 0x0 for all else

Example: 1
timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
tonullable EvmAddressNullable (string (binary))

A network entity encoded as an EVM address in hex.

Example: "0x0000000000000000000000000000000000001f41"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
transaction_indexnullable integer (int64)

The position of the transaction in the block

Example: 1
typenullable integer

The type of the wrapped ethereum transaction, 0 (Pre-Eip1559) or 2 (Post-Eip1559)

Example: 2
vnullable integer

The recovery_id of the wrapped ethereum transaction

Example: 1
access_listnullable string

The hex encoded access_list of the wrapped ethereum transaction

Example: "0xabcd"
addressstring

The hex encoded evm address of contract

Example: "0x25fe26adc577cc89172e6156c9e24f7b9751b762"
block_gas_usednullable integer (int64)

The total amount of gas used in the block

Example: 2000
block_hashnullable string

The hex encoded block (record file chain) hash

Example: "0x6ceecd8bb224da491"
block_numbernullable integer (int64)

The block height calculated as the number of record files starting from zero since network start.

Example: 10
chain_idnullable string

The hex encoded chain_id of the wrapped ethereum transaction

Example: "0x0127"
failed_initcodestring

The hex encoded initcode of a failed contract create transaction

Example: "0x856739"
gas_pricenullable string

The hex encoded gas_price of the wrapped ethereum transaction

Example: "0x4a817c800"
hashstring

The hex encoded transaction hash

Example: "0x3531396130303866616264653464"
logsContractResultLogs (array of ContractResultLog (object))
max_fee_per_gasnullable string

The hex encoded max_fee_per_gas of the wrapped ethereum transaction

Example: "0x5"
max_priority_fee_per_gasnullable string

The hex encoded max_priority_fee_per_gas of the wrapped ethereum transaction

Example: "0x100"
noncenullable integer (int64)

The nonce of the wrapped ethereum transaction

Example: 1
rnullable string

The hex encoded signature_r of the wrapped ethereum transaction

Example: "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043"
snullable string

The hex encoded signature_s of the wrapped ethereum transaction

Example: "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355"
state_changesContractResultStateChanges (array of ContractResultStateChange (object))
transaction_indexnullable integer (int64)

The position of the transaction in the block

Example: 1
typenullable integer

The type of the wrapped ethereum transaction, 0 (Pre-Eip1559) or 2 (Post-Eip1559)

Example: 2
vnullable integer

The recovery_id of the wrapped ethereum transaction

Example: 1
Request
const response = await fetch('/api/v1/contracts/{contractIdOrAddress}/results/{timestamp}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "access_list": "0xabcd",
  "address": "0x25fe26adc577cc89172e6156c9e24f7b9751b762",
  "amount": 10,
  "block_gas_used": 2000,
  "block_hash": "0x6ceecd8bb224da491",
  "block_number": 10,
  "bloom": {},
  "call_result": "0x2b048531b38d2882e86044bc972e940ee0a01938",
  "chain_id": "0x0127",
  "contract_id": "0.0.2",
  "created_contract_ids": [
    "0.0.2"
  ],
  "error_message": "Out of gas",
  "failed_initcode": "0x856739",
  "from": "0x0000000000000000000000000000000000001f41",
  "function_parameters": "0xbb9f02dc6f0e3289f57a1f33b71c73aa8548ab8b",
  "gas_consumed": 35000,
  "gas_limit": 100000,
  "gas_price": "0x4a817c800",
  "gas_used": 80000,
  "hash": "0x3531396130303866616264653464",
  "max_fee_per_gas": "0x5",
  "max_priority_fee_per_gas": "0x100",
  "nonce": 1,
  "r": "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043",
  "result": "SUCCESS",
  "s": "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355",
  "status": 1,
  "timestamp": "1586567700.453054000",
  "to": "0x0000000000000000000000000000000000001f41",
  "transaction_index": 1,
  "type": 2,
  "v": 1,
  "logs": [
    {
      "address": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "bloom": {},
      "contract_id": "0.0.2",
      "data": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "index": 0,
      "topics": [
        "0xf4757a49b326036464bec6fe419a4ae38c8a02ce3e68bf0809674f6aab8ad300"
      ]
    }
  ],
  "state_changes": [
    {
      "address": "0000000000000000000000000000000000001f41",
      "contract_id": "0.0.2",
      "slot": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "value_read": "0x97c1fc0a6ed5551bc831571325e9bdb365d06803100dc20648640ba24ce69750",
      "value_written": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
    }
  ]
}

List contract results from all contracts on the network

Returns a list of all ContractResults for all contract's function executions.

GET/api/v1/contracts/results
Query parameters
Response

OK

Body
resultsContractResults (array of ContractResult (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts/results', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "results": [
    {
      "access_list": "0xabcd",
      "address": "0x25fe26adc577cc89172e6156c9e24f7b9751b762",
      "amount": 10,
      "block_gas_used": 2000,
      "block_hash": "0x6ceecd8bb224da491",
      "block_number": 10,
      "bloom": {},
      "call_result": "0x2b048531b38d2882e86044bc972e940ee0a01938",
      "chain_id": "0x0127",
      "contract_id": "0.0.2",
      "created_contract_ids": [
        "0.0.2"
      ],
      "error_message": "Out of gas",
      "failed_initcode": "0x856739",
      "from": "0x0000000000000000000000000000000000001f41",
      "function_parameters": "0xbb9f02dc6f0e3289f57a1f33b71c73aa8548ab8b",
      "gas_consumed": 35000,
      "gas_limit": 100000,
      "gas_price": "0x4a817c800",
      "gas_used": 80000,
      "hash": "0xfebbaa29c513d124a6377246ea3506ad917d740c21a88f61a1c55ba338fc2bb1",
      "max_fee_per_gas": "0x5",
      "max_priority_fee_per_gas": "0x100",
      "nonce": 1,
      "r": "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043",
      "result": "SUCCESS",
      "s": "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355",
      "status": 1,
      "timestamp": "1586567700.453054000",
      "to": "0x0000000000000000000000000000000000001f41",
      "transaction_index": 1,
      "type": 2,
      "v": 1
    }
  ],
  "links": {
    "next": null
  }
}

Get the contract result from a contract on the network for a given transactionId or ethereum transaction hash

Returns a single ContractResult for a contract's function executions for a given transactionId or ethereum transaction hash.

GET/api/v1/contracts/results/{transactionIdOrHash}
Path parameters
transactionIdOrHash*string

Transaction Id or a 32 byte hash with optional 0x prefix

Pattern: ^(0x)?[A-Fa-f0-9]{64}|(\d{1,10})\.(\d{1,10})\.(\d{1,10})-(\d{1,19})-(\d{1,9})$
Query parameters
Response

OK

Body
access_listnullable string

The hex encoded access_list of the wrapped ethereum transaction

Example: "0xabcd"
addressstring

The hex encoded evm address of contract

Example: "0x25fe26adc577cc89172e6156c9e24f7b9751b762"
amountnullable integer (int64)

The number of tinybars sent to the function

Example: 10
block_gas_usednullable integer (int64)

The total amount of gas used in the block

Example: 2000
block_hashnullable string

The hex encoded block (record file chain) hash

Example: "0x6ceecd8bb224da491"
block_numbernullable integer (int64)

The block height calculated as the number of record files starting from zero since network start.

Example: 10
bloomall of
call_resultnullable string

The hex encoded result returned by the function

Example: "0x2b048531b38d2882e86044bc972e940ee0a01938"
chain_idnullable string

The hex encoded chain_id of the wrapped ethereum transaction

Example: "0x0127"
contract_idnullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
created_contract_idsnullable array of nullable EntityId (string)

The list of smart contracts that were created by the function call.

error_messagenullable string

The message when an error occurs during smart contract execution

Example: "Out of gas"
failed_initcodestring

The hex encoded initcode of a failed contract create transaction

Example: "0x856739"
fromnullable EvmAddressNullable (string (binary))

A network entity encoded as an EVM address in hex.

Example: "0x0000000000000000000000000000000000001f41"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
function_parametersnullable string

The hex encoded parameters passed to the function

Example: "0xbb9f02dc6f0e3289f57a1f33b71c73aa8548ab8b"
gas_consumednullable integer (int64)

The units of consumed gas by the EVM to execute contract

Example: 35000
gas_limitinteger (int64)

The maximum units of gas allowed for contract execution

Example: 100000
gas_pricenullable string

The hex encoded gas_price of the wrapped ethereum transaction

Example: "0x4a817c800"
gas_usednullable integer (int64)

The units of gas used to execute contract

Example: 80000
hashstring

A hex encoded 32 byte hash and it is only populated for Ethereum transaction case

Example: "0xfebbaa29c513d124a6377246ea3506ad917d740c21a88f61a1c55ba338fc2bb1"
max_fee_per_gasnullable string

The hex encoded max_fee_per_gas of the wrapped ethereum transaction

Example: "0x5"
max_priority_fee_per_gasnullable string

The hex encoded max_priority_fee_per_gas of the wrapped ethereum transaction

Example: "0x100"
noncenullable integer (int64)

The nonce of the wrapped ethereum transaction

Example: 1
rnullable string

The hex encoded signature_r of the wrapped ethereum transaction

Example: "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043"
resultstring

The result of the transaction

Example: "SUCCESS"
snullable string

The hex encoded signature_s of the wrapped ethereum transaction

Example: "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355"
statusstring

The status of the transaction, 0x1 for a SUCCESS transaction and 0x0 for all else

Example: 1
timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
tonullable EvmAddressNullable (string (binary))

A network entity encoded as an EVM address in hex.

Example: "0x0000000000000000000000000000000000001f41"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
transaction_indexnullable integer (int64)

The position of the transaction in the block

Example: 1
typenullable integer

The type of the wrapped ethereum transaction, 0 (Pre-Eip1559) or 2 (Post-Eip1559)

Example: 2
vnullable integer

The recovery_id of the wrapped ethereum transaction

Example: 1
access_listnullable string

The hex encoded access_list of the wrapped ethereum transaction

Example: "0xabcd"
addressstring

The hex encoded evm address of contract

Example: "0x25fe26adc577cc89172e6156c9e24f7b9751b762"
block_gas_usednullable integer (int64)

The total amount of gas used in the block

Example: 2000
block_hashnullable string

The hex encoded block (record file chain) hash

Example: "0x6ceecd8bb224da491"
block_numbernullable integer (int64)

The block height calculated as the number of record files starting from zero since network start.

Example: 10
chain_idnullable string

The hex encoded chain_id of the wrapped ethereum transaction

Example: "0x0127"
failed_initcodestring

The hex encoded initcode of a failed contract create transaction

Example: "0x856739"
gas_pricenullable string

The hex encoded gas_price of the wrapped ethereum transaction

Example: "0x4a817c800"
hashstring

The hex encoded transaction hash

Example: "0x3531396130303866616264653464"
logsContractResultLogs (array of ContractResultLog (object))
max_fee_per_gasnullable string

The hex encoded max_fee_per_gas of the wrapped ethereum transaction

Example: "0x5"
max_priority_fee_per_gasnullable string

The hex encoded max_priority_fee_per_gas of the wrapped ethereum transaction

Example: "0x100"
noncenullable integer (int64)

The nonce of the wrapped ethereum transaction

Example: 1
rnullable string

The hex encoded signature_r of the wrapped ethereum transaction

Example: "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043"
snullable string

The hex encoded signature_s of the wrapped ethereum transaction

Example: "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355"
state_changesContractResultStateChanges (array of ContractResultStateChange (object))
transaction_indexnullable integer (int64)

The position of the transaction in the block

Example: 1
typenullable integer

The type of the wrapped ethereum transaction, 0 (Pre-Eip1559) or 2 (Post-Eip1559)

Example: 2
vnullable integer

The recovery_id of the wrapped ethereum transaction

Example: 1
Request
const response = await fetch('/api/v1/contracts/results/{transactionIdOrHash}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "access_list": "0xabcd",
  "address": "0x25fe26adc577cc89172e6156c9e24f7b9751b762",
  "amount": 10,
  "block_gas_used": 2000,
  "block_hash": "0x6ceecd8bb224da491",
  "block_number": 10,
  "bloom": {},
  "call_result": "0x2b048531b38d2882e86044bc972e940ee0a01938",
  "chain_id": "0x0127",
  "contract_id": "0.0.2",
  "created_contract_ids": [
    "0.0.2"
  ],
  "error_message": "Out of gas",
  "failed_initcode": "0x856739",
  "from": "0x0000000000000000000000000000000000001f41",
  "function_parameters": "0xbb9f02dc6f0e3289f57a1f33b71c73aa8548ab8b",
  "gas_consumed": 35000,
  "gas_limit": 100000,
  "gas_price": "0x4a817c800",
  "gas_used": 80000,
  "hash": "0x3531396130303866616264653464",
  "max_fee_per_gas": "0x5",
  "max_priority_fee_per_gas": "0x100",
  "nonce": 1,
  "r": "0xd693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c043",
  "result": "SUCCESS",
  "s": "0x24e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b355",
  "status": 1,
  "timestamp": "1586567700.453054000",
  "to": "0x0000000000000000000000000000000000001f41",
  "transaction_index": 1,
  "type": 2,
  "v": 1,
  "logs": [
    {
      "address": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "bloom": {},
      "contract_id": "0.0.2",
      "data": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "index": 0,
      "topics": [
        "0xf4757a49b326036464bec6fe419a4ae38c8a02ce3e68bf0809674f6aab8ad300"
      ]
    }
  ],
  "state_changes": [
    {
      "address": "0000000000000000000000000000000000001f41",
      "contract_id": "0.0.2",
      "slot": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "value_read": "0x97c1fc0a6ed5551bc831571325e9bdb365d06803100dc20648640ba24ce69750",
      "value_written": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
    }
  ]
}

Get the contract actions from a contract on the network for a given transactionId or ethereum transaction hash

Returns a list of ContractActions for a contract's function executions for a given transactionId or ethereum transaction hash.

GET/api/v1/contracts/results/{transactionIdOrHash}/actions
Path parameters
transactionIdOrHash*string

Transaction Id or a 32 byte hash with optional 0x prefix

Pattern: ^(0x)?[A-Fa-f0-9]{64}|(\d{1,10})\.(\d{1,10})\.(\d{1,10})-(\d{1,19})-(\d{1,9})$
Query parameters
Response

OK

Body
actionsContractActions (array of ContractAction (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts/results/{transactionIdOrHash}/actions', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "actions": [
    {
      "call_depth": 1,
      "call_operation_type": "CALL",
      "call_type": "CALL",
      "caller": "0.0.2",
      "caller_type": "ACCOUNT",
      "from": "0x0000000000000000000000000000000000000065",
      "gas": 50000,
      "gas_used": 50000,
      "index": 0,
      "input": "0x123456",
      "recipient": "0.0.2",
      "recipient_type": "ACCOUNT",
      "result_data": "0x123456",
      "result_data_type": "OUTPUT",
      "timestamp": "1586567700.453054000",
      "to": "0x0000000000000000000000000000000000001f41",
      "value": 50000
    }
  ],
  "links": {
    "next": null
  }
}

Get the opcode traces for a historical transaction on the network with the given transaction ID or hash

Re-executes a transaction and returns a result containing detailed information for the execution, including all values from the {@code stack}, {@code memory} and {@code storage} and the entire trace of opcodes that were executed during the replay.

Note that to provide the output, the transaction needs to be re-executed on the EVM, which may take a significant amount of time to complete if stack and memory information is requested.

GET/api/v1/contracts/results/{transactionIdOrHash}/opcodes
Path parameters
transactionIdOrHash*string

Transaction Id or a 32 byte hash with optional 0x prefix

Pattern: ^(0x)?[A-Fa-f0-9]{64}|(\d{1,10})\.(\d{1,10})\.(\d{1,10})-(\d{1,19})-(\d{1,9})$
Query parameters
Response

OK

Body
address*string (binary)

The address of the transaction recipient in hex. Zero address is set for transactions without a recipient (e.g., contract create)

contract_id*nullable EntityId (string)

Network entity ID in the format of shard.realm.num

Example: "0.0.2"
Pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$
failed*boolean

Whether the transaction failed to be completely processed.

gas*integer (int64)

The gas used in tinybars

opcodes*array of Opcode (object)

The logs produced by the opcode logger

return_value*string (binary)

The returned data from the transaction in hex

Request
const response = await fetch('/api/v1/contracts/results/{transactionIdOrHash}/opcodes', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "address": "binary",
  "contract_id": "0.0.2",
  "failed": false,
  "gas": 0,
  "opcodes": [
    {
      "depth": 0,
      "gas": 0,
      "gas_cost": 0,
      "memory": [
        "binary"
      ],
      "op": "text",
      "pc": 0,
      "reason": "binary",
      "stack": [
        "binary"
      ]
    }
  ],
  "return_value": "binary"
}

List contract logs from a contract on the network

Search the logs of a specific contract across multiple contract calls. Chained logs are not included but can be found by calling /api/v1/contracts/{contractId}/results/{timestamp} or /api/v1/contracts/results/{transactionId}. When searching by topic a timestamp parameter must be supplied and span a time range of at most seven days.

Ordering

The order is governed by the combination of timestamp and index values. If the index param is omitted, the order is determined by the timestamp only.

Note: The default order for this API is currently DESC

Filtering

When filtering there are some restrictions enforced to ensure correctness and scalability.

The table below defines the restrictions and support for the endpoint

Query Param Comparison Operator Support Description Example
index eq Y Single occurrence only. Requires the presence of timestamp ?index=X
ne N
lt(e) Y Single occurrence only. Requires the presence of timestamp ?index=lte:X
gt(e) Y Single occurrence only. Requires the presence of timestamp ?index=gte:X
timestamp eq Y Single occurrence only. ?timestamp=Y
ne N
lt(e) Y Single occurrence only. Optional second timestamp gt(e) ?timestamp=lte:Y
gt(e) Y Single occurrence only. Optional second timestamp lt(e) ?timestamp=gte:Y

Both filters must be a single occurrence of gt(e) or lt(e) which provide a lower and or upper boundary for search.

GET/api/v1/contracts/{contractIdOrAddress}/results/logs
Path parameters
contractIdOrAddress*string

The ID or hex encoded EVM address (with or without 0x prefix) associated with this contract.

Pattern: ^(\d{1,10}\.){0,2}(\d{1,10}|(0x)?[A-Fa-f0-9]{40})$
Query parameters
Response

OK

Body
logsContractLogs (array of ContractLog (all of))
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts/{contractIdOrAddress}/results/logs', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "logs": [
    {
      "address": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "bloom": {},
      "contract_id": "0.0.2",
      "data": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "index": 0,
      "topics": [
        "0xf4757a49b326036464bec6fe419a4ae38c8a02ce3e68bf0809674f6aab8ad300"
      ],
      "block_hash": "0x553f9311833391c0a3b2f9ed64540a89f2190a511986cd94889f1c0cf7fa63e898b1c6730f14a61755d1fb4ca05fb073",
      "block_number": 10,
      "root_contract_id": {},
      "timestamp": "1586567700.453054000",
      "transaction_hash": "0x397022d1e5baeb89d0ab66e6bf602640610e6fb7e55d78638db861e2c6339aa9",
      "transaction_index": 1
    }
  ],
  "links": {
    "next": null
  }
}

List contracts logs across many contracts on the network

Search the logs across many contracts with multiple contract calls. Chained logs are not included but can be found by calling /api/v1/contracts/{contractId}/results/{timestamp} or /api/v1/contracts/results/{transactionId}. When searching by topic a timestamp parameter must be supplied and span a time range of at most seven days.

Ordering

The order is governed by the combination of timestamp and index values. If the index param is omitted, the order is determined by the timestamp only.

Note: The default order for this API is currently DESC

Filtering

When filtering there are some restrictions enforced to ensure correctness and scalability.

The table below defines the restrictions and support for the endpoint

Query Param Comparison Operator Support Description Example
index eq Y Single occurrence only. Requires the presence of timestamp ?index=X
ne N
lt(e) Y Single occurrence only. Requires the presence of timestamp ?index=lte:X
gt(e) Y Single occurrence only. Requires the presence of timestamp ?index=gte:X
timestamp eq Y Single occurrence only. ?timestamp=Y
ne N
lt(e) Y Single occurrence only. Optional second timestamp gt(e) ?timestamp=lte:Y
gt(e) Y Single occurrence only. Optional second timestamp lt(e) ?timestamp=gte:Y

Both filters must be a single occurrence of gt(e) or lt(e) which provide a lower and or upper boundary for search.

GET/api/v1/contracts/results/logs
Query parameters
Response

OK

Body
logsContractLogs (array of ContractLog (all of))
linksLinks (object)
Request
const response = await fetch('/api/v1/contracts/results/logs', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "logs": [
    {
      "address": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "bloom": {},
      "contract_id": "0.0.2",
      "data": "0x00000000000000000000000000000000000000000000000000000000000000fa",
      "index": 0,
      "topics": [
        "0xf4757a49b326036464bec6fe419a4ae38c8a02ce3e68bf0809674f6aab8ad300"
      ],
      "block_hash": "0x553f9311833391c0a3b2f9ed64540a89f2190a511986cd94889f1c0cf7fa63e898b1c6730f14a61755d1fb4ca05fb073",
      "block_number": 10,
      "root_contract_id": {},
      "timestamp": "1586567700.453054000",
      "transaction_hash": "0x397022d1e5baeb89d0ab66e6bf602640610e6fb7e55d78638db861e2c6339aa9",
      "transaction_index": 1
    }
  ],
  "links": {
    "next": null
  }
}

Invoke a smart contract

Returns a result from EVM execution such as cost-free execution of read-only smart contract queries, gas estimation, and transient simulation of read-write operations. If the estimate field is set to true gas estimation is executed. However, gas estimation only supports the latest block. When estimate is false, it can process calls against the earliest block and specific historical blocks when a hexadecimal or decimal block number is provided in the block field for eth_call operations. Link to Supported/Unsupported Operations Table The operations types which are not currently supported should return 501 error status.

POST/api/v1/contracts/call
Body
blocknullable string

Hexadecimal block number or the string "latest", "pending", "earliest". Defaults to "latest".

Example: "latest"
Pattern: ^((0x)?[0-9a-fA-F]+|(earliest|pending|latest))$
datanullable string (binary)

Hexadecimal method signature and encoded parameters. Up to 24656 bytes as at most 49152 hexidecimal digits plus optional leading 0x.

Example: "0x47f1aae7"
Pattern: ^(0x)?[0-9a-fA-F]+$
estimatenullable boolean

Whether gas estimation is called. Defaults to false.

Example: true
fromnullable string (binary)

The 20-byte hexadecimal EVM address the transaction is sent from.

Example: "00000000000000000000000000000000000004e2"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
gasnullable integer (int64)

Gas provided for the transaction execution. Defaults to 15000000.

Example: 15000000
gasPricenullable integer (int64)

Gas price used for each paid gas.

Example: 100000000
to*string (binary)

The 20-byte hexadecimal EVM address the transaction is directed to.

Example: "0xd9d0c5c0ff85758bdf05a7636f8036d4d065f5b6"
Pattern: ^(0x)?[A-Fa-f0-9]{40}$
valuenullable integer (int64)

Value sent with this transaction. Defaults to 0.

Example: 0
Response

OK

Body
resultstring (binary)

Result in hexadecimal from executed contract call.

Example: "0x0000000000006d8d"
Pattern: ^0x[0-9a-fA-F]+$
Request
const response = await fetch('/api/v1/contracts/call', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "to": "0xd9d0c5c0ff85758bdf05a7636f8036d4d065f5b6"
    }),
});
const data = await response.json();
Response
{
  "result": "0x0000000000006d8d"
}

Blocks

List blocks

Returns a list of blocks on the network.

GET/api/v1/blocks
Query parameters
Response

OK

Body
blocksBlocks (array of Block (object))
linksLinks (object)
Request
const response = await fetch('/api/v1/blocks', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "blocks": [
    {
      "count": 3,
      "gas_used": 300000,
      "hapi_version": "0.11.0",
      "hash": "0x3c08bbbee74d287b1dcd3f0ca6d1d2cb92c90883c4acf9747de9f3f3162ad25b999fc7e86699f60f2a3fb3ed9a646c6b",
      "logs_bloom": "0x00000020002000001000000000000000000000000000000000000000000010000000000004000000000000000000000000108000000000000000000080000000000004000000000000000000000000880000000000000000000101000000000000000000000000000000000000008000000000000400000080000000000001000000000000000000000000000000000000000000002000000000100000100000200000040000100000001000000000000000000000000000000001001000004000000000000000000001000000000000000000100000000000100000000000000000000000000000000000000000000000080000100800000000000000120080",
      "name": "2022-05-03T06_46_26.060890949Z.rcd",
      "number": 77,
      "previous_hash": "0xf7d6481f659c866c35391ee230c374f163642ebf13a5e604e04a95a9ca48a298dc2dfa10f51bcbaab8ae23bc6d662a0b",
      "size": 8192,
      "timestamp": {
        "from": "1651560386.060890949",
        "to": "1651560386.661997287"
      }
    }
  ],
  "links": {
    "next": null
  }
}

Get block by hash or number

Returns the block information by given hash or number.

GET/api/v1/blocks/{hashOrNumber}
Path parameters
hashOrNumber*string

Accepts both eth and hedera hash format or block number

Pattern: ^(\d{1,10}|(0x)?([A-Fa-f0-9]{64}|[A-Fa-f0-9]{96}))$
Response

OK

Body
countinteger
gas_usednullable integer (int64)
hapi_versionnullable string
hashstring
logs_bloomnullable string

A hex encoded 256-byte array with 0x prefix

Pattern: ^0x[0-9a-fA-F]{512}$
namestring
numberinteger
previous_hashstring
sizenullable integer
timestampTimestampRange (object)

A timestamp range an entity is valid for

Request
const response = await fetch('/api/v1/blocks/{hashOrNumber}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "count": 3,
  "gas_used": 300000,
  "hapi_version": "0.11.0",
  "hash": "0x3c08bbbee74d287b1dcd3f0ca6d1d2cb92c90883c4acf9747de9f3f3162ad25b999fc7e86699f60f2a3fb3ed9a646c6b",
  "logs_bloom": "0x00000020002000001000000000000000000000000000000000000000000010000000000004000000000000000000000000108000000000000000000080000000000004000000000000000000000000880000000000000000000101000000000000000000000000000000000000008000000000000400000080000000000001000000000000000000000000000000000000000000002000000000100000100000200000040000100000001000000000000000000000000000000001001000004000000000000000000001000000000000000000100000000000100000000000000000000000000000000000000000000000080000100800000000000000120080",
  "name": "2022-05-03T06_46_26.060890949Z.rcd",
  "number": 77,
  "previous_hash": "0xf7d6481f659c866c35391ee230c374f163642ebf13a5e604e04a95a9ca48a298dc2dfa10f51bcbaab8ae23bc6d662a0b",
  "size": 8192,
  "timestamp": {
    "from": "1651560386.060890949",
    "to": "1651560386.661997287"
  }
}

Network

Get the network supply

Returns the network's released supply of hbars

GET/api/v1/network/supply
Query parameters
Response

OK

Body
released_supplystring

The network's released supply of hbars in tinybars

Example: "3999999999999999949"
timestampall of
total_supplystring

The network's total supply of hbars in tinybars

Example: "5000000000000000000"
Request
const response = await fetch('/api/v1/network/supply', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "released_supply": "3999999999999999949",
  "timestamp": {},
  "total_supply": "5000000000000000000"
}

Get the network fees

Returns the estimated gas in tinybars per each transaction type. Default order is ASC. Currently only ContractCall, ContractCreate and EthereumTransaction transaction types are supported.

GET/api/v1/network/fees
Query parameters
Response

OK

Body
feesNetworkFees (array of NetworkFee (object))
timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
Request
const response = await fetch('/api/v1/network/fees', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "fees": [
    {
      "gas": 0,
      "transaction_type": "text"
    }
  ],
  "timestamp": "1586567700.453054000"
}

Get the network exchange rate to estimate costs

Returns the network's exchange rate, current and next.

GET/api/v1/network/exchangerate
Query parameters
Response

OK

Body
current_rateExchangeRate (object)
next_rateExchangeRate (object)
timestampTimestamp (string)

A Unix timestamp in seconds.nanoseconds format

Example: "1586567700.453054000"
Pattern: ^\d{1,10}(\.\d{1,9})?$
Request
const response = await fetch('/api/v1/network/exchangerate', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "current_rate": {
    "cent_equivalent": 596987,
    "expiration_time": 1649689200,
    "hbar_equivalent": 30000
  },
  "next_rate": {
    "cent_equivalent": 596987,
    "expiration_time": 1649689200,
    "hbar_equivalent": 30000
  },
  "timestamp": "1586567700.453054000"
}

Get the network address book nodes

Returns the network's list of nodes used in consensus

GET/api/v1/network/nodes
Query parameters
Response

OK

Body
nodes*NetworkNodes (array of NetworkNode (object))
links*Links (object)
Request
const response = await fetch('/api/v1/network/nodes', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "nodes": [
    {
      "admin_key": {
        "_type": "ED25519",
        "key": "15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743"
      },
      "description": "<p>address book 1</p>",
      "file_id": "0.0.102",
      "max_stake": 50000,
      "memo": "0.0.4",
      "min_stake": 1000,
      "node_account_id": "0.0.4",
      "node_cert_hash": "0x01d173753810c0aae794ba72d5443c292e9ff962b01046220dd99f5816422696e0569c977e2f169e1e5688afc8f4aa16",
      "node_id": 1,
      "public_key": "0x4a5ad514f0957fa170a676210c9bdbddf3bc9519702cf915fa6767a40463b96f",
      "reward_rate_start": 1000000,
      "service_endpoints": [
        {
          "ip_address_v4": "128.0.0.6",
          "port": 50216
        }
      ],
      "stake": 20000,
      "stake_not_rewarded": 19900,
      "stake_rewarded": 100,
      "staking_period": {
        "from": "1655164800.000000000",
        "to": "1655251200.000000000"
      },
      "timestamp": {
        "from": "187654.000123457",
        "to": null
      },
      "__$markdownParsed": true
    }
  ],
  "links": {
    "next": null
  }
}

Get network stake information

Returns the network's current stake information.

GET/api/v1/network/stake
Response

OK

Body
max_stake_rewarded*integer (int64)

The maximum amount of tinybar that can be staked for reward while still achieving the maximum per-hbar reward rate

max_staking_reward_rate_per_hbar*integer (int64)

The maximum reward rate, in tinybars per whole hbar, that any account can receive in a day

max_total_reward*integer (int64)

The total tinybars to be paid as staking rewards in the ending period, after applying the settings for the 0.0.800 balance threshold and the maximum stake rewarded

node_reward_fee_fraction*number (float)

The fraction between zero and one of the network and service fees paid to the node reward account 0.0.801

reserved_staking_rewards*integer (int64)

The amount of the staking reward funds of account 0.0.800 reserved to pay pending rewards that have been earned but not collected

reward_balance_threshold*integer (int64)

The unreserved tinybar balance of account 0.0.800 required to achieve the maximum per-hbar reward rate

stake_total*integer (int64)

The total amount staked to the network in tinybars the start of the current staking period

staking_period*all of
staking_period_duration*integer (int64)

The number of minutes in a staking period

staking_periods_stored*integer (int64)

The number of staking periods for which the reward is stored for each node

staking_reward_fee_fraction*number (float)

The fraction between zero and one of the network and service fees paid to the staking reward account 0.0.800

staking_reward_rate*integer (int64)

The total number of tinybars to be distributed as staking rewards each period

staking_start_threshold*integer (int64)

The minimum balance of staking reward account 0.0.800 required to active rewards

unreserved_staking_reward_balance*integer (int64)

The unreserved balance of account 0.0.800 at the close of the just-ending period; this value is used to compute the HIP-782 balance ratio

Request
const response = await fetch('/api/v1/network/stake', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "max_stake_rewarded": 10,
  "max_staking_reward_rate_per_hbar": 17808,
  "max_total_reward": 20,
  "node_reward_fee_fraction": 1,
  "reserved_staking_rewards": 30,
  "reward_balance_threshold": 40,
  "stake_total": 35000000000000000,
  "staking_period": {
    "from": "1655164800.000000000",
    "to": "1655251200.000000000"
  },
  "staking_period_duration": 1440,
  "staking_periods_stored": 365,
  "staking_reward_fee_fraction": 1,
  "staking_reward_rate": 100000000000,
  "staking_start_threshold": 25000000000000000,
  "unreserved_staking_reward_balance": 50
}

Last updated