/hofund for clients that would rather not build JSON. They accept only sendTransaction, sendBatch, and getHealth; bundles, ideal pairs, and nonces are JSON-RPC only.
Query parameters
method is required exactly once: sendTransaction, sendBatch, or getHealth. A submission may add exactly one lane selector: swqos-only=true or mev-protect=true. getHealth takes neither. Nothing else is accepted: no duplicates, no unknown names, no URL-encoded names, no trailing ?.
/hofund/plain
content-type: text/plain.
/hofund/binary
content-type: application/octet-stream (may be omitted for sendTransaction).
Responses
Success is a compact object withoutjsonrpc or id:
"id": null and the same codes as JSON. X-Hofund-Submission-ID is returned on submissions.
WebSocket /hofund/ws and /hofund/ws/mev-protect
GET upgrade with no query string, no body, and no subprotocol. /hofund/ws is the fast lane; /hofund/ws/mev-protect is the protected lane. Neither falls back to the other.
- Every application message is one binary frame containing one raw, fully signed transaction, at most 1232 bytes. Text frames close the socket with
1003. - Nothing is sent back. There is no acknowledgement and no submission id. Reconcile each signature through ThorEdge RPC.
- The server pings every 25 s and closes on a missed pong after 30 s, or after 5 minutes without a data message.
- Per key: at most 10 concurrent connections and 16 in-flight admissions per connection. Over the limit, the handshake returns
429withRetry-After: 1.
Handshake failures return
{"error":"…"} with 400 (query or body present, bad Origin, invalid upgrade), 405 (not GET), 503 (lane unavailable), or 502 (upstream unreachable).