debug_getRawTransaction
curl --request POST \
--url https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_getRawTransaction",
"params": [
"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31"
],
"id": 1
}
'import requests
url = "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm"
payload = {
"jsonrpc": "2.0",
"method": "debug_getRawTransaction",
"params": ["0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31"],
"id": 1
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
method: 'debug_getRawTransaction',
params: ['0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31'],
id: 1
})
};
fetch('https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'debug_getRawTransaction',
'params' => [
'0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31'
],
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getRawTransaction\",\n \"params\": [\n \"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31\"\n ],\n \"id\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getRawTransaction\",\n \"params\": [\n \"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31\"\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getRawTransaction\",\n \"params\": [\n \"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31\"\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": "0xf86d80843b9aca0082520894..."
}Hyperliquid node API
debug_getRawTransaction | Hyperliquid EVM
The debug_getRawTransaction JSON-RPC method returns the raw transaction data for a specific transaction. Hyperliquid EVM via Chainstack.
POST
/
evm
debug_getRawTransaction
curl --request POST \
--url https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"method": "debug_getRawTransaction",
"params": [
"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31"
],
"id": 1
}
'import requests
url = "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm"
payload = {
"jsonrpc": "2.0",
"method": "debug_getRawTransaction",
"params": ["0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31"],
"id": 1
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
method: 'debug_getRawTransaction',
params: ['0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31'],
id: 1
})
};
fetch('https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'method' => 'debug_getRawTransaction',
'params' => [
'0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31'
],
'id' => 1
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getRawTransaction\",\n \"params\": [\n \"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31\"\n ],\n \"id\": 1\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getRawTransaction\",\n \"params\": [\n \"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31\"\n ],\n \"id\": 1\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"method\": \"debug_getRawTransaction\",\n \"params\": [\n \"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31\"\n ],\n \"id\": 1\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 1,
"result": "0xf86d80843b9aca0082520894..."
}This method is available on Chainstack. Not all Hyperliquid methods are available on Chainstack, as the open-source node implementation does not support them yet — see Hyperliquid methods for the full availability breakdown.
debug_getRawTransaction JSON-RPC method returns the raw transaction data for a specific transaction. This method provides the complete transaction in its raw encoded format, useful for low-level transaction analysis, custom parsing, and applications that need direct access to the transaction’s binary representation.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.
Parameters
- Transaction hash (string, required): The hash of the transaction to retrieve
Response
The method returns the raw transaction data in hexadecimal format.Response structure
Raw transaction data:result— Complete raw transaction data encoded in hexadecimal format
Usage example
Basic implementation
// Get raw transaction data
const getRawTransaction = async (txHash) => {
const response = await fetch('https://hyperliquid-mainnet.core.chainstack.com/YOUR_ENDPOINT/evm', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
method: 'debug_getRawTransaction',
params: [txHash],
id: 1
})
});
const data = await response.json();
return data.result;
};
// Usage
const txHash = '0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31';
getRawTransaction(txHash).then(rawTx => {
console.log('Raw transaction:', rawTx);
console.log('Transaction size:', rawTx.length / 2 - 1, 'bytes');
});
Example request
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "debug_getRawTransaction",
"params": [
"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31"
],
"id": 1
}' \
https://hyperliquid-mainnet.core.chainstack.com/4f8d8f4040bdacd1577bff8058438274/evm
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("YOUR_CHAINSTACK_ENDPOINT"))
tx_hash = "0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31"
# debug_getRawTransaction has no typed wrapper, so call it directly
response = w3.provider.make_request("debug_getRawTransaction", [tx_hash])
print(response["result"])
import { JsonRpcProvider } from "ethers";
const provider = new JsonRpcProvider("YOUR_CHAINSTACK_ENDPOINT");
const txHash =
"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31";
// debug_getRawTransaction has no typed wrapper, so use the generic send
const rawTx = await provider.send("debug_getRawTransaction", [txHash]);
console.log(rawTx);
import { createPublicClient, http } from "viem";
const client = createPublicClient({
transport: http("YOUR_CHAINSTACK_ENDPOINT"),
});
const txHash =
"0x07712544ce8f50091c6c3b227921f763b342bf9465a22f0226d651a3246adb31";
// debug_getRawTransaction has no typed action, so use the raw request method
const rawTx = await client.request({
method: "debug_getRawTransaction",
params: [txHash],
});
console.log(rawTx);
Use your own endpoint in your code. The code examples use a placeholder Chainstack endpoint (YOUR_CHAINSTACK_ENDPOINT) — replace it with your own Hyperliquid node endpoint from the Chainstack console. The curl above uses a shared public endpoint for quick checks only; do not use it in production.
Use cases
Thedebug_getRawTransaction method is essential for applications that need to:
- Transaction analysis: Perform low-level analysis of transaction structures
- Custom parsing: Implement custom transaction parsing and validation
- Development tools: Build transaction debugging and analysis tools
- Data archival: Archive complete transaction data in raw format
- Forensic investigation: Perform detailed forensic analysis of transactions
- Protocol research: Research transaction format and encoding details
- Cross-chain verification: Verify transactions across different systems
- Security analysis: Analyze transaction security and validation
- Academic research: Support academic research on blockchain transactions
- Compliance tools: Build regulatory compliance and auditing systems
Body
application/json
Last modified on June 24, 2026
Was this page helpful?