Base
准备好在生产环境中调用了吗?
免费套餐涵盖个人项目。按量付费,无需绑卡即可扩展。
Base
免费套餐涵盖个人项目。按量付费,无需绑卡即可扩展。
Rate limiting caps how many requests you can send in a given window. TheRPC applies it to your Base traffic to keep the service fast and fair for everyone and to protect the underlying nodes from overload. Limits are enforced at several levels at once — per second, per minute, and per day, plus a ceiling on concurrent WebSocket connections. The exact numbers depend on your subscription plan and are shown in your dashboard, so check there to see what your current key allows.
When you exceed a limit on Base, the API returns a JSON-RPC error with code -32029 and the message "Rate limit exceeded" (shown below). Alongside it, the HTTP response carries rate-limit metadata in headers — X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset — so your client can see how much quota is left and when it resets without guessing.
Three strategies keep your Base integration under its limits. First, retry rejected requests with exponential backoff so brief spikes recover on their own. Second, batch independent calls into a single request to cut round trips. Third, replace polling with WebSocket subscriptions for real-time data — a single stream of Base's ~2-second blocks costs far fewer requests than repeatedly asking for the latest state. The sections below show each in practice.
For real-time data on Base, eth_subscribe over WebSocket removes polling overhead entirely: instead of asking for the latest block every couple of seconds, you open one connection and the server pushes new heads, logs, and pending transactions as they occur. This drastically lowers your request count while delivering updates faster. See the eth_subscribe reference for subscription types and examples.
X-RateLimit-Remaining and X-RateLimit-Reset on each response to see live quota in your code.Manage your Base quota programmatically by reading the rate-limit headers off every response — X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset — and slowing down before you hit zero (the helper below shows the pattern). You can also cut request volume with caching: data that changes slowly or never — chain ID, deployed contract bytecode, and finalized historical blocks — can be cached locally so you never re-fetch it, leaving your quota for live reads.
Plans differ on the limits that matter for Base workloads: request rate, daily quota, the number of concurrent WebSocket connections, and how many active subscriptions you can hold. Higher tiers also unlock heavier capabilities — archive data for historical state, the debug_ methods, and the trace_ API — which are essential for indexers, analytics, and forensic work but gated on lower plans. Compare tiers side by side on the pricing page to pick the one that fits your traffic.
eth_subscribe to slash request count.