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 eachAccounts & 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 adataSizeormemcmpfilter, or it's rejected with-32602. For SPL Token accounts, usegetTokenAccountsByOwnerinstead of scanning the Token program; some providers don't index it forgetProgramAccounts.getLargestAccountsandgetTokenLargestAccounts: 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,getBlocksandgetBlocksWithLimitcan 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
finalizedcommitment. Requestconfirmedorprocessedcommitment when you need the freshest data.sendTransaction,simulateTransaction,getLatestBlockhashandgetSlotare never cached.
Errors
Errors come back as standard JSON-RPC error objects, so your client's existing error handling applies.
| Code | Meaning |
|---|---|
| -32000 | Upstream temporarily unavailable, please retry (not charged) |
| -32001 | Missing or invalid API key |
| -32002 | API key revoked |
| -32005 | Rate limited (burst) |
| -32006 | Monthly quota exceeded |
| -32600 | Batch empty or over 25 calls (HTTP 400, not charged) |
| -32602 | Invalid params (e.g. an unfiltered getProgramAccounts call) |