Provides a single, stable access point to a fleet of Solana validators. The API accepts standard Solana JSON-RPC requests and routes them to an available validator based on your selection criteria.
Base URL: http://thesolanaapi.com
- Severe Rate Limiting: Public endpoints impose strict request limits that quickly trigger 429 "Too Many Requests" errors and throttle applications under load. For example:
- Maximum requests per 10 seconds per IP: 100
- Maximum requests per 10 seconds per IP for a single RPC: 40
- Maximum concurrent connections per IP: 40
- Maximum connection rate per 10 seconds per IP: 40
- Maximum data transfer per 30 seconds: 100 MB
- Congestion & Latency: During high traffic periods, responses can become slow or erratic, impacting transaction submission and state reading.
- Zero Customization: Impossible to adjust optimization strategies or routing based on region or method.
GET /healthโ Simple health check. Returns{ "status": "ok" }.GET /validatorsโ Discover exposed validators (aliases and locations).POST /?server=<alias>โ Forward JSON-RPC request to the named validator.POST /?location=<label>โ Select a validator from the requested location.POST /โ If no selector is provided, a validator is chosen randomly.
Notes:
- JSON-RPC request bodies and responses are transmitted as-is.
- Upstream errors (unavailable validator, misconfiguration) are propagated with their status codes.
Base URL: http://thesolanaapi.com
Common headers for all POST requests:
- Method: POST
- Header: Content-Type: application/json
curl -X GET "http://thesolanaapi.com/health"Expected response:
{
"status": "ok"
}curl -X GET "http://thesolanaapi.com/validators"Response example:
{
"validators": [
{ "name": "frankfurt-1", "location": "Frankfurt", "protocol": "http" },
{ "name": "paris-1", "location": "Paris", "protocol": "http" },
{ "name": "tokyo-1", "location": "Tokyo", "protocol": "http" }
]
}curl -X POST "http://thesolanaapi.com/?location=Paris" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": ["<public-key>"]
}'curl -X POST "http://thesolanaapi.com/" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getLatestBlockhash",
"params": []
}'curl -X POST "http://thesolanaapi.com/?server=paris-1" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sendTransaction",
"params": ["<base64-encoded-transaction>"]
}'curl -X POST "http://thesolanaapi.com/?server=frankfurt-1" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getSignaturesForAddress",
"params": [
"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
{ "limit": 1000 }
]
}'curl -X POST "http://thesolanaapi.com/?location=Frankfurt" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBlock",
"params": [
"latest",
{
"commitment": "finalized",
"maxSupportedTransactionVersion": 0
}
]
}'curl -X POST "http://thesolanaapi.com/" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "simulateTransaction",
"params": [
"<base64-encoded-transaction>",
{
"sigVerify": false,
"replaceRecentBlockhash": true,
"commitment": "processed"
}
]
}'For more methods and parameters, refer to the Solana JSON-RPC API documentation.
Be careful: Some nodes may be behind the current Solana network state. Use getLatestBlockhash to verify the "node's freshness". Check the
slotfield in responses to ensure you're interacting with an up-to-date validator.
quarry-bay-1
tel-aviv-1
tokyo-1
singapore-1singapore-2singapore-3singapore-4
espoo-1helsinki-1helsinki-2
lauterbourg-1strasbourg-1
fechenheim-1fechenheim-2fechenheim-3fechenheim-4fechenheim-5frankfurt-1frankfurt-2frankfurt-3frankfurt-4frankfurt-am-main-1frankfurt-am-main-2frankfurt-am-main-3frankfurt-am-main-4frankfurt-am-main-5frankfurt-am-main-6frankfurt-am-main-7hattersheim-1nuremberg-1
siauliai-1
amsterdam-1amsterdam-2amsterdam-3amsterdam-4amsterdam-5
warsaw-1warsaw-2warsaw-3
madrid-1
stockholm-1stockholm-2
amsterdam-6amsterdam-7amsterdam-8amsterdam-9amsterdam-10
atlanta-1bluffdale-1chicago-1dallas-1elk-grove-village-1los-angeles-1louisville-1new-york-1new-york-2newark-1newark-2newark-3newark-4phoenix-1pittsburgh-1secaucus-1st-louis-1
- Implement CDN Integration: Deploy the API behind a Content Delivery Network (CDN) to improve response times and reduce latency for users across different regions. This will ensure faster routing and caching of static responses where applicable.
- Expand Geographical Coverage: Add more nodes in different regions to provide better access and lower latency for users worldwide.
- Implement WSS Support: Add WebSocket support for real-time updates and subscriptions, enhancing the API's capabilities for applications that require live data.
- Implement YellowStone GRPC Support: Integrate YellowStone GRPC to provide an alternative communication protocol.
- Implement ShredStream Support: Add support for ShredStream to enhance data streaming capabilities.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
