Hyperliquid RPC

HyperEVM and HyperCore. One key.

Standard Ethereum JSON-RPC for HyperEVM (reads, logs, and transaction broadcast) plus the HyperCore /info API for CLOB state, served from a self-operated node fleet. Stream the live data; use RPC for point reads and transaction submission.

POSTrpc.hyperliquidrpc.com

request

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "eth_blockNumber",
  "params": []
}

response4.2 ms

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "0x7b2a4f1"
}
Two surfaces

Two execution surfaces, one credential.

Hyperliquid runs an EVM and a CLOB L1 side by side. We serve both from a self-operated node fleet: standard Ethereum JSON-RPC for HyperEVM state and transactions, and the HyperCore /info API for market and account state on the exchange. The same API key authenticates either path.

HyperEVM JSON-RPC

JSON-RPC / HTTPS

https://rpc.hyperliquidrpc.com

The usual eth_* set: read contract state, index logs and events, estimate gas, and broadcast signed transactions: contract calls, transfers, bridging. If your tooling speaks Ethereum, it speaks this.

Supported methods

eth_blockNumbereth_getBlockByNumbereth_getBlockByHasheth_calleth_estimateGaseth_gasPriceeth_getBalanceeth_getCodeeth_getStorageAteth_getTransactionCounteth_getLogseth_getTransactionReceipteth_getTransactionByHasheth_sendRawTransactioneth_chainIdnet_version

HyperEVM RPC docs

HyperCore /info

HTTPS POST

https://api.hyperliquidrpc.com/info

The read API for the HyperCore L1, the perps and spot CLOB. Market metadata, L2 book snapshots, asset contexts with mark price, funding, and open interest, plus per-wallet state: open orders, fills, positions, funding history, and exchange status.

Request types

metaspotMetaperpDexsl2BookmetaAndAssetCtxsclearinghouseStateopenOrdersuserFillsuserFundingexchangeStatus

HyperCore /info docs

Reference

The supported eth_* set, with receipts.

Every method below ships with an example round-trip. Expand a row for the exact request and response bodies. Parameter details and the HyperCore /info request types live in the RPC reference.

Request

{ "jsonrpc": "2.0", "id": 1, "method": "eth_blockNumber", "params": [] }

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x7b2a4f1" }

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getBlockByNumber",  "params": ["latest", false]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": {    "number": "0x7b2a4f1",    "hash": "0x9c41d2e8f06a3b7d5512cc09e8b1f4a6d3370c25b8e9410f7aa61d20c4b53e18",    "timestamp": "0x684694aa",    "gasUsed": "0x1b8e4",    "transactions": []  }}

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getBlockByHash",  "params": ["0x9c41d2e8f06a3b7d5512cc09e8b1f4a6d3370c25b8e9410f7aa61d20c4b53e18", false]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": {    "number": "0x7b2a4f1",    "hash": "0x9c41d2e8f06a3b7d5512cc09e8b1f4a6d3370c25b8e9410f7aa61d20c4b53e18",    "parentHash": "0x4f8be20cd1a967340a1f2dd086c5e3b6b9407d83cf25e6a1908b4d27f013ae52"  }}

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_call",  "params": [    {      "to": "0x5555555555555555555555555555555555555555",      "data": "0x70a08231000000000000000000000000913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b"    },    "latest"  ]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": "0x000000000000000000000000000000000000000000000002b5e3af16b1880000"}

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_estimateGas",  "params": [    {      "from": "0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b",      "to": "0x5555555555555555555555555555555555555555",      "value": "0xde0b6b3a7640000"    }  ]}

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x5208" }

Request

