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

# How it works

> Quote, build, sign, submit, track. Four calls, and the keys stay with your user.

```mermaid theme={null}
sequenceDiagram
    participant W as Wallet
    participant B as Bridg API
    participant V as Venues
    W->>B: POST /bridge/quote
    B->>V: price the corridor, in parallel
    V-->>B: quotes and refusals
    B-->>W: ranked table + decisionId
    W->>B: POST /bridge/build
    B-->>W: unsigned steps + transferId
    Note over W,B: sign in the user's own wallet
    W->>B: POST /bridge/transfers/{id}/submit
    B->>V: broadcast, then poll until terminal
    W->>B: GET /bridge/transfers/{id}
```

<Steps>
  <Step title="Quote">
    One request prices the transfer at every venue that serves the corridor. Each answers with a price, its own fees and an ETA, or is listed in `rejected` with a reason. Rows are ranked on net output in the asset's atomic units. See [Ranking](/concepts/ranking).
  </Step>

  <Step title="Build">
    Building a quote returns the unsigned transactions for the chosen row: an approval where one is needed, a fee step where the venue has no fee parameter of its own, then the bridge call. The transfer record exists before the steps are returned, so it can be tracked even if nothing is ever signed.
  </Step>

  <Step title="Sign">
    Your user's wallet signs the steps in order. Bridg has no signer and no key. Wallets with EIP-5792 batching sign the fee and bridge steps as one bundle.
  </Step>

  <Step title="Submit">
    Hand back either the signed bytes, which Bridg broadcasts through its own nodes, or the hash of a transaction the wallet already sent. Either way the transaction is checked against the steps that were built. Anything else is refused.
  </Step>

  <Step title="Track">
    Bridg polls the venue until the transfer reaches a terminal state. Read `GET /bridge/transfers/{id}` at any time; the statuses are listed in [Track a transfer](/guides/track-a-transfer).
  </Step>
</Steps>

No API key and no account. Every call above is open, bounded by [rate limits](/api-reference/rate-limits).
