See More

{ "openrpc": "1.2.6", "info": { "title": "Hyperliquid Debug API", "description": "Quicknode Hyperliquid Debug API reference", "version": "1.0.0" }, "methods": [ { "name": "debug_getBadBlocks", "summary": "Returns a list of the last bad blocks that the client has seen on the network.", "description": "Returns a list of the last bad blocks that the client has seen on the network.", "params": [], "result": { "name": "array", "description": "Array of bad block objects with the following fields:", "schema": { "type": "array", "items": { "type": "object", "properties": { "hash": { "type": "string", "description": "The hash of the bad block" }, "block": { "type": "object", "properties": { "baseFeePerGas": { "type": "string", "description": "The base fee per gas for this block encoded as hexadecimal" }, "difficulty": { "type": "string", "description": "The integer of the difficulty for this block encoded as hexadecimal" }, "extraData": { "type": "string", "description": "The extra data field of this block" }, "gasLimit": { "type": "string", "description": "The maximum gas allowed in this block encoded as hexadecimal" }, "gasUsed": { "type": "string", "description": "The total used gas by all transactions in this block encoded as hexadecimal" }, "hash": { "type": "string", "description": "The block hash of the requested block. Null if pending" }, "logsBloom": { "type": "string", "description": "The bloom filter for the logs of the block. Null if pending" }, "miner": { "type": "string", "description": "The address of the beneficiary to whom the mining rewards were given" }, "mixHash": { "type": "string", "description": "A string of a 256-bit hash encoded as hexadecimal" }, "nonce": { "type": "string", "description": "The hash of the generated proof-of-work. Null if pending" }, "number": { "type": "string", "description": "The block number of the requested block encoded as hexadecimal. Null if pending" }, "parentHash": { "type": "string", "description": "The hash of the parent block" }, "receiptsRoot": { "type": "string", "description": "The root of the receipts trie of the block" }, "sha3Uncles": { "type": "string", "description": "The SHA3 of the uncles data in the block" }, "size": { "type": "string", "description": "The size of this block in bytes as an Integer value encoded as hexadecimal" }, "stateRoot": { "type": "string", "description": "The root of the final state trie of the block" }, "timestamp": { "type": "string", "description": "The unix timestamp for when the block was collated" }, "transactions": { "type": "array", "items": { "type": "object", "properties": { "blockHash": { "type": "string", "description": "The hash of the block where this transaction was in. Null when it's a pending transaction" }, "blockNumber": { "type": "string", "description": "The block number where this transaction was in. Null when it's a pending transaction" }, "from": { "type": "string", "description": "The address of the sender" }, "gas": { "type": "string", "description": "The gas provided by the sender, encoded as hexadecimal" }, "gasPrice": { "type": "string", "description": "The gas price provided by the sender in wei, encoded as hexadecimal" }, "maxFeePerGas": { "type": "string", "description": "The maximum fee per gas set in the transaction" }, "maxPriorityFeePerGas": { "type": "string", "description": "The maximum priority gas fee set in the transaction" }, "hash": { "type": "string", "description": "The hash of the transaction" }, "input": { "type": "string", "description": "The data sent along with the transaction" }, "nonce": { "type": "string", "description": "The number of transactions made by the sender before this one encoded as hexadecimal" }, "to": { "type": "string", "description": "The address of the receiver. Null when it's a contract creation transaction" }, "transactionIndex": { "type": "string", "description": "The integer of the transaction's index position. Null when it's a pending transaction" }, "value": { "type": "string", "description": "The value transferred in wei encoded as hexadecimal" }, "type": { "type": "string", "description": "The transaction type" }, "accessList": { "type": "array", "items": {}, "description": "A list of addresses and storage keys that the transaction plans to access" }, "chainId": { "type": "string", "description": "The chain id of the transaction, if any" }, "v": { "type": "string", "description": "The standardized V field of the signature" }, "r": { "type": "string", "description": "The R field of the signature" }, "s": { "type": "string", "description": "The S field of the signature" } } }, "description": "An array of transaction objects with the following fields:" }, "transactionsRoot": { "type": "string", "description": "The root of the transaction trie of the block" }, "uncles": { "type": "array", "items": {}, "description": "An array of uncle hashes" } }, "description": "A block object, or null when no block was found" }, "rlp": { "type": "string", "description": "The RLP encoded header" } } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_getBadBlocks" } }, { "name": "debug_getRawBlock", "summary": "Retrieves the full unprocessed block data for a given block.", "description": "Retrieves the full unprocessed block data for a given block. This method returns the entire block in its original encoded form, comprising the header and all associated transactions.", "params": [ { "name": "blockNumber", "description": "The block number as a string in hexadecimal format or tags. The supported tag values include earliest for the earliest/genesis block, latest for the latest mined block, pending for the pending state/transactions, safe for the most recent secure block, and finalized for the most recent secure block accepted by more than 2/3 of validators", "required": true, "schema": { "type": "string" } } ], "result": { "name": "result", "description": "The RLP-encoded block data as a hexadecimal string, comprising the header and all associated transactions", "schema": { "type": "string" } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_getRawBlock" } }, { "name": "debug_getRawHeader", "summary": "Fetches the raw header information for a specified block.", "description": "Fetches the raw header information for a specified block. This method delivers the entire block header in its native encoded form, well-suited for granular blockchain analysis and debugging purposes.", "params": [ { "name": "blockNumber", "description": "The block number as a string in hexadecimal format or tags. The supported tag values include earliest for the earliest/genesis block, latest for the latest mined block, pending for the pending state/transactions, safe for the most recent secure block, and finalized for the most recent secure block accepted by more than 2/3 of validators", "required": true, "schema": { "type": "string" } } ], "result": { "name": "result", "description": "The RLP-encoded block header as a hexadecimal string", "schema": { "type": "string" } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_getRawHeader" } }, { "name": "debug_getRawReceipts", "summary": "Retrieves the unprocessed receipt data for every transaction within a given block.", "description": "Retrieves the unprocessed receipt data for every transaction within a given block. This method delivers the full receipt information in its original encoded format for all transactions contained in the block.", "params": [ { "name": "blockNumber", "description": "The block number as a string in hexadecimal format or tags. The supported tag values include earliest for the earliest/genesis block, latest for the latest mined block, pending for the pending state/transactions, safe for the most recent secure block, and finalized for the most recent secure block accepted by more than 2/3 of validators", "required": true, "schema": { "type": "string" } } ], "result": { "name": "result", "description": "An array of RLP-encoded receipt data as hexadecimal strings, one for each transaction in the block", "schema": { "type": "array", "items": {} } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_getRawReceipts" } }, { "name": "debug_getRawTransaction", "summary": "Returns the bytes of the transaction.", "description": "Returns the bytes of the transaction.", "params": [ { "name": "transactionHash", "description": "The hash of the transaction to retrieve, encoded in hexadecimal format", "required": true, "schema": { "type": "string" } } ], "result": { "name": "result", "description": "The RLP-encoded transaction data as a hexadecimal string", "schema": { "type": "string" } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_getRawTransaction" } }, { "name": "debug_storageRangeAt", "summary": "Returns the contract storage for the specified range.", "description": "Returns the contract storage for the specified range.", "params": [ { "name": "blockHash", "description": "The hash of the block", "required": true, "schema": { "type": "string" } }, { "name": "txIndex", "description": "The transaction index for the point in which we want the list of accounts", "required": true, "schema": { "type": "integer" } }, { "name": "address", "description": "The contract address", "required": true, "schema": { "type": "string" } }, { "name": "startKey", "description": "The offset (hash of storage key)", "required": true, "schema": { "type": "string" } }, { "name": "limit", "description": "The number of storage entries to return", "required": true, "schema": { "type": "string" } } ], "result": { "name": "result", "description": "Storage range result object with the following fields:", "schema": { "type": "object", "properties": { "storage": { "type": "object", "properties": { "hash": { "type": "object", "properties": { "key": { "type": "string", "description": "The key associated with the hash" }, "value": { "type": "string", "description": "The value associated with the hash" } }, "description": "Storage entry object with key-value pair" } }, "description": "An object with hash values, and for each of them the key and value it represents" }, "nextKey": { "type": "string", "description": "(Optional) The hash of next key if further storage in range. Otherwise, not included" } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_storageRangeAt" } }, { "name": "debug_traceBlock", "summary": "Returns a full stack trace of all invoked opcodes of all transactions that were included in a block.", "description": "Returns a full stack trace of all invoked opcodes of all transactions that were included in a block.", "params": [ { "name": "block", "description": "The RLP encoded block", "required": true, "schema": { "type": "string" } }, { "name": "object", "description": "The tracer object with the following fields:", "required": true, "schema": { "type": "object", "properties": { "tracer": { "enum": [ "callTracer", "prestateTracer" ], "description": "The type of tracer. It could be callTracer or prestateTracer" }, "tracerConfig": { "type": "object", "properties": { "onlyTopCall": { "type": "boolean", "description": "When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame" } }, "description": "The object to specify the configurations of the tracer" } } } } ], "result": { "name": "result", "description": "Array of transaction trace results with the following fields:", "schema": { "type": "array", "items": { "type": "object", "properties": { "result": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of the call" }, "from": { "type": "string", "description": "The address the transaction is sent from" }, "to": { "type": "string", "description": "The address the transaction is directed to" }, "value": { "type": "string", "description": "The integer of the value sent with this transaction" }, "gas": { "type": "string", "description": "The integer of the gas provided for the transaction execution" }, "gasUsed": { "type": "string", "description": "The integer of the gas used" }, "input": { "type": "string", "description": "The data given at the time of input" }, "output": { "type": "string", "description": "The data which is returned as an output" }, "error": { "type": "string", "description": "(Optional) Error message if the transaction execution failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason when transaction execution failed" }, "calls": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of call (CALL, STATICCALL, DELEGATECALL)" }, "from": { "type": "string", "description": "The address the call is sent from" }, "to": { "type": "string", "description": "The address the call is directed to" }, "gas": { "type": "string", "description": "The gas provided for the call execution" }, "gasUsed": { "type": "string", "description": "The gas used by the call" }, "input": { "type": "string", "description": "The call data" }, "output": { "type": "string", "description": "(Optional) The call output data" }, "value": { "type": "string", "description": "The value transferred in the call" }, "error": { "type": "string", "description": "(Optional) Error message if the call failed" }, "calls": { "type": "array", "items": {}, "description": "Nested sub-calls" } } }, "description": "A list of sub-calls made during transaction execution" } }, "description": "The trace result object for each transaction" }, "txHash": { "type": "string", "description": "The transaction hash" } } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_traceBlock" } }, { "name": "debug_traceBlockByHash", "summary": "Returns the possible tracing result number by executing all transactions in the block specified by the block hash with a", "description": "Returns the possible tracing result number by executing all transactions in the block specified by the block hash with a tracer.", "params": [ { "name": "blockHash", "description": "The hash of the block to be traced", "required": true, "schema": { "type": "string" } }, { "name": "object", "description": "The tracer object with the following fields:", "required": true, "schema": { "type": "object", "properties": { "tracer": { "enum": [ "callTracer", "prestateTracer" ], "description": "The type of tracer. It could be callTracer or prestateTracer" }, "tracerConfig": { "type": "object", "properties": { "onlyTopCall": { "type": "boolean", "description": "When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame" } }, "description": "The object to specify the configurations of the tracer" } } } } ], "result": { "name": "result", "description": "debug_traceBlockByHash result", "schema": { "type": "object", "properties": { "result": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the transaction is sent from" }, "gas": { "type": "string", "description": "The integer of the gas provided for the transaction execution" }, "gasUsed": { "type": "string", "description": "The integer of the gas used" }, "to": { "type": "string", "description": "The address the transaction is directed to" }, "input": { "type": "string", "description": "The data given at the time of input" }, "output": { "type": "string", "description": "(Optional) The data which is returned as an output" }, "error": { "type": "string", "description": "(Optional) Error message if the transaction execution failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason when transaction execution failed" }, "calls": { "type": "array", "items": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the call is sent from" }, "gas": { "type": "string", "description": "The gas provided for the call execution" }, "gasUsed": { "type": "string", "description": "The gas used by the call" }, "to": { "type": "string", "description": "The address the call is directed to" }, "input": { "type": "string", "description": "The call data" }, "output": { "type": "string", "description": "(Optional) The call output data" }, "type": { "type": "string", "description": "The type of call (CALL, STATICCALL, DELEGATECALL)" }, "value": { "type": "string", "description": "The value transferred in the call" }, "error": { "type": "string", "description": "(Optional) Error message if the call failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason if the call failed" }, "calls": { "type": "array", "items": {}, "description": "Nested sub-calls" } } }, "description": "A list of sub-calls made during transaction execution" }, "value": { "type": "string", "description": "The value transferred in the transaction" }, "type": { "type": "string", "description": "The type of transaction call" } }, "description": "The trace result object" }, "txHash": { "type": "string", "description": "The transaction hash" } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_traceBlockByHash" } }, { "name": "debug_traceBlockByNumber", "summary": "Returns the tracing result by executing all transactions in the block specified by number with a tracer.", "description": "Returns the tracing result by executing all transactions in the block specified by number with a tracer.", "params": [ { "name": "blockNumber", "description": "The block number as a string in hexadecimal format or tags. The supported tag values include earliest for the earliest/genesis block, latest for the latest mined block, pending for the pending state/transactions, safe for the most recent secure block, and finalized for the most recent secure block accepted by more than 2/3 of validators", "required": true, "schema": { "type": "string" } }, { "name": "object", "description": "The tracer object with the following fields:", "required": true, "schema": { "type": "object", "properties": { "tracer": { "enum": [ "callTracer", "prestateTracer" ], "description": "The type of tracer. It could be callTracer or prestateTracer" }, "tracerConfig": { "type": "object", "properties": { "onlyTopCall": { "type": "boolean", "description": "When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame" } }, "description": "The object to specify the configurations of the tracer" } } } } ], "result": { "name": "result", "description": "debug_traceBlockByNumber result", "schema": { "type": "object", "properties": { "result": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the transaction is sent from" }, "gas": { "type": "string", "description": "The integer of the gas provided for the transaction execution" }, "gasUsed": { "type": "string", "description": "The integer of the gas used" }, "to": { "type": "string", "description": "The address the transaction is directed to" }, "input": { "type": "string", "description": "The data given at the time of input" }, "output": { "type": "string", "description": "(Optional) The data which is returned as an output" }, "error": { "type": "string", "description": "(Optional) Error message if the transaction execution failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason when transaction execution failed" }, "calls": { "type": "array", "items": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the call is sent from" }, "gas": { "type": "string", "description": "The gas provided for the call execution" }, "gasUsed": { "type": "string", "description": "The gas used by the call" }, "to": { "type": "string", "description": "The address the call is directed to" }, "input": { "type": "string", "description": "The call data" }, "output": { "type": "string", "description": "(Optional) The call output data" }, "type": { "type": "string", "description": "The type of call (CALL, STATICCALL, DELEGATECALL)" }, "value": { "type": "string", "description": "The value transferred in the call" }, "error": { "type": "string", "description": "(Optional) Error message if the call failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason if the call failed" }, "calls": { "type": "array", "items": {}, "description": "Nested sub-calls" } } }, "description": "A list of sub-calls made during transaction execution" }, "value": { "type": "string", "description": "The value transferred in the transaction" }, "type": { "type": "string", "description": "The type of transaction call" } }, "description": "The trace result object" }, "txHash": { "type": "string", "description": "The transaction hash" } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_traceBlockByNumber" } }, { "name": "debug_traceCall", "summary": "Performs a simulated call and returns comprehensive trace details without submitting an actual transaction.", "description": "Performs a simulated call and returns comprehensive trace details without submitting an actual transaction. This method emulates transaction execution and provides in-depth debugging data, including call traces and state modifications.", "params": [ { "name": "object", "description": "The transaction call object with the following fields:", "schema": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the transaction is sent from" }, "to": { "type": "string", "description": "The address the transaction is directed to" }, "gas": { "type": "integer", "description": "The integer of the gas provided for the transaction execution" }, "gasPrice": { "type": "integer", "description": "The integer of the gasPrice used for each paid gas" }, "value": { "type": "integer", "description": "The integer of the value sent with this transaction" }, "data": { "type": "string", "description": "The hash of the method signature and encoded parameters, see the Ethereum Contract ABI" } } } }, { "name": "blockNumber", "description": "The block number as a string in hexadecimal format or tags. The supported tag values include earliest for the earliest/genesis block, latest for the latest mined block, pending for the pending state/transactions, safe for the most recent secure block, and finalized for the most recent secure block accepted by more than 2/3 of validators", "required": true, "schema": { "type": "string" } }, { "name": "object", "description": "The tracer object with the following fields:", "required": true, "schema": { "type": "object", "properties": { "tracer": { "enum": [ "callTracer", "prestateTracer" ], "description": "The type of tracer. It could be callTracer or prestateTracer" }, "tracerConfig": { "type": "object", "properties": { "onlyTopCall": { "type": "boolean", "description": "When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame" } }, "description": "The object to specify the configurations of the tracer" }, "timeout": { "type": "string", "description": "A string of decimal integers that overrides the JavaScript-based tracing calls default timeout of 5 seconds" } } } } ], "result": { "name": "result", "description": "The trace result object", "schema": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the transaction is sent from" }, "gas": { "type": "string", "description": "The integer of the gas provided for the transaction execution" }, "gasUsed": { "type": "string", "description": "The integer of the gas used" }, "to": { "type": "string", "description": "The address the transaction is directed to" }, "input": { "type": "string", "description": "The data given at the time of input" }, "output": { "type": "string", "description": "(Optional) The data which is returned as an output" }, "error": { "type": "string", "description": "(Optional) Error message if the transaction execution failed" }, "calls": { "type": "array", "items": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the call is sent from" }, "gas": { "type": "string", "description": "The gas provided for the call execution" }, "gasUsed": { "type": "string", "description": "The gas used by the call" }, "to": { "type": "string", "description": "The address the call is directed to" }, "input": { "type": "string", "description": "The call data" }, "output": { "type": "string", "description": "(Optional) The call output data" }, "type": { "type": "string", "description": "The type of call (CALL, STATICCALL, DELEGATECALL)" }, "value": { "type": "string", "description": "The value transferred in the call" } } }, "description": "A list of sub-calls made during transaction execution" }, "value": { "type": "string", "description": "The value transferred in the transaction" }, "type": { "type": "string", "description": "The type of transaction call" } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_traceCall" } }, { "name": "debug_traceTransaction", "summary": "Returns all traces of a given transaction.", "description": "Returns all traces of a given transaction.", "params": [ { "name": "transactionHash", "description": "The transaction hash that needs to be traced, encoded in hexadecimal format", "required": true, "schema": { "type": "string" } }, { "name": "object", "description": "The tracer object with the following fields:", "required": true, "schema": { "type": "object", "properties": { "tracer": { "enum": [ "callTracer", "prestateTracer" ], "description": "The type of tracer. It could be callTracer or prestateTracer" }, "tracerConfig": { "type": "object", "properties": { "onlyTopCall": { "type": "boolean", "description": "When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame" } }, "description": "The object to specify the configurations of the tracer" }, "timeout": { "type": "string", "description": "A string of decimal integers that overrides the JavaScript-based tracing calls default timeout of 5 seconds." } } } } ], "result": { "name": "result", "description": "The trace result object", "schema": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the transaction is sent from" }, "gas": { "type": "string", "description": "The integer of the gas provided for the transaction execution" }, "gasUsed": { "type": "string", "description": "The integer of the gas used" }, "to": { "type": "string", "description": "The address the transaction is directed to" }, "input": { "type": "string", "description": "The data given at the time of input" }, "output": { "type": "string", "description": "(Optional) The data which is returned as an output" }, "error": { "type": "string", "description": "(Optional) Error message if the transaction execution failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason when transaction execution failed" }, "calls": { "type": "array", "items": { "type": "object", "properties": { "from": { "type": "string", "description": "The address the call is sent from" }, "gas": { "type": "string", "description": "The gas provided for the call execution" }, "gasUsed": { "type": "string", "description": "The gas used by the call" }, "to": { "type": "string", "description": "The address the call is directed to" }, "input": { "type": "string", "description": "The call data" }, "output": { "type": "string", "description": "(Optional) The call output data" }, "type": { "type": "string", "description": "The type of call (CALL, STATICCALL, DELEGATECALL)" }, "value": { "type": "string", "description": "The value transferred in the call" }, "error": { "type": "string", "description": "(Optional) Error message if the call failed" }, "revertReason": { "type": "string", "description": "(Optional) Human-readable revert reason if the call failed" }, "calls": { "type": "array", "items": {}, "description": "Nested sub-calls" } } }, "description": "A list of sub-calls made during transaction execution" }, "value": { "type": "string", "description": "The value transferred in the transaction" }, "type": { "type": "string", "description": "The type of transaction call" } } } }, "tags": [ { "name": "debug" } ], "externalDocs": { "description": "Quicknode docs", "url": "https://www.quicknode.com/docs/hyperliquid/debug_traceTransaction" } } ], "servers": [ { "name": "Hyperliquid Debug API", "url": "https://docs-demo.hype-mainnet.quiknode.pro/nanoreth" } ] }