Skip to content

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.

License

Notifications You must be signed in to change notification settings

BastienGimbert/TheSolanaApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

TheSolanaAPI - Solana Validator API Proxy โ€” Public API

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

Why Not Use Official Public Endpoints?

  • 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.

Endpoints

  • 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.

Request Examples

Base URL: http://thesolanaapi.com

Common headers for all POST requests:

  • Method: POST
  • Header: Content-Type: application/json

1) Health Check

curl -X GET "http://thesolanaapi.com/health"

Expected response:

{
  "status": "ok"
}

2) List Validators

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" }
  ]
}

3) Get Balance by Location

curl -X POST "http://thesolanaapi.com/?location=Paris" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getBalance",
    "params": ["<public-key>"]
  }'

4) Get Latest Blockhash (Random Routing)

curl -X POST "http://thesolanaapi.com/" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getLatestBlockhash",
    "params": []
  }'

5) Send Transaction to Specific Server

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>"]
  }'

6) Get Account Transaction History

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 }
    ]
  }'

7) Get Block with Commitment Level

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
      }
    ]
  }'

8) Simulate Transaction

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.

Available Nodes: November 11, 2025

Be careful: Some nodes may be behind the current Solana network state. Use getLatestBlockhash to verify the "node's freshness". Check the slot field in responses to ensure you're interacting with an up-to-date validator.

๐ŸŒ Asia

๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong

  • quarry-bay-1

๐Ÿ‡ฎ๐Ÿ‡ฑ Israel

  • tel-aviv-1

๐Ÿ‡ฏ๐Ÿ‡ต Japan

  • tokyo-1

๐Ÿ‡ธ๐Ÿ‡ฌ Singapore

  • singapore-1
  • singapore-2
  • singapore-3
  • singapore-4

๐ŸŒ Europe

๐Ÿ‡ซ๐Ÿ‡ฎ Finland

  • espoo-1
  • helsinki-1
  • helsinki-2

๐Ÿ‡ซ๐Ÿ‡ท France

  • lauterbourg-1
  • strasbourg-1

๐Ÿ‡ฉ๐Ÿ‡ช Germany

  • fechenheim-1
  • fechenheim-2
  • fechenheim-3
  • fechenheim-4
  • fechenheim-5
  • frankfurt-1
  • frankfurt-2
  • frankfurt-3
  • frankfurt-4
  • frankfurt-am-main-1
  • frankfurt-am-main-2
  • frankfurt-am-main-3
  • frankfurt-am-main-4
  • frankfurt-am-main-5
  • frankfurt-am-main-6
  • frankfurt-am-main-7
  • hattersheim-1
  • nuremberg-1

๐Ÿ‡ฑ๐Ÿ‡น Lithuania

  • siauliai-1

๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands

  • amsterdam-1
  • amsterdam-2
  • amsterdam-3
  • amsterdam-4
  • amsterdam-5

๐Ÿ‡ต๐Ÿ‡ฑ Poland

  • warsaw-1
  • warsaw-2
  • warsaw-3

๐Ÿ‡ช๐Ÿ‡ธ Spain

  • madrid-1

๐Ÿ‡ธ๐Ÿ‡ช Sweden

  • stockholm-1
  • stockholm-2

๐Ÿ‡ณ๐Ÿ‡ฑ The Netherlands

  • amsterdam-6
  • amsterdam-7
  • amsterdam-8
  • amsterdam-9
  • amsterdam-10

๐ŸŒŽ North America

๐Ÿ‡บ๐Ÿ‡ธ United States

  • atlanta-1
  • bluffdale-1
  • chicago-1
  • dallas-1
  • elk-grove-village-1
  • los-angeles-1
  • louisville-1
  • new-york-1
  • new-york-2
  • newark-1
  • newark-2
  • newark-3
  • newark-4
  • phoenix-1
  • pittsburgh-1
  • secaucus-1
  • st-louis-1

Roadmap

  • 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.

License

Shield: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

CC BY-NC-SA 4.0

About

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.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages