A Postman style JSON-RPC playground for testing blockchain RPC endpoints. No backend required - all requests are made directly from your browser to the RPC providers.
π Live Playground: https://krainode.krissemmy.com/playground
- Multi-chain support - Test endpoints across 13+ blockchain networks
- Provider selection - Choose from curated public providers or use your own custom URLs
- HTTP/HTTPS support - Works with both local development nodes and production endpoints
- Live endpoint testing - Probe endpoints before making requests to check connectivity
- Request/Response viewer - JSON editor with syntax highlighting and formatted responses
- Local persistence - Your selections and recent requests are saved locally
- Zero infrastructure - Pure client-side application, deploy anywhere
# Clone and navigate to the project
git clone <repository-url>
cd krainode-rpc-proxy
# Install dependencies and start dev server
cd web
npm install
npm run dev
# Open http://localhost:8000
# Start development environment
make docker-dev
# Visit http://localhost:8000
# Stop when done
make docker-dev-down
# Copy environment file
cp env.example .env
# Edit .env with your domain and email
# [email protected]
# APP_HOST=your-domain.com
# Start production stack
make docker-up
# View logs
make docker-logs
The app is a static React application that can be deployed to any static hosting service:
# Build the application
cd web
npm install
npm run build
# Deploy the 'dist' folder to your hosting service
Vercel deployment:
- Connect your GitHub repository to Vercel
- Set build command:
cd web && npm install && npm run build
- Set output directory:
web/dist
- Deploy
Netlify deployment:
- Connect your GitHub repository to Netlify
- Set build command:
cd web && npm install && npm run build
- Set publish directory:
web/dist
- Deploy
For production deployments with custom domains and automatic HTTPS:
- Set up your domain DNS to point to your server
- Configure environment variables:
[email protected] APP_HOST=your-domain.com
- Run
make docker-up
Caddy will automatically obtain SSL certificates and handle HTTPS redirects.
Edit chains.yaml
to add new blockchain networks or RPC providers:
ethereum
mainnet:
noderpc: "https://api.noderpc.xyz/rpc-mainnet/public"
publicnode: "https://ethereum-rpc.publicnode.com"
After editing, restart the dev server or rebuild to regenerate the chains configuration.
Create a .env
file with:
# Required for Caddy TLS certificates
[email protected]
# Your domain name (for production)
APP_HOST=your-domain.com
krainode-mvp/
βββ web/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Main application pages
β β βββ lib/ # Utility functions
β βββ scripts/ # Build scripts
β βββ public/ # Static assets
βββ chains.yaml # Chain/network/provider configuration
βββ Dockerfile # Production Docker image
βββ docker-compose.yml # Production stack
βββ docker-compose-dev.yml # Development stack
βββ Caddyfile # Reverse proxy configuration
βββ Makefile # Development commands
# Development
make dev # Start Vite dev server
make build # Build production bundle
make clean # Clean build artifacts
# Docker
make docker-dev # Start development with Docker
make docker-up # Start production stack
make docker-down # Stop production stack
make docker-logs # View container logs
- New RPC methods: Add to
MethodSelect
component - New chains: Update
chains.yaml
and restart dev server - UI components: Add to
web/src/components/
- Styling: Uses Tailwind CSS, edit component classes
Some RPC providers block browser requests due to CORS policies. The playground will show:
- OK - Request successful
- Blocked (CORS/Network) - CORS or network issue
- Timeout - No response within 30 seconds (RPC requests) or 4 seconds (probe requests)
Solutions:
- Try a different provider
- Use a CORS proxy for development
- Deploy your own RPC endpoint with proper CORS headers
# Clear node_modules and reinstall
cd web
rm -rf node_modules package-lock.json
npm install
# Clear browser cache and localStorage
# Open dev tools > Application > Storage > Clear storage
# Rebuild containers
make docker-down
make docker-up
# Check logs
make docker-logs
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally with
make dev
- Submit a pull request
Currently configured in backend/chains.yml
with PublicNode endpoints:
- Ethereum Mainnet (
ethereum
) - Base Mainnet (
base
) - Celo Mainnet (
celo
) - Avail Mainnet (
avail
) - Blast Mainnet (
blast
) - Mantle Mainnet (
mantle
) - Linea Mainnet (
linea
) - Sei EVM Mainnet (
sei-evm
) - Scroll Mainnet (
scroll
) - Arbitrum One (
arbitrum
) - Avalanche C-Chain (
avalanche-c-chain
) - Gnosis Mainnet (
gnosis
) - Unichain Mainnet (
unichain
)
- GitHub Issues: Report bugs and request features
- Documentation: Full API documentation
MIT License - see LICENSE file for details.
Made with β€οΈ for the blockchain community