Skip to Content
Bolt Low LatencyHTTPSend Binary Transaction

Send Binary Transaction

Binary transaction submission for lower overhead

Submit a signed Solana transaction as raw binary bytes — no JSON-RPC wrapping, no base64 encoding.

Why Use This?

sendTransaction (JSON-RPC)sendRawTransaction (Binary)
Request formatJSON body with base64-encoded transactionRaw transaction bytes
Client-side stepsSerialize → base64 encode → wrap in JSON → sendSerialize → send
Payload size~33% larger (base64 + JSON framing)Minimal — just the transaction bytes
Content-Typeapplication/jsonapplication/octet-stream
Response formatJSON-RPC envelopeSimple JSON

Request

POST /api/v1/sendRawTransaction Content-Type: application/octet-stream api-x-token: YOUR_API_KEY <raw transaction bytes>

The request body is the serialized Solana transaction — the same bytes from transaction.serialize(). No base64 encoding, no JSON wrapping.

Response

{ "success": true, "signature": "5VERv8NrdMSiGjLEoGKPqmCsR4WxgEfnTAbVnriGjLK..." }
FieldTypeDescription
successbooleantrue if the transaction was accepted
signaturestringSolana transaction signature

Error Response

{ "success": false, "error": "Failed to decode transaction: ..." }
HTTP StatusMeaning
400Invalid or empty transaction bytes, or missing tip
401Invalid or missing API key
429Rate limit exceeded
500Internal error — retry the request

Examples

import requests # tx_bytes = transaction.serialize() from solana-py / solders tx_bytes = b"..." response = requests.post( "http://fra.bolt.raiden.wtf/api/v1/sendRawTransaction", headers={ "Content-Type": "application/octet-stream", "api-x-token": "YOUR_API_KEY", }, data=tx_bytes, ) result = response.json() if result["success"]: print(f"Signature: {result['signature']}") else: print(f"Error: {result['error']}")

sendRawTransaction is recommended for new integrations. The JSON-RPC sendTransaction endpoint remains fully supported.

Last updated on