ZeroCopyZeroCopy
Sending

Limits

Transaction sizes, submission rates and connection limits.

Submission rate

Your API key has a configured send rate in each region. A transaction or bundle uses one submission; queries do not count. A separate bundle-rate limit may apply.

For rate_limited, use per_second and retry_after_ms when included. Slow down and wait before retrying instead of opening more connections.

Request sizes

RequestLimit
Legacy or v0 transaction1,232 wire bytes
v1 transaction4,096 wire bytes
Bundle1 to 4 transactions, each within its transaction limit
JSON-RPC request65,536 body bytes; one request, not a batch

Use base64 for transactions above 1,232 bytes. Binary and QUIC formats have their own HTTP, QUIC and IPC reference pages.

too_large reports the allowed limit and the submitted size when known. For a bundle, index identifies the affected transaction.

Connections

Reuse connections rather than creating one per submission.

Hosted connectionLimit in each region
HTTP/HTTPS from one source IPv4 address256 open connections combined
QUIC using one API key32 open connections

The local agent does not apply the hosted HTTP per-IP limit.

Timeouts

Finish writing request bodies within two seconds. If a request times out or disconnects, its outcome may be unknown: check the transaction's signature before replacing it.

Busy regions

For overloaded or a temporary not_ready, wait and retry while the transaction is valid, or choose another region.

Declared tips

Contact support to enable declared tips and arrange payment. The request's tip is a positive integer in lamports; use a safe integer in JavaScript.

On this page