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

# Quoting Workflow

> How RFQs arrive, how to quote competitively, and the quote lifecycle.

If you're used to posting on CEX order books or providing liquidity to AMM pools, the Musubi model is different: you respond to individual quote requests, not a continuous market. Think of it as quoting per-order rather than maintaining a book. The critical difference from anything you've done before: **every request is fully anonymous**.

## How RFQs Arrive

When an institution submits a cross-border payment, Musubi broadcasts an **anonymized quote request** to all registered market makers. You receive:

| Field             | Example                 | Description                   |
| ----------------- | ----------------------- | ----------------------------- |
| `source_currency` | JPYSC0                  | What the sender is exchanging |
| `target_amount`   | 10,000,000              | How much                      |
| `target_currency` | USDCx                   | What they want to receive     |
| `expires_at`      | 5 minutes from creation | Deadline for quote submission |

**That's it.** No sender name, no receiver name, no contract identifiers. The request is indistinguishable from any other request of the same size and currency pair.

Unlike CEX order books where you see the full depth, or DEX pools where pricing is algorithmic, here you price each request individually based on flow characteristics — size, currency pair, market conditions — without knowing the counterparty.

## Competitive Dynamics

Multiple market makers see the same request simultaneously. Each can submit a quote. The institution (with their custodian) selects the best one.

**Selection criteria:**

1. **Best rate** — highest target amount for the given source amount
2. **Slippage guard** — the institution may have set a maximum source amount the sender will pay. Quotes below this floor are automatically disqualified.
3. **Validity** — the quote must still be valid (`valid_until` not passed) at selection time

If your quote wins, you are notified. If another MM's quote wins, yours is rejected. You never see the winning quote's details.

## Submitting a Quote

Your quote specifies three fields:

| Field           | Description                | Example             |
| --------------- | -------------------------- | ------------------- |
| `fx_rate`       | Your offered exchange rate | `"112.0"`           |
| `target_amount` | USDCx you'll deliver       | `"11200000"`        |
| `valid_until`   | How long your quote stands | 30 seconds from now |

**Consistency rule**: `target_amount` should equal `fx_rate * target_amount`. Musubi validates this.

**Validity window**: You control how long your quote is valid via `valid_until`. Shorter windows reduce your risk exposure; longer windows give the institution more time to select. Typical: 30 seconds.

<Tip>
  If market conditions change after you've submitted, you can withdraw a pending quote before it's accepted. Once accepted, the quote is committed.
</Tip>

## Quote Lifecycle

```mermaid actions=false theme={null}
graph LR
  PENDING -->|you won| ACCEPTED
  PENDING -->|another MM selected| REJECTED
  PENDING -->|validity window passed| EXPIRED
```

| Status       | What It Means                               | What Happens Next                 |
| ------------ | ------------------------------------------- | --------------------------------- |
| **PENDING**  | Your quote is live, awaiting selection      | Wait or withdraw                  |
| **ACCEPTED** | You won — your quote was selected           | Settlement proceeds automatically |
| **REJECTED** | Another MM offered a better price           | Nothing — no assets move          |
| **EXPIRED**  | Your `valid_until` passed without selection | Nothing — no assets move          |

## What You Never See

Anonymity is maintained throughout the entire lifecycle — before, during, and after settlement:

| Information                   | Visible to You? |
| ----------------------------- | --------------- |
| Sender institution identity   | Never           |
| Receiver institution identity | Never           |
| Sender's custodian identity   | Never           |
| Receiver's custodian identity | Never           |
| Other MMs' quotes             | Never           |
| Other MMs' win/loss           | Never           |
| Number of competing quotes    | Never           |

<Note>
  This level of anonymity is enforced at the settlement network protocol level, not by field masking. Your node physically does not receive this data — it is not transmitted to you.
</Note>

## Multiple Quotes

You can submit multiple quotes for the same request (e.g., to update your pricing as market conditions change). Each quote has its own `quote_id` and its own `valid_until`. All are evaluated independently at selection time.
