Documentation

Base endpoint

https://rpc.nodelane.dev/queries/solana?key=YOUR_API_KEY

Authentication

Every request needs a valid API key passed as the key query parameter. Get a key from your dashboard after subscribing. Missing or invalid keys are rejected before the request reaches any upstream provider.

NodeLane Units

Usage is metered in NodeLane Units (NU), not raw request count. Every supported method costs a flat 40 NU per call, regardless of method complexity. A batch request is billed per item: a 3-call batch costs 120 NU.

The price is the same whichever upstream provider serves the call, whether it reads recent or historical data, and whether it's answered from cache. There are no archive surcharges or per-method multipliers. Calls rejected by validation (for example an unfiltered getProgramAccounts) also count, so filter requests client-side where you can. Two things are never charged: a batch that's empty or over 25 calls (it's rejected whole), and a call no upstream could serve at the time, which returns -32000 "Upstream temporarily unavailable, please retry".

Supported methods · 52

40 NU each

Accounts & tokens12

  • getAccountInfo
  • getBalance
  • getMultipleAccounts
  • getProgramAccounts
  • getLargestAccounts
  • getMinimumBalanceForRentExemption
  • getStakeMinimumDelegation
  • getTokenAccountBalance
  • getTokenAccountsByDelegate
  • getTokenAccountsByOwner
  • getTokenLargestAccounts
  • getTokenSupply

Blocks13

  • getBlock
  • getBlockHeight
  • getBlockProduction
  • getBlockCommitment
  • getBlocks
  • getBlocksWithLimit
  • getBlockTime
  • getFirstAvailableBlock
  • getGenesisHash
  • getLatestBlockhash
  • isBlockhashValid
  • getRecentPrioritizationFees
  • minimumLedgerSlot

Transactions7

  • getTransaction
  • getTransactionCount
  • getSignaturesForAddress
  • getSignatureStatuses
  • sendTransaction
  • simulateTransaction
  • getFeeForMessage

Network & cluster20

  • getClusterNodes
  • getEpochInfo
  • getEpochSchedule
  • getHealth
  • getHighestSnapshotSlot
  • getIdentity
  • getInflationGovernor
  • getInflationRate
  • getInflationReward
  • getLeaderSchedule
  • getMaxRetransmitSlot
  • getMaxShredInsertSlot
  • getRecentPerformanceSamples
  • getSlot
  • getSlotLeader
  • getSlotLeaders
  • getSupply
  • getVersion
  • getVoteAccounts
  • requestAirdrop

Rate limits & quota

Each key has a burst limit of 25 calls per second, enforced at the edge, plus a monthly NodeLane Unit (NU) quota tied to your plan. The burst limit counts calls, not HTTP requests: a batch of 10 calls uses 10 of the 25. Calls over the burst limit or monthly quota return a JSON-RPC error instead of forwarding to an upstream provider.

A batch can hold at most 25 calls. A larger or empty batch returns HTTP 400 with error -32600 ("Batch too large (max 25 calls per batch)"), and none of its calls run or are charged. Split bigger jobs into batches of 25 or fewer.

Method notes

NodeLane routes each call to an upstream provider that supports it, but a few methods have constraints worth knowing about:

  • getProgramAccounts: must include a dataSize or memcmp filter, or it's rejected with -32602. For SPL Token accounts, use getTokenAccountsByOwner instead of scanning the Token program; some providers don't index it for getProgramAccounts.
  • getLargestAccounts and getTokenLargestAccounts: served only by providers that support them, so they may be slower or briefly unavailable while we fail over.
  • Historical data: getBlock, getTransaction, getSignaturesForAddress, getBlockTime, getBlocks and getBlocksWithLimit can reach back into archive history. Other methods return current state only, and how far back archive data goes can vary by provider.
  • Caching: finalized blocks and transactions are cached long-term, and some read methods are cached for seconds to minutes, only at finalized commitment. Request confirmed or processed commitment when you need the freshest data. sendTransaction, simulateTransaction, getLatestBlockhash and getSlot are never cached.

Errors

Errors come back as standard JSON-RPC error objects, so your client's existing error handling applies.

CodeMeaning
-32000Upstream temporarily unavailable, please retry (not charged)
-32001Missing or invalid API key
-32002API key revoked
-32005Rate limited (burst)
-32006Monthly quota exceeded
-32600Batch empty or over 25 calls (HTTP 400, not charged)
-32602Invalid params (e.g. an unfiltered getProgramAccounts call)