Base limits and enforced rate policy
All values below are generated from the enforced tier matrix and the final OpenRPC budget annotations. They are not measured upstream capacity, a provider contract, or an SLA. Enterprise uses finite Base overrides; it is not physically unlimited.
| Budget key | Free | Basic | Pro | Business | Enterprise |
|---|---|---|---|---|---|
base_read_rpc | 10 RPS | 20 RPS | 100 RPS | 250 RPS | 250 RPS |
base_send_tx | 3 RPS | 5 RPS | 30 RPS | 80 RPS | 80 RPS |
base_read_rpc_heavy | — | — | 2 RPS | 5 RPS | 5 RPS + provider ceiling |
base_simulate | — | — | 2 RPS | 5 RPS | 5 RPS + schema/provider gate |
base_aa | — | — | on request; no numeric RPS | on request; no numeric RPS | on request; provider-gated |
base_send_bundle | — | — | beta/on request; no numeric client RPS | beta/on request; no numeric client RPS | on request; provider-gated |
base_send_private | — | — | beta/on request; no numeric client RPS | beta/on request; no numeric client RPS | on request; provider-gated |
The conservative shared Blink adapter start is one request per 30 seconds with burst 1 across its provider group. This is an engineering safety bound, not a known provider limit or a customer allowance. key_required remains in force.
Parameter limits
Each method page reproduces its complete OpenRPC parameter schema and lists every frozen minimum, maximum, minItems, maxItems, pattern, or enum constraint. If no numeric bound is present, the page says unknown; implementations must not invent an unlimited limit.
Notable frozen boundaries:
eth_sendBundle.txshasminItems: 2; no maximum is established. Old case labels mentioning 50/100/500 do not prove a 500-item limit or unlimited bundles.- State/log methods with a bounded current profile use
base_read_rpc; historical state, large ranges, or overrides are Pro/base_read_rpc_heavy, availability unknown, and a null provider limit denies the request. - Historical block retrieval does not prove archive state. No archive-state depth or range SLA is frozen.
- Block selectors are method-specific and must be preserved. Never rewrite
pending,safe, orfinalizedtolatest.
See Base errors for tier/rate error handling.