Stop Paying for Redundant RPC Calls
Prism is a high-performance Ethereum RPC proxy that reduces your RPC costs by 70-90% through intelligent caching, adaptive routing, automatic failover, and partial range fulfillment.
The Hidden Cost of Distributed RPC Access
Every microservice managing its own RPC connections creates compounding inefficiencies.
Duplicate Caching
Every microservice maintains its own block cache, multiplying memory usage and storage costs while serving identical data.
Wasted Quota
Parallel services make redundant upstream calls for the same blocks and transactions, burning through your RPC quota unnecessarily.
Complex Failover Logic
Retry strategies, circuit breakers, and provider fallbacks scattered across codebases lead to inconsistent reliability.
Prism centralizes your RPC layer.
One shared cache. One failover strategy. Zero code changes to your applications.
Everything Your RPC Layer Needs
Production-ready features built for serious infrastructure.
Cache That Understands Ethereum
- Multi-layer caching (blocks, transactions, receipts, logs)
- Finality-aware: blocks cached permanently after confirmations
- Partial range fulfillment for eth_getLogs
- Roaring bitmap indexes for O(log n) log queries
# Request logs for blocks 100-110
# Prism has 100-105 cached, only fetches 106-110
curl -X POST http://localhost:3030/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [{
"fromBlock": "0x64",
"toBlock": "0x6e"
}],
"id": 1
}'
# Response header: X-Cache-Status: PARTIALGet Involved
Prism is fully open source and MIT + Apache 2.0 licensed. We'd love your help building the future of Ethereum RPC infrastructure.
Contribute
Submit PRs, improve docs, or help triage issues. Every contribution matters.
Join the Discussion
Share ideas, report bugs, and help shape the roadmap on GitHub Discussions.
Spread the Word
Star the repo, share your experience, or write about how you use Prism.
Ready to try Prism?
Clone the repo, spin it up, and start saving on RPC costs today.
Transparent Cache Behavior
Every response includes an X-Cache-Status header.
All requested data was found in Prism's cache. Fastest response path.
HTTP/1.1 200 OK Content-Type: application/json X-Cache-Status: FULL X-Response-Time: <1ms
Absurdly Fast. Ruthlessly Efficient.
Built in Rust for maximum performance without sacrificing safety.
| Method | With Prism (cached) | Direct RPC | Speedup |
|---|---|---|---|
| eth_getBlockByNumber | 0.5ms | 120ms | up to 240x |
| eth_getLogs (partial) | 2ms | 180ms | up to 90x |
| eth_getTransactionReceipt | 0.8ms | 100ms | up to 125x |
* Benchmarks measured with warm cache against public RPC endpoints. Actual performance varies by network conditions and provider latency.
Benchmark Results
* Benchmarks measured with warm cache. Results vary by conditions.
Beyond Basic Proxies: Intelligent Routing
Tail Latency Optimization
P99 < 50msRequest hedging sends parallel requests after configurable delay, returning first successful response. Eliminates P99/P999 outliers.
Data Integrity Guarantee
99.9% accuracyConsensus validation ensures multi-provider agreement for critical methods. Detects provider inconsistencies and chain reorgs automatically.
Adaptive Provider Ranking
Real-time scoringMulti-factor scoring continuously ranks upstreams by latency, error rates, throttling, and block lag using sliding windows.
How SmartRouter Works
Adaptive routing that automatically selects the optimal strategy for each request. Priority flows from Consensus to Scoring to Hedging to Fallback.
Consensus Check
For critical methods, query multiple upstreams and validate agreement
Scoring Selection
Select upstream based on multi-factor weighted scoring
Request Hedging
After delay threshold, send parallel request for tail latency
Fallback
Weighted round-robin as final fallback strategy
Unified ChainState
Lock-free read pattern provides sub-50ns reads for chain tip data. Single source of truth coordinated across all components.
Provider Penalty System
Disagreeing upstreams are automatically penalized through the scoring system. Bad actors are deprioritized in real-time.
Method-Aware Routing
Different strategies automatically selected based on method criticality. Consensus for state-changing, hedging for latency-sensitive.
Full Ethereum JSON-RPC Support
Smart caching for immutable data, transparent proxy for everything else.
Optimized with Caching
eth_getBlockByNumberBlock cache with hot windoweth_getBlockByHashHash-based lookupeth_getLogsPartial range fulfillmenteth_getTransactionByHashTransaction cacheeth_getTransactionReceiptReceipt with logs
Proxied to Upstream
eth_blockNumbereth_chainIdeth_gasPriceeth_getBalancenet_versionAll other JSON-RPC methods
Built for Serious Infrastructure
From startups to enterprises, Prism scales with your needs.
DeFi Backends
High-volume log queries with 95%+ cache hit rates for event monitoring and indexing.
Block Explorers & Analytics
Aggregate data from multiple RPC sources reliably with automatic failover.
NFT Platforms
Handle transaction lookups at scale without hitting rate limits.
MEV & Trading Bots
Ultra-low latency access for searchers, arbitrage bots, and automated trading strategies.
Development Teams
Reduce RPC provider costs during development and testing cycles.
Running Prism at Scale?
Prism is a community-driven open-source project. If you're building something ambitious or need a hand with your setup, the maintainers are happy to connect and collaborate.
Maintainer Support
Get direct guidance from the people who built Prism when you need it most.
Feature Collaboration
Have a specific use case? We love working with the community to prioritize what matters.
Deployment Guidance
We're happy to share our experience with production setups and performance tuning.
How We Can Help
Community-first collaboration
Prism is and always will be 100% open-source and MIT + Apache 2.0 licensed.
We believe in building together with our community.
Simple to Deploy, Powerful in Production
A single binary that sits between your services and upstream providers.
Up and Running in 5 Minutes
No complex setup. Just clone, configure, and run.
Clone and Build
git clone https://github.com/prismrpc/prism
cd prism && cargo make build-releaseClone and Build
git clone https://github.com/prismrpc/prism
cd prism && cargo make build-releaseConfigure
cat > config.toml << EOF
[server]
bind_address = "127.0.0.1"
bind_port = 3030
[[upstreams.providers]]
name = "alchemy"
chain_id = 1
https_url = "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
weight = 2
[[upstreams.providers]]
name = "infura"
chain_id = 1
https_url = "https://mainnet.infura.io/v3/YOUR_KEY"
weight = 1
[cache]
enabled = true
EOFConfigure
cat > config.toml << EOF
[server]
bind_address = "127.0.0.1"
bind_port = 3030
[[upstreams.providers]]
name = "alchemy"
chain_id = 1
https_url = "https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY"
weight = 2
[[upstreams.providers]]
name = "infura"
chain_id = 1
https_url = "https://mainnet.infura.io/v3/YOUR_KEY"
weight = 1
[cache]
enabled = true
EOFRun
PRISM_CONFIG=./config.toml ./target/release/serverRun
PRISM_CONFIG=./config.toml ./target/release/serverTest
curl http://localhost:3030/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Test
curl http://localhost:3030/ \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'What's Coming Next
Active development with a focus on performance and reliability.
How Prism Compares
Beyond basic proxies: intelligent routing, consensus validation, and performance optimization.
| Feature | PrismRecommended | eRPC | Direct RPC |
|---|---|---|---|
| Language | Rust 🦀 | Go | |
| Partial Log Caching | |||
| Bitmap Indexes | |||
| Consensus Validation | |||
| Request Hedging | |||
| Multi-Factor Scoring | |||
| Smart Routing | |||
| Memory Efficiency | |||
| Failover | |||
| Circuit Breaker | |||
| Self-hosted |
Comparison based on publicly available documentation and benchmarks.
Frequently Asked Questions
Everything you need to know about Prism.