The RPC Gateway Built for Web3 Developers
One endpoint. Five chains. Real-time dashboard. No per-request fees.
🚀 Featured on Product Hunt — RPCForge: Own Your RPC — our first ever launch!
RPCForge is a hosted multi-chain RPC gateway that gives Web3 developers a single, reliable endpoint to interact with Ethereum, Polygon, BSC, Arbitrum, and Sepolia — without paying per-request fees to Infura or Alchemy.
Sign up → get an API key → start building. That's it.
curl -X POST https://rpcforge.onrender.com/eth \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Every Web3 developer hits this wall:
- 💸 Infura & Alchemy charge per request — costs spiral as your dApp grows
- 🔍 Zero visibility into your RPC traffic, errors, or latency
- 🚫 Rate limits that kill your app during peak usage
- 🔗 Multiple endpoints to manage across different chains
- 🖥️ No CLI for scripting, CI/CD, or terminal workflows
RPCForge gives you everything in one place:
✅ Flat monthly pricing — no per-call fees ever
✅ Real-time dashboard with live logs, charts, and latency tracking
✅ Per-tier rate limits up to 500 req/min
✅ One API key for all 5 chains
✅ Full-featured CLI on npm
One API key works across all supported chains.
| Chain | Endpoint |
|---|---|
| Ethereum Mainnet | POST /eth |
| Polygon | POST /polygon |
| BSC | POST /bsc |
| Arbitrum | POST /arbitrum |
| Ethereum Sepolia | POST /sepolia |
- Live traffic feed — WebSocket-powered request log with sub-second updates
- Traffic chart — visualize request volume over time
- Chain breakdown — see which chains you use most
- Latency tracker — avg response times per chain
- Request heatmap — 24-hour traffic visualization
- Create multiple keys per account
- Per-key analytics — requests, error rate, top methods, 7-day sparkline
- Revoke keys instantly
- Tier-based rate limiting per key
- Method blacklist — blocks
eth_sendRawTransaction,eth_sign,personal_signby default - JWT-authenticated dashboard API
- Per-key rate limiting with Redis
- Supabase Row Level Security on all data
- Multi-node failover — shuffles across nodes, retries on failure automatically
- Response caching — TTL cache for
eth_blockNumber,eth_chainId,eth_gasPrice - Upstash Redis — distributed cache with in-memory fallback
Test any RPC method directly from your browser — no curl, no code.
Full subscription management with Stripe Checkout and Customer Portal.
Go to rpc-forge.vercel.app and create a free account.
Dashboard → API Keys → New Free Key.
curl -X POST https://rpcforge.onrender.com/eth \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'ethers.js
import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider(
"https://rpcforge.onrender.com/eth",
undefined,
{ fetchOptions: { headers: { "x-api-key": "YOUR_API_KEY" } } }
);viem
import { createPublicClient, http } from 'viem';
import { mainnet } from 'viem/chains';
const client = createPublicClient({
chain: mainnet,
transport: http("https://rpcforge.onrender.com/eth", {
fetchOptions: { headers: { "x-api-key": "YOUR_API_KEY" } }
})
});wagmi
import { createConfig, http } from 'wagmi';
import { mainnet, polygon, arbitrum } from 'wagmi/chains';
export const config = createConfig({
chains: [mainnet, polygon, arbitrum],
transports: {
[mainnet.id]: http("https://rpcforge.onrender.com/eth", {
fetchOptions: { headers: { "x-api-key": "YOUR_KEY" }}
}),
[polygon.id]: http("https://rpcforge.onrender.com/polygon", {
fetchOptions: { headers: { "x-api-key": "YOUR_KEY" }}
}),
[arbitrum.id]: http("https://rpcforge.onrender.com/arbitrum", {
fetchOptions: { headers: { "x-api-key": "YOUR_KEY" }}
}),
},
});Hardhat
module.exports = {
networks: {
mainnet: {
url: "https://rpcforge.onrender.com/eth",
headers: { "x-api-key": process.env.RPCFORGE_API_KEY },
accounts: [process.env.PRIVATE_KEY]
}
}
};The fastest way to manage RPCForge from your terminal.
npm install -g rpcforge-cliWhen you run rpcforge you'll see:
██████╗ ██████╗ ██████╗███████╗ ██████╗ ██████╗ ██████╗ ███████╗
██╔══██╗██╔══██╗██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔════╝
██████╔╝██████╔╝██║ █████╗ ██║ ██║██████╔╝██║ ███╗█████╗
██╔══██╗██╔═══╝ ██║ ██╔══╝ ██║ ██║██╔══██╗██║ ██║██╔══╝
██║ ██║██║ ╚██████╗██║ ╚██████╔╝██║ ██║╚██████╔╝███████╗
╚═╝ ╚═╝╚═╝ ╚═════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
⚡ RPCForge CLI v1.0.2 — Multi-chain RPC Gateway
Usage: rpcforge <command>
Commands:
init Configure your endpoint and get integration examples
test Send a live test request and verify your setup
keys List all your API keys
keys create Create a new API key
keys revoke Revoke an API key
stats View total requests, errors, and top methods
| Command | Description |
|---|---|
rpcforge init |
Configure your endpoint and get integration examples |
rpcforge test |
Send a live test request and verify your setup |
rpcforge keys |
List all your API keys |
rpcforge keys create |
Create a new API key |
rpcforge keys revoke |
Revoke an API key |
rpcforge stats |
View total requests, errors, and top methods |
| Plan | Price | Requests/day | Rate limit |
|---|---|---|---|
| Free | $0 | 100,000 | 20 req/min |
| Dev | $9/mo | 1,000,000 | 60 req/min |
| Pro | $29/mo | 10,000,000 | 200 req/min |
| Team | $99/mo | Unlimited | 500 req/min |
No credit card required to start. Upgrade anytime from the dashboard.
| Layer | Technology |
|---|---|
| Backend | Node.js 20, Express, WebSocket (ws) |
| Database & Auth | Supabase (PostgreSQL + Auth) |
| Cache | Upstash Redis |
| Billing | Stripe |
| Frontend | React 18, Vite, Tailwind CSS, Chart.js |
| Routing | React Router v7 |
| CLI | Node.js, Chalk, Inquirer, Ora |
| Backend Hosting | Render |
| Frontend Hosting | Vercel |
Client / dApp
│
│ POST /{chain} + x-api-key
▼
┌─────────────────────────────────────┐
│ RPCForge Gateway │
│ │
│ API Key Auth → Rate Limit → │
│ Method Blacklist → Redis Cache → │
│ Multi-node Failover Router │
│ │
│ WebSocket → Live Dashboard │
└─────────────────────────────────────┘
│
├── Ethereum nodes
├── Polygon nodes
├── BSC nodes
├── Arbitrum nodes
└── Sepolia nodes
All RPC requests require x-api-key header.
Dashboard API routes require Authorization: Bearer <supabase_jwt>.
| Method | Route | Auth | Description |
|---|---|---|---|
POST |
/{chain} |
API Key | Forward JSON-RPC request |
GET |
/keys |
JWT | List API keys |
POST |
/keys |
JWT | Create API key |
DELETE |
/keys/:key |
JWT | Revoke API key |
GET |
/stats |
JWT | Request stats and top methods |
GET |
/logs |
JWT | Last 200 request logs |
GET |
/chains |
Public | List supported chains |
GET |
/health |
Public | Health check |
POST |
/billing/create-checkout |
JWT | Start Stripe checkout |
GET |
/billing/status |
JWT | Get current plan |
RPCForge is open source. Contributions are welcome.
git clone https://github.com/0xMayurrr/RPCForge.git
cd RPCForge
# Backend
npm install && node server.js
# Frontend
cd frontend && npm install && npm run dev- Fork the repo
- Create a branch:
git checkout -b feature/your-feature - Commit and push
- Open a Pull Request
MIT © 2025 Mayur
Live App · Dashboard · npm CLI · Product Hunt
Made with ⚡ by Mayur
⭐ Star this repo if RPCForge saves you money on RPC costs