{ "jsonrpc": "2.0", "id": 1, "method": "eth_gasPrice", "params": [] }

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x3b9aca00" }

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getBalance",  "params": ["0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b", "latest"]}

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x1bc16d674ec80000" }

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getCode",  "params": ["0x5555555555555555555555555555555555555555", "latest"]}

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x6080604052348015610010..." }

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getStorageAt",  "params": ["0x5555555555555555555555555555555555555555", "0x0", "latest"]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": "0x0000000000000000000000000000000000000000000000000000000000000001"}

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getTransactionCount",  "params": ["0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b", "pending"]}

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x2a" }

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getLogs",  "params": [    {      "fromBlock": "0x7b2a000",      "toBlock": "latest",      "address": "0x5555555555555555555555555555555555555555",      "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]    }  ]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": [    {      "address": "0x5555555555555555555555555555555555555555",      "blockNumber": "0x7b2a4f1",      "transactionHash": "0x6b1f0e9a4d27c5583f10ab8e2d94c7106e3bd1a05f88c2e4917d30b6a25c84f3",      "topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"],      "data": "0x000000000000000000000000000000000000000000000000016345785d8a0000"    }  ]}

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getTransactionReceipt",  "params": ["0x6b1f0e9a4d27c5583f10ab8e2d94c7106e3bd1a05f88c2e4917d30b6a25c84f3"]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": {    "transactionHash": "0x6b1f0e9a4d27c5583f10ab8e2d94c7106e3bd1a05f88c2e4917d30b6a25c84f3",    "blockNumber": "0x7b2a4f1",    "status": "0x1",    "gasUsed": "0x5208",    "logs": []  }}

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_getTransactionByHash",  "params": ["0x6b1f0e9a4d27c5583f10ab8e2d94c7106e3bd1a05f88c2e4917d30b6a25c84f3"]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": {    "hash": "0x6b1f0e9a4d27c5583f10ab8e2d94c7106e3bd1a05f88c2e4917d30b6a25c84f3",    "from": "0x913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b",    "to": "0x5555555555555555555555555555555555555555",    "value": "0x0",    "nonce": "0x29",    "blockNumber": "0x7b2a4f1"  }}

Note: HyperEVM transactions only. CLOB orders go through Hyperliquid's signed-action exchange API.

Request

{  "jsonrpc": "2.0",  "id": 1,  "method": "eth_sendRawTransaction",  "params": ["0x02f8718205398084773594008504a817c80082520894555555555555..."]}

Response

{  "jsonrpc": "2.0",  "id": 1,  "result": "0x6b1f0e9a4d27c5583f10ab8e2d94c7106e3bd1a05f88c2e4917d30b6a25c84f3"}

Request

{ "jsonrpc": "2.0", "id": 1, "method": "eth_chainId", "params": [] }

Response

{ "jsonrpc": "2.0", "id": 1, "result": "0x3e7" }

Request

{ "jsonrpc": "2.0", "id": 1, "method": "net_version", "params": [] }

Response

{ "jsonrpc": "2.0", "id": 1, "result": "999" }
Quickstart

First response in under five minutes.

No new client library. viem, ethers, and web3.py work as-is. Set one header and point them at the endpoint.

  1. Get an API key

    One key authenticates the RPC, the streams, and the historical API across both plans.

  2. Point your client at the endpoint

    Send JSON-RPC over HTTPS to rpc.hyperliquidrpc.com with the key in the x-api-key header.

  3. Read, then broadcast

    eth_call and eth_getLogs for state; eth_sendRawTransaction when you are ready to write.

Timed from key creation to the first JSON-RPC response.

Full RPC reference

# latest HyperEVM blockcurl https://rpc.hyperliquidrpc.com \  -H 'x-api-key: YOUR_KEY' \  -H 'content-type: application/json' \  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}' # read contract state (ERC-20 balanceOf)curl https://rpc.hyperliquidrpc.com \  -H 'x-api-key: YOUR_KEY' \  -H 'content-type: application/json' \  -d '{"jsonrpc":"2.0","id":2,"method":"eth_call","params":[{        "to":   "0x5555555555555555555555555555555555555555",        "data": "0x70a08231000000000000000000000000913ef4b96e9fd7d6f8c14e22b1a1a1e7c41a0a2b"      },"latest"]}'
Proof

Measured, not asserted.

A continuous evaluation harness issues real JSON-RPC reads from Frankfurt, every hour, from a neutral vantage point. Percentiles are published unedited, including the bad days.

0.0 ms

p50, JSON-RPC reads, Frankfurt

99.00%

Trailing 12-month uptime

0+

Markets readable via /info

as of 2026-06-09

Read the chain. Broadcast the transaction.

One API key covers HyperEVM JSON-RPC, HyperCore /info, the streams, and the archive. Live in minutes.

FAQ

Common questions

A data and RPC provider for Hyperliquid. We stream real-time market data over gRPC, serve HyperEVM/HyperCore RPC, and sell a full historical dataset for backtesting and analytics.

HyperEVM transactions, yes, via eth_sendRawTransaction on our RPC. HyperCore CLOB orders are placed through Hyperliquid's signed-action exchange API, separate from EVM RPC.

Streams are sub-second. We run a self-operated Hyperliquid node fleet with automated failover and redundancy.

Request an API key for self-serve tiers, or contact us for Enterprise: dedicated nodes, custom SLAs, and custom datasets.