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

# RPC

> JSON-RPC endpoints for HyperEVM and Elysium, on your Hypedexer API key, with a monthly quota of requests in every plan.

> [!NOTE]
>
> **Elysium opens on November 9, 2026.** Until then its endpoints answer `503`; HyperEVM is available now on every plan.

Hypedexer serves standard Ethereum JSON-RPC for HyperEVM and Elysium from its own archive nodes. RPC is part of every plan: **same API key**, and a **monthly quota of RPC requests** included (1M on Free, 25M on Starter, up to 500M on Scale), separate from your API credits. Past the quota, RPC continues on your API credits at 1 credit per 100 requests. For RPC alone, the **RPC plan** (\$49/month) includes 15M requests, without the Data API. See [Limits & monthly quota](https://docs.hypedexer.com/rpc/limits-and-quota.md).

## Endpoints

| Chain | Chain ID | HTTPS | WebSocket |
| - | -: | - | - |
| **HyperEVM** | 999 | `https://rpc.hypedexer.com/hyperevm/<API_KEY>` | `wss://rpc.hypedexer.com/hyperevm/<API_KEY>` |
| **Elysium** | 99901 | `https://rpc.hypedexer.com/elysium/<API_KEY>` | `wss://rpc.hypedexer.com/elysium/<API_KEY>` |
| **HyperEVM Testnet** | 998 | `https://rpc.hypedexer.com/hyperevm-testnet/<API_KEY>` | `wss://rpc.hypedexer.com/hyperevm-testnet/<API_KEY>` |
| **Elysium Testnet** | 99801 | `https://rpc.hypedexer.com/elysium-testnet/<API_KEY>` | `wss://rpc.hypedexer.com/elysium-testnet/<API_KEY>` |

The key goes in the path so the URL works as pasted in wallets, Foundry, Hardhat or any client that cannot set headers. You can also leave it out of the path and send it as `X-API-Key: <API_KEY>` or `Authorization: Bearer <API_KEY>`.

The HyperEVM nodes are **archive** nodes: state and logs at any block are available, not only recent ones.

## First call

```bash cURL theme={null}
curl "https://rpc.hypedexer.com/hyperevm/$HYPEDEXER_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'
```

```javascript viem theme={null}
import { createPublicClient, defineChain, http } from "viem";

const hyperEvm = defineChain({
  id: 999,
  name: "HyperEVM",
  nativeCurrency: { name: "HYPE", symbol: "HYPE", decimals: 18 },
  rpcUrls: { default: { http: [`https://rpc.hypedexer.com/hyperevm/${process.env.HYPEDEXER_API_KEY}`] } },
});

const client = createPublicClient({ chain: hyperEvm, transport: http() });
console.log(await client.getBlockNumber());
```

```javascript ethers v6 theme={null}
import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider(
  `https://rpc.hypedexer.com/hyperevm/${process.env.HYPEDEXER_API_KEY}`,
  999,
);
console.log(await provider.getBlockNumber());
```

```python web3.py theme={null}
import os
from web3 import Web3

w3 = Web3(Web3.HTTPProvider(f"https://rpc.hypedexer.com/hyperevm/{os.environ['HYPEDEXER_API_KEY']}"))
print(w3.eth.block_number)
```

Response (run against production on 1 November 2026):

```json theme={null}
{"jsonrpc":"2.0","id":1,"result":"0x2fbdb76"}
```

Every response carries `X-RPC-Requests` (requests counted for this call) and, once the account has been seen at least once, `X-RPC-Requests-Used`, `X-RPC-Requests-Limit` and `X-RPC-Requests-Reset` for the month.

## Supported methods

* **Standard methods:** `eth_*`, `net_*` and `web3_*`, including `eth_call`, `eth_estimateGas`, `eth_getLogs`, `eth_getBlockReceipts`, `eth_getProof`, filters (`eth_newFilter`, `eth_getFilterChanges`…) and `eth_sendRawTransaction`.
* **Otterscan** (`ots_*`) on HyperEVM and HyperEVM Testnet.
* **Subscriptions** (`eth_subscribe`) over WebSocket, see [WebSocket](https://docs.hypedexer.com/rpc/websocket.md).
* **Refused:** methods that need a node-side account (`eth_sendTransaction`, `eth_sign`, `eth_signTransaction`…) and every admin, debug or personal namespace. Sign locally and send with `eth_sendRawTransaction`.

Transactions sent to HyperEVM are relayed to the Hyperliquid network.

## Errors

Errors follow JSON-RPC 2.0. The ones the gateway adds:

| HTTP | `error.code` | Meaning |
| -: | -: | - |
| 401 | -32001 | Missing or invalid API key |
| 403 | -32001 | Key not allowed (an MCP-only key) |
| 200 | -32601 | Method not available on Hypedexer RPC |
| 200 | -32005 | A plan limit was hit: `eth_getLogs` range, batch size, subscriptions |
| 429 | -32005 | Rate limit, retry after `Retry-After` seconds |
| 402 | -32005 | Monthly request quota used up and no API credits left |
| 503 | -32603 | The chain's node is syncing or unavailable; the gateway refuses rather than serve stale state |

Node errors (`execution reverted`, invalid transaction…) are passed through unchanged.

## Next

> [card] [Limits & monthly quota](https://docs.hypedexer.com/rpc/limits-and-quota.md)
>
> Requests included per plan, calls per second, `eth_getLogs` ranges and how each method counts.

> [card] [WebSocket](https://docs.hypedexer.com/rpc/websocket.md)
>
> `eth_subscribe` for new heads and logs, and how events are billed.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.