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 HyperEVM RPC, HyperCore /info, and the gRPC streams across both plans. Historical exports are requested manually.

  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, and the gRPC streams. Manual historical exports are requested separately.

FAQ

Common questions

A data and RPC provider for Hyperliquid. We stream real-time market data over gRPC, serve HyperEVM/HyperCore RPC, and prepare historical exports and custom datasets on request.

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.