- Fast sends a single transaction out as quickly as the rails allow, through direct TPU, SWQoS, or both at once.
- Protected delivers through Jito, either as one bundle-only submission or as an atomic bundle that lands together or not at all.
Choose a lane
Each lane does exactly what its name says. A Fast route never falls back to Jito, and a Protected route never falls back to a Fast rail, so the lane you pick is the lane your transaction travels.
Every route takes
POST with a JSON-RPC 2.0 body, and every transaction is capped at 1232 bytes.
Send everything through one endpoint
If you would rather select the operation per request than pick a route per lane,/hofund accepts them all:
Add
mev-protect=true as a query parameter, or mevProtect in the params object, to route a sendTransaction or sendBatch call through Jito instead of the fast rails.
Protected sendBatch is the one operation whose limit is not what the protocol allows. Each member goes out as its own Jito bundle, and the effective ceiling defaults to a single transaction rather than 25. Call getThorTipConfig on /hofund-bundle and read maxProtectedBatchTransactions and protectedBatchTimeoutMs before you size the request.
Other request formats
/hofund speaks JSON-RPC. Three more surfaces take the same operations in a different shape, for clients that would rather not build JSON:
The WebSocket surfaces are one-way. They accept transactions and send nothing back, so use
/hofund-status when you need to know what happened to a submission.
Connect over QUIC
Hofund also accepts a signed raw transaction over QUIC, without going through the Bifrost HTTP edge or a copied route URL. Each lane has its own listener, one for standard and one for protected. QUIC access is issued per customer. Contact ThorNode to have your mTLS certificate and its public-key (SPKI) fingerprint onboarded; you receive the host and port for your location at the same time. Persistent connections use a 25-second keepalive and a 30-second idle timeout. Keepalive holds the connection open and says nothing about any individual transaction.Check what happened
POST /hofund-status with getHofundSubmissionStatus returns the current state of your submissions. getFastTipConfig on the same route returns the tip configuration for the fast lanes.