TriportRPC

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 keyFreeBasicProBusinessEnterprise
base_read_rpc10 RPS20 RPS100 RPS250 RPS250 RPS
base_send_tx3 RPS5 RPS30 RPS80 RPS80 RPS
base_read_rpc_heavy2 RPS5 RPS5 RPS + provider ceiling
base_simulate2 RPS5 RPS5 RPS + schema/provider gate
base_aaon request; no numeric RPSon request; no numeric RPSon request; provider-gated
base_send_bundlebeta/on request; no numeric client RPSbeta/on request; no numeric client RPSon request; provider-gated
base_send_privatebeta/on request; no numeric client RPSbeta/on request; no numeric client RPSon 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.txs has minItems: 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, or finalized to latest.

See Base errors for tier/rate error handling.