ZeroCopyZeroCopy
Connect

Choose a transport

Choose JSON-RPC, raw HTTP, QUIC or the local SWQoS agent.

Start with JSON-RPC unless your sender needs a binary interface. Every interface requires the same signed transactions and tips. A successful response is acceptance, not confirmation.

InterfaceSendReplyPreflight
JSON-RPCBase58 or base64 transaction stringsSignature or bundle id; structured errorsOptional for one transaction; off by default
Binary HTTPWire bytes to POST /binaryPlain-text signature or bundle id; JSON errorsNo
Base64 HTTPBase64 payload to POST /plaintextSame as binary HTTPNo
QUIC bidirectional streamWire bytesReply frame with error detailsOptional for one transaction, at processed
QUIC datagram or unidirectional streamWire bytesNone, even on rejectionNo
Local agentLocal HTTP, QUIC or Linux IPCDepends on the interfaceSee agent preflight

JSON-RPC

Use it with an HTTP client or Solana client library. Set encoding: "base64" if your signing library produces base64. SWQoS defaults to base58, disables preflight by default and ignores maxRetries.

Use the client helper when you need structured rejection fields. Some Solana libraries discard those fields.

Raw HTTP

Use /binary for signed wire bytes, or /plaintext for base64. Both support bundles and declared tips through the payload envelope.

Check the HTTP status before reading a success body as a signature or bundle id.

QUIC

Use a persistent connection for multiple requests. Choose bidirectional streams when you need acceptance, error details or a preflight check. Use a stream rather than a datagram when your payload exceeds the path's datagram size.

Local agent

The agent runs on your Linux host and provides local HTTP, QUIC and IPC. Its local listeners do not authenticate callers. Keep them local or restrict access: anyone who can reach them can send under your key.

Declared tips

Declared tips require setup with support, whichever transport you use.

On this page