openapi: 3.1.0 info: title: Mirror Node REST accounts API version: 0.156.0 license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html description: 'The REST API offers the ability to query transactions and entity information from a mirror node. Base url: [/api/v1](/api/v1) OpenAPI Spec: [/api/v1/docs/openapi.yml](/api/v1/docs/openapi.yml)' contact: name: Mirror Node Team email: mirrornode@hedera.com url: https://github.com/hiero-ledger/hiero-mirror-node servers: - description: The current REST API server url: '' - description: The production REST API servers url: '{scheme}://{network}.mirrornode.hedera.com' variables: scheme: default: https description: The URI scheme enum: - http - https network: default: testnet description: The Hedera network in use enum: - mainnet-public - mainnet - previewnet - testnet tags: - name: accounts description: The accounts object represents the information associated with an account entity and returns a list of account information.The accounts list endpoint is cached and not updated as frequently as the account lookup by a specific ID endpoint. externalDocs: url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api#accounts paths: /api/v1/accounts: get: summary: List account entities on network description: Returns a list of all account entity items on the network. operationId: getAccounts parameters: - $ref: '#/components/parameters/accountBalanceQueryParam' - $ref: '#/components/parameters/accountIdQueryParam' - $ref: '#/components/parameters/accountPublicKeyQueryParam' - $ref: '#/components/parameters/balanceQueryParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AccountsResponse' '400': $ref: '#/components/responses/InvalidParameterError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}: get: summary: Get account by alias, id, or evm address description: '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. ' operationId: getAccount parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParamDesc' - $ref: '#/components/parameters/timestampQueryParam' - $ref: '#/components/parameters/transactionTypeQueryParam' - $ref: '#/components/parameters/transactionsQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AccountBalanceTransactions' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/hooks: get: summary: List hooks for an account description: Returns a list of hooks associated with a given account ID, alias, or EVM address. operationId: getHooks parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/hookIdQueryParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParamDesc' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/HooksResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/hooks/{hookId}/storage: get: summary: Get hook storage slots description: Returns a list of hook storage slots associated with a given hook. operationId: getHookStorage parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/hookIdPathParam' - $ref: '#/components/parameters/keyQueryParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParam' - $ref: '#/components/parameters/timestampQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/HooksStorageResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/nfts: get: summary: Get nfts for an account info description: '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. ' operationId: getNftsByAccountId parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParamDesc' - $ref: '#/components/parameters/serialNumberQueryParam' - $ref: '#/components/parameters/spenderIdQueryParam' - $ref: '#/components/parameters/tokenIdQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Nfts' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/rewards: get: summary: Get past staking reward payouts for an account description: 'Returns information for all past staking reward payouts for an account. ' operationId: getStakingRewards parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParamDesc' - $ref: '#/components/parameters/timestampQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StakingRewardsResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/tokens: get: summary: Get token relationships info for an account description: 'Returns information for all token relationships for an account. ' operationId: getTokensByAccountId parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParam' - $ref: '#/components/parameters/tokenIdQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TokenRelationshipResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/crypto: get: summary: Get crypto allowances for an account info description: Returns information for all crypto allowances for an account. operationId: getCryptoAllowances parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParamDesc' - $ref: '#/components/parameters/spenderIdQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CryptoAllowancesResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/tokens: get: summary: Get fungible token allowances for an account description: '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. ' operationId: getTokenAllowances parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParam' - $ref: '#/components/parameters/spenderIdQueryParam' - $ref: '#/components/parameters/tokenIdQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TokenAllowancesResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts /api/v1/accounts/{idOrAliasOrEvmAddress}/allowances/nfts: get: summary: Get non fungible token allowances for an account description: 'Returns an account''s non-fungible token allowances. ## Ordering The order is governed by a combination of the account ID and the token ID values, with account ID being the parent column. The token ID value governs its order within the given account ID. Note: The default order for this API is currently ascending. The account ID can be the owner or the spender ID depending upon the owner flag. ## 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 | | ------------- | ------------------- | ------- | --------------------- | ------- | | account.id | eq | Y | Single occurrence only. | ?account.id=X | | | ne | N | | | | | lt(e) | Y | Single occurrence only. | ?account.id=lte:X | | | gt(e) | Y | Single occurrence only. | ?account.id=gte:X | | token.id | eq | Y | Single occurrence only. Requires the presence of an **account.id** parameter | ?account.id=X&token.id=eq:Y | | | ne | N | | | | | lt(e) | Y | Single occurrence only. Requires the presence of an **lte** or **eq** **account.id** parameter | ?account.id=lte:X&token.id=lt:Y | | | gt(e) | Y | Single occurrence only. Requires the presence of an **gte** or **eq** **account.id** parameter | ?account.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. ' operationId: getNftAllowances parameters: - $ref: '#/components/parameters/accountIdOrAliasOrEvmAddressPathParam' - $ref: '#/components/parameters/limitQueryParam' - $ref: '#/components/parameters/orderQueryParam' - $ref: '#/components/parameters/accountIdQueryParam' - $ref: '#/components/parameters/tokenIdQueryParam' - $ref: '#/components/parameters/ownerQueryParam' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NftAllowancesResponse' '400': $ref: '#/components/responses/InvalidParameterError' '404': $ref: '#/components/responses/NotFoundError' tags: - accounts components: responses: InvalidParameterError: description: Invalid parameter content: application/json: schema: $ref: '#/components/schemas/Error' example: _status: messages: - message: 'Invalid parameter: account.id' - message: Invalid Transaction id. Please use \shard.realm.num-sss-nnn\ format where sss are seconds and nnn are nanoseconds NotFoundError: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' example: _status: messages: - message: Not found schemas: TokenAllowances: type: array items: $ref: '#/components/schemas/TokenAllowance' EntityIdQuery: type: string pattern: ^((gte?|lte?|eq|ne)\:)?(\d{1,10}\.\d{1,10}\.)?\d{1,10}$ Balance: type: - object - 'null' required: - timestamp - balance - tokens properties: timestamp: $ref: '#/components/schemas/TimestampNullable' balance: format: int64 type: - integer - 'null' tokens: type: array items: type: object properties: token_id: $ref: '#/components/schemas/EntityId' balance: format: int64 type: integer example: timestamp: '0.000002345' balance: 80 tokens: - token_id: 0.0.200001 balance: 8 Nft: type: object properties: account_id: $ref: '#/components/schemas/EntityId' created_timestamp: $ref: '#/components/schemas/TimestampNullable' delegating_spender: $ref: '#/components/schemas/EntityId' deleted: description: whether the nft or the token it belongs to has been deleted type: boolean metadata: description: Arbitrary binary data associated with this NFT encoded in base64. type: string format: byte modified_timestamp: $ref: '#/components/schemas/TimestampNullable' serial_number: example: 1 format: int64 type: integer spender: $ref: '#/components/schemas/EntityId' token_id: $ref: '#/components/schemas/EntityId' example: 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 StakingRewardsResponse: type: object properties: rewards: type: array items: $ref: '#/components/schemas/StakingReward' links: $ref: '#/components/schemas/Links' Nfts: type: object properties: nfts: type: array items: $ref: '#/components/schemas/Nft' links: $ref: '#/components/schemas/Links' AccountsResponse: type: object required: - accounts - links properties: accounts: $ref: '#/components/schemas/Accounts' links: $ref: '#/components/schemas/Links' Hook: type: object required: - admin_key - contract_id - created_timestamp - deleted - extension_point - hook_id - owner_id - timestamp_range - type properties: admin_key: $ref: '#/components/schemas/Key' contract_id: allOf: - $ref: '#/components/schemas/EntityId' description: The contract entity that contains the hook's executing bytecode created_timestamp: allOf: - $ref: '#/components/schemas/TimestampNullable' description: The consensus timestamp when the hook was created deleted: description: Whether the hook has been deleted example: false type: boolean extension_point: description: The extension point this hook implements enum: - ACCOUNT_ALLOWANCE_HOOK example: ACCOUNT_ALLOWANCE_HOOK type: string hook_id: description: The unique identifier for the hook within the owner's scope example: 1 format: int64 type: integer owner_id: allOf: - $ref: '#/components/schemas/EntityId' description: The entity that owns the hook timestamp_range: $ref: '#/components/schemas/TimestampRangeNullable' type: description: The type of the hook implementation enum: - EVM example: EVM type: string TokenAllowancesResponse: type: object properties: allowances: $ref: '#/components/schemas/TokenAllowances' links: $ref: '#/components/schemas/Links' Key: description: The public key which controls access to various network entities. type: - object - 'null' properties: _type: type: string enum: - ECDSA_SECP256K1 - ED25519 - ProtobufEncoded example: ProtobufEncoded key: type: string example: 15706b229b3ba33d4a5a41ff54ce1cfe0a3d308672a33ff382f81583e02bd743 CryptoAllowance: allOf: - $ref: '#/components/schemas/Allowance' - properties: amount: description: The amount remaining of the original amount granted in tinybars. type: integer format: int64 amount_granted: description: The granted amount of the spender's allowance in tinybars. type: integer format: int64 TokenRelationshipResponse: type: object properties: tokens: type: array items: $ref: '#/components/schemas/TokenRelationship' links: $ref: '#/components/schemas/Links' HookStorage: type: object required: - key - timestamp - value properties: key: example: '0x00000000000000000000000000000000000000000000000000000000000f9a17' format: binary type: string value: example: '0x00000000000000000000000000000000000000000000000000000000000f9a17' format: binary type: - string - 'null' timestamp: $ref: '#/components/schemas/Timestamp' Allowance: type: object properties: amount: description: The amount remaining of the original amount granted. format: int64 type: integer example: 75 amount_granted: description: The granted amount of the spender's allowance. format: int64 type: integer example: 100 owner: $ref: '#/components/schemas/EntityId' spender: $ref: '#/components/schemas/EntityId' timestamp: $ref: '#/components/schemas/TimestampRange' AccountBalanceTransactions: allOf: - $ref: '#/components/schemas/AccountInfo' - type: object required: - transactions - links properties: transactions: $ref: '#/components/schemas/Transactions' links: $ref: '#/components/schemas/Links' TimestampRange: type: object description: A timestamp range an entity is valid for properties: from: allOf: - $ref: '#/components/schemas/Timestamp' - description: The inclusive from timestamp in seconds to: allOf: - $ref: '#/components/schemas/TimestampNullable' - description: The exclusive to timestamp in seconds TimestampNullable: description: A Unix timestamp in seconds.nanoseconds format type: - string - 'null' example: '1586567700.453054000' pattern: ^\d{1,10}(\.\d{1,9})?$ CryptoAllowances: type: array items: $ref: '#/components/schemas/CryptoAllowance' CryptoAllowancesResponse: type: object properties: allowances: $ref: '#/components/schemas/CryptoAllowances' links: $ref: '#/components/schemas/Links' TokenAllowance: allOf: - $ref: '#/components/schemas/Allowance' - properties: token_id: $ref: '#/components/schemas/EntityId' AccountInfo: type: object required: - account - alias - auto_renew_period - balance - created_timestamp - decline_reward - deleted - ethereum_nonce - evm_address - expiry_timestamp - key - max_automatic_token_associations - memo - receiver_sig_required - staked_account_id - staked_node_id - stake_period_start properties: account: $ref: '#/components/schemas/EntityId' alias: $ref: '#/components/schemas/Alias' auto_renew_period: type: - integer - 'null' format: int64 balance: $ref: '#/components/schemas/Balance' created_timestamp: $ref: '#/components/schemas/TimestampNullable' decline_reward: description: Whether the account declines receiving a staking reward type: boolean deleted: type: - boolean - 'null' ethereum_nonce: type: - integer - 'null' format: int64 evm_address: $ref: '#/components/schemas/EvmAddressNullable' expiry_timestamp: $ref: '#/components/schemas/TimestampNullable' key: $ref: '#/components/schemas/Key' max_automatic_token_associations: type: - integer - 'null' format: int32 memo: type: - string - 'null' pending_reward: description: '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. ' type: integer format: int64 receiver_sig_required: type: - boolean - 'null' staked_account_id: allOf: - $ref: '#/components/schemas/EntityId' - description: The account to which this account is staking staked_node_id: description: The id of the node to which this account is staking type: - integer - 'null' format: int64 stake_period_start: allOf: - $ref: '#/components/schemas/TimestampNullable' - description: 'The staking period during which either the staking settings for this account changed (such as starting staking or changing stakedNode) or the most recent reward was earned, whichever is later. If this account is not currently staked to a node, then the value is null ' example: 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' HooksStorageResponse: type: object required: - hook_id - links - owner_id - storage properties: hook_id: description: The unique identifier of the hook within the owner's scope example: 1 format: int64 type: integer links: $ref: '#/components/schemas/Links' owner_id: allOf: - $ref: '#/components/schemas/EntityId' - description: The entity that owns the hook storage: type: array items: $ref: '#/components/schemas/HookStorage' TransactionTypes: type: string enum: - ATOMICBATCH - CONSENSUSCREATETOPIC - CONSENSUSDELETETOPIC - CONSENSUSSUBMITMESSAGE - CONSENSUSUPDATETOPIC - CONTRACTCALL - CONTRACTCREATEINSTANCE - CONTRACTDELETEINSTANCE - CONTRACTUPDATEINSTANCE - CRSPUBLICATION - CRYPTOADDLIVEHASH - CRYPTOAPPROVEALLOWANCE - CRYPTOCREATEACCOUNT - CRYPTODELETE - CRYPTODELETEALLOWANCE - CRYPTODELETELIVEHASH - CRYPTOTRANSFER - CRYPTOUPDATEACCOUNT - ETHEREUMTRANSACTION - FILEAPPEND - FILECREATE - FILEDELETE - FILEUPDATE - FREEZE - HINTSKEYPUBLICATION - HINTSPARTIALSIGNATURE - HINTSPREPROCESSINGVOTE - HISTORYPROOFKEYPUBLICATION - HISTORYPROOFSIGNATURE - HISTORYPROOFVOTE - HOOKSTORE - LEDGERIDPUBLICATION - MIGRATIONROOTHASHVOTE - NODECREATE - NODEDELETE - NODESTAKEUPDATE - NODEUPDATE - REGISTEREDNODECREATE - REGISTEREDNODEDELETE - REGISTEREDNODEUPDATE - SCHEDULECREATE - SCHEDULEDELETE - SCHEDULESIGN - STATESIGNATURETRANSACTION - SYSTEMDELETE - SYSTEMUNDELETE - TOKENAIRDROP - TOKENASSOCIATE - TOKENBURN - TOKENCANCELAIRDROP - TOKENCLAIMAIRDROP - TOKENCREATION - TOKENDELETION - TOKENDISSOCIATE - TOKENFEESCHEDULEUPDATE - TOKENFREEZE - TOKENGRANTKYC - TOKENMINT - TOKENPAUSE - TOKENREJECT - TOKENREVOKEKYC - TOKENUNFREEZE - TOKENUNPAUSE - TOKENUPDATE - TOKENUPDATENFTS - TOKENWIPE - UNCHECKEDSUBMIT - UTILPRNG Alias: description: RFC4648 no-padding base32 encoded account alias type: - string - 'null' pattern: ^(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}|[A-Z2-7]{4,5}|[A-Z2-7]{7,8})$ example: HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA Links: type: object properties: next: example: null type: - string - 'null' HooksResponse: type: object required: - hooks - links properties: hooks: type: array items: $ref: '#/components/schemas/Hook' links: $ref: '#/components/schemas/Links' Transactions: type: array items: $ref: '#/components/schemas/Transaction' EntityId: type: - string - 'null' description: Network entity ID in the format of `shard.realm.num` pattern: ^\d{1,10}\.\d{1,10}\.\d{1,10}$ example: 0.0.2 StakingRewardTransfer: type: object description: A staking reward transfer required: - account - amount properties: account: $ref: '#/components/schemas/EntityId' amount: description: The number of tinybars awarded example: 10 format: int64 type: integer example: account_id: 0.0.1000 amount: 10 NftAllowances: type: array items: $ref: '#/components/schemas/NftAllowance' CustomFeeLimit: type: object properties: account_id: $ref: '#/components/schemas/EntityId' amount: example: 100 format: int64 type: integer denominating_token_id: $ref: '#/components/schemas/EntityId' TokenRelationship: type: object properties: automatic_association: type: boolean description: Specifies if the relationship is implicitly/explicitly associated. example: true balance: format: int64 type: integer description: For FUNGIBLE_COMMON, the balance that the account holds in the smallest denomination. For NON_FUNGIBLE_UNIQUE, the number of NFTs held by the account. example: 5 created_timestamp: $ref: '#/components/schemas/Timestamp' decimals: format: int64 type: integer freeze_status: type: string description: The Freeze status of the account. example: UNFROZEN enum: - NOT_APPLICABLE - FROZEN - UNFROZEN kyc_status: type: string description: The KYC status of the account. example: GRANTED enum: - NOT_APPLICABLE - GRANTED - REVOKED token_id: $ref: '#/components/schemas/EntityId' required: - automatic_association - balance - created_timestamp - decimals - freeze_status - kyc_status - token_id example: automatic_association: true balance: 5 created_timestamp: '123456789.000000001' decimals: 3 freeze_status: UNFROZEN kyc_status: GRANTED token_id: 0.0.27335 NftAllowance: type: object properties: approved_for_all: description: A boolean value indicating if the spender has the allowance to spend all NFTs owned by the given owner example: true type: boolean owner: $ref: '#/components/schemas/EntityId' spender: $ref: '#/components/schemas/EntityId' timestamp: $ref: '#/components/schemas/TimestampRange' token_id: $ref: '#/components/schemas/EntityId' example: approved_for_all: false owner: 0.0.11 payer_account_id: 0.0.10 spender: 0.0.15 timestamp: from: '1651560386.060890949' to: '1651560386.661997287' token_id: 0.0.99 required: - approved_for_all - owner - spender - timestamp - token_id NftAllowancesResponse: type: object properties: allowances: $ref: '#/components/schemas/NftAllowances' links: $ref: '#/components/schemas/Links' Timestamp: description: A Unix timestamp in seconds.nanoseconds format type: string example: '1586567700.453054000' pattern: ^\d{1,10}(\.\d{1,9})?$ StakingRewardTransfers: type: array items: $ref: '#/components/schemas/StakingRewardTransfer' Transaction: type: object properties: batch_key: $ref: '#/components/schemas/Key' bytes: type: - string - 'null' format: byte charged_tx_fee: format: int64 type: integer consensus_timestamp: $ref: '#/components/schemas/Timestamp' entity_id: $ref: '#/components/schemas/EntityId' high_volume: description: Whether the transaction used high-volume entity creation throttles and pricing per HIP-1313 type: boolean high_volume_pricing_multiplier: description: The multiplier applied to the transaction fee when high-volume pricing was in effect per HIP-1313, scaled by 1000 (e.g. 1000 = 1x, 4000 = 4x). A value of 0 means high-volume pricing was not applied. Null for pre-HIP-1313 transactions. format: int64 minimum: 0 type: - integer - 'null' max_custom_fees: type: array items: $ref: '#/components/schemas/CustomFeeLimit' max_fee: type: string memo_base64: format: byte type: - string - 'null' name: $ref: '#/components/schemas/TransactionTypes' nft_transfers: type: array items: type: object properties: is_approval: type: boolean receiver_account_id: $ref: '#/components/schemas/EntityId' sender_account_id: $ref: '#/components/schemas/EntityId' serial_number: example: 1 format: int64 type: integer token_id: $ref: '#/components/schemas/EntityId' required: - is_approval - receiver_account_id - sender_account_id - token_id - serial_number node: $ref: '#/components/schemas/EntityId' nonce: type: integer minimum: 0 parent_consensus_timestamp: $ref: '#/components/schemas/TimestampNullable' result: type: string scheduled: type: boolean staking_reward_transfers: $ref: '#/components/schemas/StakingRewardTransfers' token_transfers: type: array items: type: object properties: token_id: $ref: '#/components/schemas/EntityId' account: $ref: '#/components/schemas/EntityId' amount: format: int64 type: integer is_approval: type: boolean required: - token_id - account - amount transaction_hash: type: string format: byte transaction_id: type: string transfers: type: array items: type: object properties: account: $ref: '#/components/schemas/EntityId' amount: format: int64 type: integer is_approval: type: boolean required: - account - amount valid_duration_seconds: type: string valid_start_timestamp: $ref: '#/components/schemas/Timestamp' example: batch_key: _type: ED25519 key: 7934a257a6144fabc8fbdeeaa5810662adb89e7b6978ace46a74fdb2d12bd4b2 bytes: null charged_tx_fee: 7 consensus_timestamp: '1234567890.000000007' entity_id: 0.0.2281979 high_volume: false high_volume_pricing_multiplier: 1 max_custom_fees: - account_id: 0.0.8 amount: 1000 denominating_token_id: 0.0.2000 - account_id: 0.0.8 amount: 1500 denominating_token_id: null 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' Accounts: type: array items: $ref: '#/components/schemas/AccountInfo' StakingReward: type: object properties: account_id: $ref: '#/components/schemas/EntityId' amount: description: The number of tinybars awarded example: 10 format: int64 type: integer timestamp: $ref: '#/components/schemas/Timestamp' required: - account_id - amount - timestamp example: account_id: 0.0.1000 amount: 10 timestamp: '1234567890.000000001' Error: type: object properties: _status: type: object properties: messages: type: array items: type: object properties: data: description: Error message in hexadecimal example: '0x3000' format: binary pattern: ^0x[0-9a-fA-F]+$ type: - string - 'null' detail: description: Detailed error message example: Generic detailed error message type: - string - 'null' message: description: Error message example: Generic error message type: string EvmAddressNullable: type: - string - 'null' description: A network entity encoded as an EVM address in hex. format: binary minLength: 40 maxLength: 42 pattern: ^(0x)?[A-Fa-f0-9]{40}$ example: '0x0000000000000000000000000000000000001f41' TimestampRangeNullable: type: - object - 'null' description: A timestamp range an entity is valid for properties: from: allOf: - $ref: '#/components/schemas/Timestamp' - description: The inclusive from timestamp in seconds to: allOf: - $ref: '#/components/schemas/TimestampNullable' - description: The exclusive to timestamp in seconds parameters: serialNumberQueryParam: name: serialnumber in: query explode: true description: The nft serial number (64 bit type). Requires a tokenId value also be populated. examples: noValue: summary: -- value: '' serialNumNoOperator: summary: Example of serialNum equals with no operator value: 100 serialNumEqOperator: summary: Example of serialNum equals operator value: eq:200 serialNumGtOperator: summary: Example of serialNum greater than operator value: gt:400 serialNumGteOperator: summary: Example of serialNum greater than or equals operator value: gte:500 serialNumLtOperator: summary: Example of serialNum less than operator value: lt:600 serialNumLteOperator: summary: Example of serialNum less than or equals operator value: lte:700 schema: type: string pattern: ^((eq|gt|gte|lt|lte):)?\d{1,19}?$ hookIdPathParam: description: The ID of the hook example: 1234 in: path name: hookId schema: format: int64 type: integer minimum: 0 maximum: 9223372036854776000 required: true spenderIdQueryParam: name: spender.id description: The ID of the spender to return information for in: query examples: noValue: summary: -- value: '' entityNumNoOperator: summary: Example of entityNum equals with no operator value: 100 idNoOperator: summary: Example of id equals with no operator value: 0.0.100 entityNumEqOperator: summary: Example of entityNum equals operator value: eq:200 idEqOperator: summary: Example of id equals operator value: eq:0.0.200 idGtOperator: summary: Example of id greather than operator value: gt:0.0.200 idGteOperator: summary: Example of id greather than or equal to operator value: gte:0.0.200 idLtOperator: summary: Example of id less than operator value: lt:0.0.200 idLteOperator: summary: Example of id less than or equal to operator value: lte:0.0.200 schema: $ref: '#/components/schemas/EntityIdQuery' orderQueryParamDesc: name: order in: query description: The order in which items are listed example: asc schema: enum: - asc - desc default: desc accountBalanceQueryParam: name: account.balance in: query description: The optional balance value to compare against explode: true examples: noValue: summary: -- value: '' noOperator: summary: Example of equals with no operator value: 100 eqOperator: summary: Example of equals operator value: eq:200 neOperator: summary: Example of not equals operator value: ne:300 gtOperator: summary: Example of greater than operator value: gt:400 gteOperator: summary: Example of greater than or equals operator value: gte:500 ltOperator: summary: Example of less than operator value: lt:600 lteOperator: summary: Example of less than or equals operator value: lte:700 schema: type: string pattern: ^((gte?|lte?|eq|ne)\:)?\d{1,10}$ transactionsQueryParam: name: transactions description: If provided and set to false transactions will not be included in the response in: query example: true schema: type: boolean default: true ownerQueryParam: name: owner description: When the owner value is true or omitted, the accountId path parameter will specify the ID of the owner, and the API will retrieve the allowances that the owner has granted to different spenders. Conversely, when the owner value is false, the accountId path parameter will indicate the ID of the spender who has an allowance, and the API will instead provide the allowances granted to the spender by different owners of those tokens. in: query example: true schema: type: boolean default: true orderQueryParam: name: order in: query description: The order in which items are listed example: desc schema: enum: - asc - desc default: asc transactionTypeQueryParam: name: transactiontype in: query example: null schema: $ref: '#/components/schemas/TransactionTypes' hookIdQueryParam: description: The ID of the hook example: 1234 in: query name: hook.id schema: format: int64 type: integer minimum: 1 maximum: 9223372036854776000 required: false keyQueryParam: description: A string representing a pair of operator:address of a hook storage entry examples: zeroXPrefix: summary: Example of key equals operator with 0x prefix value: eq:0x00000000000000000000000000000000000000000000000000000000000f9a15 noZeroPadding: summary: Example of key equals operator without zero padding value: eq:f9a15 noOperator: summary: Example of key equals with no operator value: 00000000000000000000000000000000000000000000000000000000000f9a15 eqOperator: summary: Example of key equals operator value: eq:00000000000000000000000000000000000000000000000000000000000f9a15 gtOperator: summary: Example of key gt operator value: gt:00000000000000000000000000000000000000000000000000000000000f9a15 gteOperator: summary: Example of key gte operator value: gte:00000000000000000000000000000000000000000000000000000000000f9a15 ltOperator: summary: Example of key lt operator value: lt:00000000000000000000000000000000000000000000000000000000000f9a15 lteOperator: summary: Example of key lte operator value: lte:00000000000000000000000000000000000000000000000000000000000f9a15 in: query name: key schema: example: eq:0x00000000000000000000000000000000000000000000000000000000000f9a10 pattern: ^((eq|gte?|lte?)\:)?(0x)?[0-9A-Fa-f]{1,64}$ type: string accountIdQueryParam: name: account.id in: query description: The ID of the account to return information for explode: true examples: noValue: summary: -- value: '' entityNumNoOperator: summary: Example of entityNum equals with no operator value: 100 idNoOperator: summary: Example of id equals with no operator value: 0.0.100 entityNumEqOperator: summary: Example of entityNum equals operator value: eq:200 idEqOperator: summary: Example of id equals operator value: eq:0.0.200 entityNumNeOperator: summary: Example of entityNum not equals operator value: ne:300 idNeOperator: summary: Example of id not equals operator value: ne:0.0.300 entityNumGtOperator: summary: Example of entityNum greater than operator value: gt:400 idGtOperator: summary: Example of id greater than operator value: gt:0.0.400 entityNumGteOperator: summary: Example of entityNum greater than or equals operator value: gte:500 idGteOperator: summary: Example of id greater than or equals operator value: gte:0.0.500 entityNumLtOperator: summary: Example of entityNum less than operator value: lt:600 idLtOperator: summary: Example of id less than operator value: lt:0.0.600 entityNumLteOperator: summary: Example of entityNum less than or equals operator value: lte:700 idLteOperator: summary: Example of id less than or equals operator value: lte:0.0.700 schema: $ref: '#/components/schemas/EntityIdQuery' accountIdOrAliasOrEvmAddressPathParam: name: idOrAliasOrEvmAddress in: path description: Account alias or account id or evm address required: true examples: aliasOnly: value: HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA realmAlias: value: 0.HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA shardRealmAlias: value: 0.1.HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA accountNumOnly: value: 8 realmAccountNum: value: 0.8 shardRealmAccountNum: value: 0.0.8 evmAddress: value: ac384c53f03855fa1b3616052f8ba32c6c2a2fec evmAddressWithPrefix: value: 9.832019034092927e+47 evmAddressWithShardAndRealm: value: 0.0.ac384c53f03855fa1b3616052f8ba32c6c2a2fec schema: 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}))$ type: string accountPublicKeyQueryParam: name: account.publickey in: query description: The account's public key to compare against example: 3c3d546321ff6f63d701d2ec5c277095874e19f4a235bee1e6bb19258bf362be schema: type: string limitQueryParam: name: limit in: query description: The maximum number of items to return example: 2 schema: format: int32 type: integer default: 25 minimum: 1 maximum: 100 tokenIdQueryParam: name: token.id description: The ID of the token to return information for in: query examples: noValue: summary: -- value: '' tokenNumAlias: summary: Example of token num alias equals with no operator value: 64 entityNumNoOperator: summary: Example of entityNum equals with no operator value: 100 idNoOperator: summary: Example of id equals with no operator value: 0.0.100 entityNumEqOperator: summary: Example of entityNum equals operator value: eq:200 idEqOperator: summary: Example of id equals operator value: eq:0.0.200 entityNumNeOperator: summary: Example of entityNum not equals operator value: ne:300 idNeOperator: summary: Example of id not equals operator value: ne:0.0.300 entityNumGtOperator: summary: Example of entityNum greater than operator value: gt:400 idGtOperator: summary: Example of id greater than operator value: gt:0.0.400 entityNumGteOperator: summary: Example of entityNum greater than or equals operator value: gte:500 idGteOperator: summary: Example of id greater than or equals operator value: gte:0.0.500 entityNumLtOperator: summary: Example of entityNum less than operator value: lt:600 idLtOperator: summary: Example of id less than operator value: lt:0.0.600 entityNumLteOperator: summary: Example of entityNum less than or equals operator value: lte:700 idLteOperator: summary: Example of id less than or equals operator value: lte:0.0.700 schema: $ref: '#/components/schemas/EntityIdQuery' timestampQueryParam: description: The consensus timestamp as a Unix timestamp in seconds.nanoseconds format with an optional comparison operator. See [unixtimestamp.com](https://www.unixtimestamp.com/) for a simple way to convert a date to the 'seconds' part of the Unix time. name: timestamp in: query explode: true examples: noValue: summary: -- value: '' secondsNoOperator: summary: Example of seconds equals with no operator value: 1234567890 timestampNoOperator: summary: Example of timestamp equals with no operator value: 1234567890 secondsEqOperator: summary: Example of seconds equals with operator value: eq:1234567890 timestampEqOperator: summary: Example of timestamp equals with operator value: eq:1234567890.000000200 secondsNeOperator: summary: Example of seconds not equals operator value: ne:1234567890 timestampNeOperator: summary: Example of timestamp not equals operator value: ne:1234567890.000000300 secondsGtOperator: summary: Example of seconds greater than operator value: gt:1234567890 timestampGtOperator: summary: Example of timestamp greater than operator value: gt:1234567890.000000400 secondsGteOperator: summary: Example of seconds greater than or equals operator value: gte:1234567890 timestampGteOperator: summary: Example of timestamp greater than or equals operator value: gte:1234567890.000000500 secondsLtOperator: summary: Example of seconds less than operator value: lt:1234567890 timestampLtOperator: summary: Example of timestamp less than operator value: lt:1234567890.000000600 secondsLteOperator: summary: Example of seconds less than or equals operator value: lte:1234567890 timestampLteOperator: summary: Example of timestamp less than or equals operator value: lte:1234567890.000000700 schema: type: array items: type: string pattern: ^((eq|gt|gte|lt|lte|ne):)?\d{1,10}(\.\d{1,9})?$ balanceQueryParam: name: balance in: query description: Whether to include balance information or not. If included, token balances are limited to at most 50 per account as outlined in HIP-367. If multiple values are provided the last value will be the only value used. example: true schema: type: boolean default: true externalDocs: description: REST API Docs url: https://docs.hedera.com/guides/docs/mirror-node-api/cryptocurrency-api