> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.chainstack.com/feedback

```json
{
  "path": "/docs/hyperliquid-node-configuration",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Hyperliquid node configuration and system transactions

> Chainstack exposes two HyperEVM JSON-RPC paths on every Hyperliquid node: a default path that strips system transactions, and /nanoreth which includes them.

Every Chainstack Hyperliquid node exposes two HyperEVM JSON-RPC paths on the same endpoint:

| Console label                     | Path        | What it returns                                                                    |
| --------------------------------- | ----------- | ---------------------------------------------------------------------------------- |
| **JSON-RPC API (default)**        | `/evm`      | hl-node-compliant output; system transactions stripped from block-shaped responses |
| **JSON-RPC API (with system tx)** | `/nanoreth` | Full nanoreth output; system transactions included in blocks and receipts          |

You don't pick one at deploy time — both are always available. Append the path you need to your endpoint URL.

## What system transactions are

System transactions are protocol-generated pseudo-transactions that record HyperCore state changes on the HyperEVM ledger. They have no signing key — the protocol creates them to bridge state between HyperCore and HyperEVM (HYPE deposits and withdrawals, spot token transfers, and similar). They always carry `gasPrice: 0x0` and originate from system addresses:

* `0x2222222222222222222222222222222222222222` — HYPE native token bridge
* `0x20000000000000000000000000000000000000XX` — per-token bridge contract, where `XX` is the big-endian token index (token 200 → `…00c8`)

For background, see Hyperliquid docs: [HyperCore ↔ HyperEVM transfers](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/hyperevm/hypercore-less-than-greater-than-hyperevm-transfers) and the [nanoreth README](https://github.com/hl-archive-node/nanoreth).

## How `/evm` and `/nanoreth` differ in practice

Behavior verified against block `0x202e371` (one HYPE bridge system tx). All methods are present on both paths; the difference is whether system transactions appear in the response:

| Method                                                            | `/evm`                                    | `/nanoreth`                               |
| ----------------------------------------------------------------- | ----------------------------------------- | ----------------------------------------- |
| `eth_getBlockByNumber` / `eth_getBlockByHash`                     | transactions array excludes system tx     | transactions array includes system tx     |
| `eth_getBlockTransactionCountByNumber` / `ByHash`                 | count excludes system tx                  | count includes system tx                  |
| `eth_getBlockReceipts`                                            | receipts array excludes system tx receipt | receipts array includes system tx receipt |
| `eth_getTransactionReceipt` for a system tx hash                  | returns `null`                            | returns the receipt                       |
| `eth_getTransactionByHash` for a system tx hash                   | returns the transaction                   | returns the transaction                   |
| `eth_getSystemTxsByBlockNumber` / `ByHash`                        | returns system txs                        | returns system txs                        |
| `debug_*` / `trace_*` / `ots_*` methods                           | unchanged                                 | unchanged                                 |
| All non-system-tx methods (regular blocks, txs, receipts, traces) | unchanged                                 | unchanged                                 |

In short: `/evm` only hides system transactions inside **block-shaped responses** — the transactions array, the transaction count, the receipts array, and `eth_getTransactionReceipt` keyed by a system tx hash. Everything else, including direct system tx lookup by hash via `eth_getTransactionByHash` and the dedicated `eth_getSystemTxsBy*` methods, behaves identically on both paths.

## Endpoint format

```text theme={"system"}
# JSON-RPC API (default), hl-node-compliant
https://hyperliquid-mainnet.core.chainstack.com/<auth>/evm

# JSON-RPC API (with system tx), nanoreth full output
https://hyperliquid-mainnet.core.chainstack.com/<auth>/nanoreth

# WebSocket (HyperEVM)
wss://hyperliquid-mainnet.core.chainstack.com/<auth>/evm

# Info HTTP API (HyperCore)
https://hyperliquid-mainnet.core.chainstack.com/<auth>/info
```

Find both paths in the [console](https://console.chainstack.com/) under **Access and credentials** on any Hyperliquid node. Username/password access is provided alongside.

## Related resources

* [Hyperliquid methods](/docs/hyperliquid-methods) — full method-by-method availability and which path each runs on
* [Hyperliquid infrastructure FAQ](/docs/hyperliquid-infrastructure-faq) — node types, rate limits, and the dual-layer architecture
* [`eth_getSystemTxsByBlockNumber`](/reference/hyperliquid-evm-eth-get-system-txs-by-block-number) — dedicated method for system transactions
* [`eth_getSystemTxsByBlockHash`](/reference/hyperliquid-evm-eth-get-system-txs-by-block-hash) — same, keyed by block hash
* [Build better with Hyperliquid](https://chainstack.com/build-better-with-hyperliquid/) — Chainstack's Hyperliquid RPC overview
