Single Supernode for all EVM chains. Supernode allows access to all EVM chains with a single node. It acts as a proxy between the client and EVM chain nodes. Written in Node.js and Typescript, it requires Node v16 or higher.
https://localhost/chain/CHAIN_ID
Example:
const provider = new ethers.JsonRpcProvider("https://localhost/chain/56");
docker run --name supernode -p 443:443 --restart always -d --memory 512m valamidev/evm-supernode:latest
- Resilient RPC proxy compatible with Web3.js and EtherJS or any other JSON-RPC client
- Optimized for speed and low memory/CPU usage
- Use https://github.com/DefiLlama/chainlist to explore available EVM chains and public nodes
- Store metadata about public nodes, such as latency, errors, and rate limits
# Rename config.default.json to config.json
# yarn install / npm install
# yarn start
# To improve security please add your own SSL cert under assets/ folder
"loggingEnabled": false, // Verbose logging
"nodeStorage": true, // Allow to store RPC Node metadata, improve restart speed and stability
# List of all nodes and metadata
https://localhost/nodes
/*
[{
"id": 29,
"chainName": "ethereum",
"chainId": 1,
"rpcAddress": "https://eth-mainnet.nodereal.io/v1/1659dfb40aa24bbb8153a677b98064d7",
"latency": 342,
"errorCount": 2,
"rateLimit": 2
},
...]
*/
# Health status
https://localhost/health
import { ethers } from "ethers";
// Avoid TLS error in case you are using self-signed certificate
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = "0";
const provider = new ethers.JsonRpcProvider("https://localhost/chain/56"); // Binance Smart Chain
// const provider = new ethers.JsonRpcProvider("https://localhost/chain/1"); // Ethereum Mainnet
...
const number = await provider.getBlockNumber();