> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thornode.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Bifrost Transaction Routes

> Call bloXroute, Astralane, BlockRazor, and LunarLander transaction routes through one ThorNode Private TX key.

Bifrost puts several Solana transaction providers behind one ThorNode credential. The dashboard labels this product **Private TX**. Select a pass or rental, generate a Private TX key, then copy the complete route URL for the provider operation you want to call.

You do not need a separate upstream-provider account, subscription, API key, or commercial agreement.

<Note>
  Bifrost aggregation is included with eligible ThorNode access at no additional
  aggregator charge. Solana network fees, priority fees, and provider tip
  requirements still apply to the transactions you sign.
</Note>

## Providers you can call

Every Bifrost-enabled location serves the same provider catalog. Your access decides which locations are enabled, not which providers appear.

| Provider        | Operations                              | Provider reference                                                                                 |
| --------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **bloXroute**   | Submit, Batch, Paladin, Snipe           | [bloXroute docs](https://docs.bloxroute.com/)                                                      |
| **Astralane**   | Submit, Bundle, Batch, Ideal, Get nonce | [Astralane submit transactions](https://astralane.gitbook.io/docs/low-latency/submit-transactions) |
| **BlockRazor**  | Submit                                  | [BlockRazor docs](https://docs.blockrazor.io/)                                                     |
| **LunarLander** | Submit, Bundle, Batch                   | [Lunar Lander reference](https://docs.hellomoon.io/reference/lunar-lander)                         |

Bifrost forwards your request body to the provider route you selected. Each route takes the request that provider's own API defines, so a payload built for one route is not automatically valid for another, even when both routes are labeled **Submit**.

[Read the route reference](/api-reference/bifrost/overview) for every route path, HTTP method, request shape, and limit.

## Direct provider routes

| Good fit                                                             | Choose another product                                            |
| -------------------------------------------------------------------- | ----------------------------------------------------------------- |
| You want to call a specific provider route through one ThorNode flow | You need automatic provider selection, fallback, or smart routing |
| You do not want to manage separate provider credentials              | You need a guarantee of privacy, MEV protection, or landing       |

Bifrost does not choose a provider for you, retry through a different provider, or reorder your submissions.

## Quick reference

| Item                 | Value                                                                             |
| -------------------- | --------------------------------------------------------------------------------- |
| Dashboard path       | **Endpoints → Private TX**                                                        |
| Access               | An eligible pass or rental with at least one Bifrost location                     |
| Private TX key       | The dashboard generates one per access and reuses it in each enabled location URL |
| Route URL            | `https://<location-base>/<private-tx-key>/<route>`, copied from the dashboard     |
| Authentication       | The Private TX key sits in the URL path; do not add a provider API key            |
| Provider credentials | Managed by ThorNode                                                               |
| Route selection      | Explicit: your application chooses the provider and operation                     |
| Health check         | `GET` or `HEAD /healthz` on the location base URL, no key                         |
| HTTP success         | A `2xx` response reports HTTP transport success; always parse the response body   |
| Chain success        | Track a returned transaction signature with your own Solana confirmation policy   |

## Create a route

<Steps>
  <Step title="Select access and location">
    Open **Endpoints → Private TX**, select the pass or rental your application
    will use, then choose an available location.
  </Step>

  <Step title="Generate a Private TX key">
    Generate the key if the selected access does not have one. The dashboard
    reuses that key in the route URLs for the access's enabled Bifrost
    locations.
  </Step>

  <Step title="Choose a provider operation">
    Select the provider and operation you want to call. The dashboard builds the
    complete route URL with your Private TX key.
  </Step>

  <Step title="Send the route-specific request">
    Copy the complete URL and send the request body that operation requires.
    ThorNode manages the upstream provider credential.
  </Step>

  <Step title="Verify the result">
    Parse the route response. If it returns a transaction signature, check that
    signature through Solana RPC until it reaches your required commitment or
    expires.
  </Step>
</Steps>

## Send your first transaction

Follow the [Bifrost quickstart](/products/bifrost-transaction-routes/quickstart) to submit one transaction through **LunarLander → Submit** and confirm the signature. Every route's body, bounds, and tip addresses are in the [route reference](/api-reference/bifrost/overview).

<Warning>
  A copied Bifrost route URL contains your Private TX key. Keep the complete URL
  in server-side secret storage and redact it from repositories, logs, traces,
  screenshots, and support messages. Never send a signed transaction over an
  `http://` route. Stop and contact support if a route accepts a missing or
  invalid key.
</Warning>

## Interpret outcomes

| Response                             | Interpretation                                   | Next check                                     |
| ------------------------------------ | ------------------------------------------------ | ---------------------------------------------- |
| HTTP `2xx`                           | The Bifrost HTTP request completed               | Parse the response body for a result or error  |
| Route-specific acceptance identifier | The selected provider accepted the operation     | Check the provider status route when available |
| Transaction signature                | You can query the transaction through Solana RPC | Track it to the required commitment            |

Always parse the response body after `2xx`; a JSON-RPC error can be returned inside a successful HTTP response. Accepted is not landed, and landed is not confirmed at your commitment.

## Troubleshooting

| Problem                                            | Fix                                                                                               |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| `401` with `invalid or missing authentication key` | Copy the current complete route URL from the dashboard; the key belongs in the path, not a header |
| `401` on a URL that looks correct                  | The key may be revoked or the route path misspelled; regenerate the key and copy the URL again    |
| Route not found in the dashboard                   | Refresh the catalog for the selected access and location, then copy the route again               |
| `2xx` with no usable result                        | Parse the response body and handle route-specific or JSON-RPC errors                              |
| Signature does not land                            | Apply your expiry policy, then rebuild and resubmit through a route you explicitly choose         |

## Next steps

<CardGroup cols={2}>
  <Card title="Read the route reference" icon="route" href="/api-reference/bifrost/overview">
    Every bloXroute, Astralane, BlockRazor, and LunarLander route with its request shape.
  </Card>

  <Card title="Submit through Hofund" icon="satellite-dish" href="/products/bifrost-transaction-routes/hofund">
    ThorNode's own fast and protected lanes, including QUIC.
  </Card>

  <Card title="Track signatures" icon="magnifying-glass" href="/products/thoredge-rpc">
    Confirm a returned signature through ThorEdge RPC.
  </Card>

  <Card title="Store route URLs safely" icon="lock" href="/reference/security">
    Handle a credential-bearing URL as a secret.
  </Card>
</CardGroup>
