Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
Your provider is up. Your data is wrong. We fix that.
Developer toolsRust · ShellGitHub @rpcplaneOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
RPC Plane handles intelligent routing, slot-aware health scoring, cross-provider validation, and automatic failover.
Translation pending
Loading the full README.
Read the full README ↗Solana RPC proxy with intelligent multi-provider routing, automatic failover, and slot-aware health scoring. A single binary that sits between your app and your RPC providers.
Your App → http://localhost:9400 → [Helius / QuickNode / Triton]
# 1. Download the binary
curl -sSf https://rpcplane.dev/install.sh | sh
# 2. Generate a config
rpc-plane init
# 3. Add your provider URLs and run
rpc-plane run
Your app replaces its provider URL with http://localhost:9400. No other changes needed.
routing.broadcast_writes = true to fan out sendTransaction to all healthy providers — maximizes landing probabilityhistory = "recent" and their null for an old transaction fails over to a full-history provider instead of reaching your app as "not found":9401/metricsScript (Linux / macOS):
curl -sSf https://rpcplane.dev/install.sh | sh
Manual download: grab the binary for your platform from GitHub Releases — Linux and macOS, x86_64 and aarch64.
The Linux binaries are built against glibc 2.35 (Ubuntu 22.04). They run on Ubuntu 22.04+, Debian 12+, Amazon Linux 2023, and Rocky/RHEL 9+. For older systems (RHEL/Rocky 8, Debian 11), use the Docker image or build from source.
Each release includes a .sha256 checksum and a .cosign.bundle Sigstore signature. The install script verifies both automatically when cosign is installed; manual verification:
cosign verify-blob \
--bundle rpc-plane-x86_64-unknown-linux-gnu.cosign.bundle \
--certificate-identity-regexp '^https://github\.com/rpcplane/rpc-plane/\.github/workflows/release\.yml@refs/tags/v[0-9].*$' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
rpc-plane-x86_64-unknown-linux-gnu
Docker:
docker run -v $(pwd)/rpc-plane.toml:/etc/rpc-plane.toml ghcr.io/rpcplane/rpc-plane
From source:
cargo install --git https://github.com/rpcplane/rpc-plane rpc-plane
Minimal config (rpc-plane.toml):
[[providers]]
name = "helius"
url = "https://mainnet.helius-rpc.com/?api-key=${HELIUS_API_KEY}"
[[providers]]
name = "quicknode"
url = "https://your-endpoint.quiknode.pro/${QUICKNODE_API_KEY}"
[[providers]]
name = "triton"
url = "https://your-pool.rpcpool.com/${TRITON_API_KEY}"
Run rpc-plane init to generate a full config with all options and their defaults.
See the configuration reference for every option.
Historical workload analytics is disabled by default. It is delivered as remote
telemetry aggregates for the hosted dashboard and has no Prometheus surface, so
it requires a configured [reporting] block. Add the block below to opt in to
bounded analysis of getTransaction polling, result reuse, and slot age:
[historical_analytics]
queue_capacity = 512
max_queued_bytes = 67108864
max_job_bytes = 2097152
state_capacity = 250000
state_ttl_secs = 172800
flush_interval_ms = 60000
Starting without [reporting] is a config error rather than a silent no-op:
the analyzer would otherwise consume a worker, a queue, and retained fingerprint
state while emitting nowhere.
queue_capacity, max_queued_bytes, and max_job_bytes bound queued analysis
work; state_capacity and state_ttl_secs bound retained fingerprint state.
Jobs that exceed these limits are dropped from analysis without affecting RPC
responses. max_job_bytes must not exceed max_queued_bytes, and all limits
must be positive.
The analyzer does not cache or alter RPC responses and makes no additional RPC
calls. Results are reported only as aggregate counts in the versioned
historical_get_transaction_aggregate telemetry event; no historical metric is
exposed on /metrics. It never exports raw signatures, addresses, request IDs, parameters,
response bodies, or request fingerprints. Request state uses process-local keyed
fingerprints; restarting RPC Plane changes the key and resets that state. These
settings are restart-only and changes made by config hot reload do not take
effect until the process restarts.
rpc-plane run # start the proxy (default)
rpc-plane check # validate config and test provider connectivity
rpc-plane status # show live provider health (proxy must be running)
rpc-plane init # generate a starter config file
rpc-plane --help
rpc-plane -c /path/to/config.toml run
This is the beginning of the README. Read the rest at the original. Read the full README ↗