Skip to main content

HyperEVM Overview

Updated on
Oct 09, 2026

What is HyperEVM?​

HyperEVM is Hyperliquid's Ethereum-compatible execution layer. It runs smart contracts and exposes familiar Ethereum JSON-RPC methods for accounts, blocks, transactions, contract calls, and event logs. HyperCore is Hyperliquid's exchange layer for markets, orders, and positions; see the HyperCore overview when you need trading or exchange data.

A HyperEVM application can deploy contracts, read contract state, send transactions, and watch contract events. Some activity crosses between HyperCore and HyperEVM, so the route you choose can affect the transactions and logs returned for a block.

HyperEVM's Ethereum compatibility lets you use tools such as Foundry, Hardhat, and Viem. For a working example with Foundry and Viem, see Read HyperCore Oracle Prices in HyperEVM.

Quicknode services for HyperEVM​

Your Quicknode Hyperliquid endpoint has two HyperEVM paths. The /nanoreth path also supports WebSocket connections.

RouteUse it forProtocol
/evmStandard Ethereum JSON-RPC on recent blocks, including contract calls and transaction submissionHTTP
/nanorethHistorical queries, transaction tracing, and debuggingHTTP
/nanorethNew blocks and contract events as they arriveWebSocket

Use /evm for recent state and ordinary transaction operations. Choose /nanoreth when you need older blocks, debug_* or trace_* methods, or an eth_subscribe WebSocket connection. Both paths are available on all plans; see Pricing & Plans.

Before you send a request​

Create an endpoint in the Quickstart and copy its provider URL. Keep the endpoint hostname and token, then use /evm or /nanoreth as the final path. If the copied URL already ends in /evm, replace that path when switching to /nanoreth. For WebSocket, use wss:// with /nanoreth. The examples below use a mainnet hostname; for testnet, use the hostname from your testnet endpoint.

The /evm route retains recent data only. Older blocks are pruned approximately every 12 hours, and requests outside the retained range can return invalid block height. The /nanoreth archive has full mainnet history; on testnet, its history begins at block 34112653 rather than genesis.

How to use each route​

Recent state with /evm​

Send an HTTP JSON-RPC request to https://your-endpoint.hype-mainnet.quiknode.pro/your-token/evm. This example fetches the latest block:

curl https://your-endpoint.hype-mainnet.quiknode.pro/your-token/evm \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'

Use this route for recent account and block queries, contract calls against current state, and broadcasting transactions. It supports HTTP only.

Archive, debug, and trace with /nanoreth​

Send the same JSON-RPC envelope to https://your-endpoint.hype-mainnet.quiknode.pro/your-token/nanoreth for historical state or trace and debug methods. This example traces a block:

curl https://your-endpoint.hype-mainnet.quiknode.pro/your-token/nanoreth \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"debug_traceBlockByNumber","params":["0xbdd86d"],"id":1}'

Use /nanoreth for historical eth_call requests and methods such as debug_traceTransaction or trace_transaction. Complex traces can take longer, so set an appropriate client timeout.

Live subscriptions with /nanoreth​

HyperEVM WebSocket connections use wss://your-endpoint.hype-mainnet.quiknode.pro/your-token/nanoreth. The /evm path does not support WebSocket. Subscribe with eth_subscribe to receive new block headers or contract events:

const WebSocket = require('ws');
const ws = new WebSocket('wss://your-endpoint.hype-mainnet.quiknode.pro/your-token/nanoreth');

ws.on('open', () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'eth_subscribe',
params: ['newHeads']
}));
});

ws.on('message', (data) => {
console.log('New block:', JSON.parse(data));
});

WebSocket responses have a size limit. For large results, use an HTTP POST request instead; an oversized WebSocket response returns error -32616.

Method compatibility​

Method type/evm/nanoreth
Standard Ethereum queries such as eth_getBalance and eth_getBlockByNumberRecent blocksFull available history
Transaction submission with eth_sendRawTransactionSupportedSupported
Historical contract calls with eth_callCurrent state onlyHistorical state
debug_* and trace_* methodsNot supportedSupported
eth_subscribe over WebSocketNot supportedSupported

The HyperEVM method reference lists the available Ethereum JSON-RPC methods. Trace and debug methods are listed in the HyperEVM sidebar.

Differences to account for​

The two routes can return different views of Hyperliquid's internal system activity:

  • System transactions: /nanoreth includes HyperCore-to-HyperEVM system transactions in block queries that /evm does not return. These transactions have gasPrice: 0. If your application displays only user transactions, account for those system transactions when processing /nanoreth blocks.
  • Transfer events: /nanoreth includes additional ERC-20 transfer events from HyperCore bridging activity in eth_getLogs responses and WebSocket subscriptions.
  • Transaction lookups: A system transaction hash can return “transaction not found” on /evm. Use eth_getSystemTxsByBlockHash or eth_getSystemTxsByBlockNumber on /evm to access system transactions.

HyperEVM contracts can also read selected HyperCore data, such as oracle prices, through precompiles. See the HyperCore oracle prices guide for an example.