Browse documentation

Wallets & apps

Read routing and limits

Understand proxy reads, public-provider failover, rate limits, and direct reads for custom clients.

3 min read

One URL, server-controlled failover#

Ordinary wallets use https://rpc.blockferret.win. Reads are proxied to eligible, healthy public PulseChain RPC providers. Public providers see the proxy server’s outbound IP.

The server can retry eligible infrastructure failures and select another provider. Signed transaction submissions use private intake and do not follow the public read path.

Public read limits#

Read budgets refill continuously and allow short page-load bursts. Each JSON-RPC batch member consumes client quota; the HTTP batch limit is 16 members.

BudgetSustained allowanceBurst allowance
Per client IP20 read items/second100 items
All client IPs50 read items/second200 items
Per public provider origin8 outbound requests/second16 requests
All public outbound attempts50 requests/second200 requests

Provider budgets include retries and health checks. When an origin is paced, the proxy can try another eligible provider. Requests that cannot obtain local capacity receive a rate-limit response with a retry hint; local throttling does not force traffic onto the shared fallback.

Handle throttling in your app#

Respect Retry-After, back off on HTTP 429 or JSON-RPC -32005, and avoid retry loops. Cache chain identity, coalesce duplicate reads, and pause background polling in hidden tabs. Provider limits and outage conditions can still cause requests to fail.

Bounded Switch read fallback#

After eligible public providers are exhausted, a separately verified Switch PulseChain read RPC can serve eligible requests. It is limited to 6 fallback reads/minute/IP and 60/minute globally including health probes, with one request in flight and a 750 ms timeout.

Fallback simulations are capped at 500,000 gas without state overrides. Fee history is limited to 32 blocks and 20 percentiles. Stale or lagging fallback state is not used. The fallback never receives transaction submissions.

Direct reads for compatible clients#

A custom app can use our dependency-free helper to try a public read directly from the user’s device, then retry an eligible failure once through the original proxy URL. Direct requests use the device’s outbound IP; normal proxy fallback uses the server’s IP.

JavaScript
import { createPrivateRPCClient } from './private-rpc-client.mjs';

const rpc = createPrivateRPCClient();
const balance = await rpc.request({
  method: 'eth_getBalance',
  params: ['0xYOUR_ADDRESS', 'latest'],
});

Download the example client and the full routing guide. The helper works with Fetch in Node.js 20+ or a browser.

Private write isolation#

Private writes, nonce reads, and mixed read/write batches use the original endpoint with redirects disabled. Execution reverts and invalid user parameters are returned without shopping for a different result. Ambiguous write timeouts are not automatically retried or broadcast publicly.

Search guides, concepts, and API reference.