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

# Maker Quotes

> How a maker lists the markets it quotes, reports its health, and prices a trade

A maker serves three endpoints for quoting. `GET /tokens` lists the mints it quotes, `GET /health` reports whether it can honor quotes, and `POST /quote` returns a firm or indicative price for a pair.

## Tokens Endpoint

`GET /tokens` returns a JSON array of the base58 mints the maker quotes. The array lists USDC, the settlement mint, and every equity mint. DFlow asks a maker to quote a pair only when both mints are listed.

```json theme={null}
["EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "<equity mint>"]
```

## Health Endpoint

`GET /health` returns any 2xx when the maker can honor quotes. Return a non-2xx when it cannot, for example when its pricing or inventory feed is down. The endpoint has no side effects and answers quickly.

## Quote Request

`POST /quote` carries the request below. Amounts are raw base unit strings.

| Field | Meaning |
| - | - |
| `requestId`, `quoteId` | The same value, unique per request. |
| `tokenIn`, `tokenOut` | The mints from the user's side. |
| `quoteType` | `exactIn` or `exactOut`. |
| `amount` | The exact side: input for `exactIn`, output for `exactOut`. |
| `taker` | The user's wallet. `null` marks an indicative request that will not be filled. |
| `maxAmountIn` | The most input the user may deliver at the quoted price. Not always present. |
| `acceptedActionTypes` | The types DFlow can build. Absent means only `rfqFill`. |
| `protocol`, `feeBps` | `v1` and `0`. |

## Quote Response

A firm quote returns `200` with the fields below. DFlow excludes a quote that breaks any rule in the table.

| Field | Meaning |
| - | - |
| `requestId`, `tokenIn`, `tokenOut`, `quoteType`, `protocol` | Echoed from the request. `requestId` and both mints must match. |
| `quoteId` | The maker's own quote id. DFlow returns it in `/selected`. |
| `amountIn`, `amountOut` | The quoted amounts. The exact side must equal the request's `amount`. |
| `maxAmountIn` | The most input the maker fills at this price. Must be at least `amountIn`, and at least the request's `maxAmountIn` when the request has one. |
| `maker` | Must equal the maker's registered wallet. |
| `actionType` | `rfqFill` or `rfqOrder`, from `acceptedActionTypes`. Absent means `rfqFill`. |
| `makerInputTokenAccount` | The maker's token account for `tokenIn`, which receives the user's input. Required for `rfqFill`. |
| `makerOutputTokenAccount` | The maker's token account for `tokenOut`, which pays the user. Required for `rfqFill`. |

An `rfqOrder` quote carries no token accounts. DFlow drops them if present.

Other responses:

* **`404`:** the maker has no quote. The body is optional.
* **`429`:** the maker is rate limited. DFlow skips it for 5 seconds.
* **Anything else, a timeout or a malformed body:** DFlow leaves the maker out of this round.

## Partial Fills

By quoting `rfqFill`, the maker accepts any input up to the request's `maxAmountIn` (its `amount` when the request has none) at the quoted price. The output owed for an input is `input × amountOut ÷ amountIn`, rounded down. [Maker Escrow Fills](https://pond.dflow.net/equities/makers/escrow-fills.md) covers partial fills of an `rfqOrder`.
