Overview
The Harmonic Salsa RPC API provides a JSON-RPC 2.0 interface for querying blockchain state, submitting transactions, and subscribing to real-time updates. The API is compatible with Solana RPC specifications.Endpoints
HTTP JSON-RPC
Default Port: 8899- Account queries
- Transaction submission
- Block information
- Program account queries
WebSocket
Default Port: 8900- Account subscriptions
- Signature subscriptions
- Slot notifications
- Program account subscriptions
Authentication
By default, Harmonic Salsa RPC endpoints do not require authentication. However, production deployments should:- Use reverse proxies (nginx, HAProxy) for rate limiting
- Implement API key authentication at the proxy level
- Restrict access by IP address or network
- Enable HTTPS/WSS for encrypted communication
Request Format
All HTTP requests use JSON-RPC 2.0 format:Required Fields
jsonrpc: Must be “2.0”id: Request identifier (number or string)method: RPC method nameparams: Array of method parameters (can be empty)
Response Format
Success Response
Error Response
Common Parameters
Commitment Levels
Specify how finalized data should be:processed: Query the most recent block (may not be finalized)confirmed: Query the most recent confirmed block (~400ms)finalized: Query the most recent finalized block (~2 seconds)
Encoding Options
Account data encoding formats:base58: Base58 encoding (default, limited to 128 bytes)base64: Base64 encodingbase64+zstd: Base64 with zstd compressionjsonParsed: Parsed JSON for known program types
Data Slicing
Retrieve a portion of account data:Rate Limits
Public RPC nodes typically enforce rate limits:- HTTP requests: 100 requests/10 seconds per IP
- WebSocket connections: 10 subscriptions per connection
- getRecentBlockhash: 5 requests/second
Running your own node removes these restrictions.
Configuration
Configure RPC settings when starting a validator:Key Options
Port for HTTP JSON-RPC requests
IP address to bind RPC server (use 0.0.0.0 for public access)
Enable all RPC methods (including historical queries)
Number of threads for RPC request processing
Enable transaction history queries
Enable secondary indexes (program-id, spl-token-owner, spl-token-mint)
Error Codes
Standard JSON-RPC 2.0 error codes:| Code | Message | Description |
|---|---|---|
| -32700 | Parse error | Invalid JSON |
| -32600 | Invalid Request | Invalid JSON-RPC |
| -32601 | Method not found | Method doesn’t exist |
| -32602 | Invalid params | Invalid method parameters |
| -32603 | Internal error | Server error |
| Code | Message | Description |
|---|---|---|
| -32001 | MinContextSlotNotReached | Context slot hasn’t been reached |
| -32002 | TransactionHistoryNotAvailable | History not enabled |
| -32003 | TransactionSignatureNotFound | Signature not found |
| -32004 | BlockCleanedUp | Block has been cleaned up |
| -32005 | UnsupportedTransactionVersion | Version not supported |
Health Check
Check if the node is healthy and syncing.Returns:
"ok": Node is healthyerror: Node is behind or unhealthy
Next Steps
- RPC Methods - Complete method reference
- WebSocket API - Real-time subscriptions
- CLI Tools - Using the Solana CLI