Every EVM node speaks JSON-RPC 2.0 over HTTP POST: sending `{ jsonrpc: "2.0", id, method, params }`. Results or errors arrive in the response body.
js
const res = await fetch(RPC_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "eth_blockNumber", params: [] })
});
const { result, error } = await res.json();