Skip to main content
Every Bifrost route is one path on a location base URL:
Copy the complete URL from Endpoints → Private TX. Bifrost forwards your request body to the selected provider unchanged and returns the provider’s response unchanged. Each route takes the request its provider’s own API defines, without a provider API key.

Authentication

GET or HEAD /healthz on the bare base URL needs no key and returns {"status":"ok","service":"Bifrost Transaction Proxy"}. A key-prefixed /<key>/healthz returns 401. Use /healthz on a kept-alive connection to hold it open between sends; the public listener closes idle connections after about 30 seconds.

Route index

Every Bifrost-enabled location serves the same catalog.

What Bifrost checks before forwarding

Bifrost decodes each transaction in the body and rejects the request with 400 when:
  • the transaction count is outside the route’s bound in the table above;
  • a transaction is not valid base64 or does not decode as a Solana transaction;
  • a LunarLander binary batch member is outside 66–1232 bytes;
  • the transaction pays no tip, or a tip below the provider’s minimum, to a recognized tip address (see each provider page).
The 400 body names the reason:
Reason codes: invalid_json, invalid_params, missing_field, unsupported_route, unsupported_method, unsupported_content_type, invalid_base64, invalid_transaction, invalid_transaction_size, invalid_binary_batch, invalid_tip_address, invalid_transaction_count, tip_too_low, priority_fee_too_low. bloXroute and BlockRazor JSON routes return the same message under a top-level error object; plain-text routes return it as text.

Errors Bifrost returns itself

Bifrost has no rate limit of its own; a 429 comes from the provider and is passed through. Bifrost never retries and never falls back to another provider.

Reading a response

A 2xx means Bifrost completed the HTTP call to the provider. Parse the body: a JSON-RPC error can arrive inside a 200. A returned signature means the provider accepted the transaction, not that it landed. Track the signature through ThorEdge RPC until it reaches your commitment or its blockhash expires.

Next steps