
Make a request
- Plaintext
- TLS
?api-key= appended, or set the x-token header if the SDK lets you add headers:
From a web page
Browsers can call RPC directly athttps://ams.tls.sodae.io. Give the page its own key and limit it to your site with a domain rule; never put a server key in front-end code.
Batches
Send a JSON array of requests to get an array of responses:sendTransaction in it counts against your sendTransaction limit.
Each call in a batch is answered on its own. If one call cannot be served, its entry carries the error with its id, the other calls still return their results, and the failed call costs no credits.
History
The endpoint serves the full ledger history:getBlock, getTransaction and getSignaturesForAddress reach back to genesis. getSignatureStatuses returns statuses for recent transactions; it does not support searchTransactionHistory.
Rate limits
Your plan sets requests per second for your whole account, shared by all your API keys; trials allow 5. Requests above the rate get HTTP429 with JSON-RPC code -429 and x-error-code: RATE_LIMITED. Back off and retry. A higher rate takes effect as soon as you buy it.
sendTransaction calls per second are also limited across your whole account: 12 on Developer, 50 on Business and 125 on Professional, and a quarter of the request rate on RPC plans priced by request rate. Sends above it get HTTP 429 with x-error-code: SEND_RATE_LIMITED; other methods are not affected.
Sending transactions
Transactions land most reliably when the client does the following:- Skip preflight. Pass
skipPreflight: true. To check a transaction first, callsimulateTransactionseparately, then send it. A simulation counts as a read. - Retry in your own code. Pass
maxRetries: 0and resend the same signed transaction until it confirms or its blockhash expires. Then fetch a new blockhash, sign again and send. - Use a settled blockhash. Fetch it with
confirmedorfinalizedcommitment, neverprocessed. - Set the compute budget. Request only the compute units the transaction needs, and always add a priority fee.
getRecentPrioritizationFeesshows recent fees for the accounts you write.
sendTransaction call and counts against your sendTransaction limit.
Credits
Every method has a credit cost, listed in Methods. RPC plans include 200,000 credits per request per second each month; trials, packages and credit packs carry their own. When the allowance runs out, requests get HTTP402 with x-error-code: QUOTA_EXCEEDED.
Large responses
Responses are streamed as they are produced, so large results such asgetProgramAccounts over a big program are supported. Use dataSlice and filters to keep responses small.
