Rate Limits

Understand NoLimitNodes rate limits and plan-based quotas.

Limits apply by plan and product.

Plan limits

FeatureFreeProUltraEnterprise
RPC requests3/sec200/sec500/secCustom
WebSocket subscriptionsNone520Custom
Yellowstone streamsNone210Custom
Enhanced or Program StreamsNone220Custom
blockSubscribeNoneNoYesCustom
InfrastructureSharedPrivatePrivateDedicated
SupportCommunityPriorityPriorityNamed
SLANonePlan termsPlan termsContract

Check the pricing page and your dashboard for current commercial terms.

HTTP rate limits

The RPC endpoint returns HTTP 429 after your request rate exceeds its limit.

Retry with exponential backoff and jitter.

const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms)) async function callRpc(body, attempt = 0) {  const response = await fetch("https://rpc.nln.clr3.org", {    method: "POST",    headers: {      "content-type": "application/json",      "x-api-key": process.env.NLN_API_KEY,    },    body: JSON.stringify(body),  })   if (response.status === 429 && attempt < 4) {    const delay = 250 * 2 ** attempt + Math.floor(Math.random() * 150)    await wait(delay)    return callRpc(body, attempt + 1)  }   return response.json()}

Connection limits

Close subscriptions after use. A disconnected client still needs server cleanup time.

Use one filtered Yellowstone subscription instead of many broad subscriptions where possible.

Reduce usage

  • Batch independent RPC reads.
  • Use getMultipleAccounts for grouped account reads.
  • Subscribe instead of polling.
  • Cache epoch and cluster metadata.
  • Share one backend subscription across browser users.
  • Remove stale filters before opening new streams.