# Rates market evidence, schema 1.0.0

This product separates an observed secondary-market price from a reference NAV
and the existing realised 30-day yield. A spot premium is not a future yield.
The initial EX.IO TBILL-USD profile is disabled for paid serving pending written
permission and source identity, time, reference and economics review.

## Access and availability

`GET /v1/rwa/market-coverage` is free. It exposes gates and availability without
raw prices or private permission documents. Only enabled market capabilities
appear in the public manifest, HTTP payment catalogue and MCP tools/list.

When authorized and available, `get_rwa_market_state` on the Rates MCP entrance
and `GET /v1/rwa/market-state` use the same domain function. The candidate price
is 0.10 USDC per request; it is not an offer while the product is disabled.
No website action initiates a purchase. Existing yields and instrument schemas,
prices and allowances are unchanged.

## Input

An empty object selects the configured default market. Optional fields:

| Field | Meaning |
| --- | --- |
| `market_id` | Exact market identity, initially `exio:TBILL-USD` |
| `market_snapshot_id` | UUID of one immutable retained evidence bundle |
| `side` | `buy` or `sell`; requires `base_quantity` |
| `base_quantity` | Positive decimal string; requires `side` |

Quantity accepts at most 18 integer and 18 fractional digits. This analytic
bound does not establish an exchange lot size. Unknown fields, repeated HTTP
query parameters, invalid UUIDs, unknown markets and mismatched market/snapshot
selections are refused. If only a snapshot ID is given, its market is selected.
An expired pinned snapshot is refused, never replaced by the current snapshot.

## Evidence and calculation

The retained bundle pins the book observation, matched reference observation,
conversion convention, optional issuer/realised-return context and method versions.
Prices, quantities and derived figures use decimal strings. Premium/discount and
spread are rounded to six fractional bps; VWAP to 18 fractional decimal places.
Both use half-away-from-zero rounding. Gross totals use exact decimal arithmetic.

```
bid premium bps = (bid / comparable reference - 1) * 10000
ask premium bps = (ask / comparable reference - 1) * 10000
spread bps = (ask - bid) / midpoint * 10000
VWAP = sum(price * consumed quantity) / observed filled quantity
```

Sell consumes observed bids; buy consumes observed asks. Zero observed fill has
null VWAP. Partial observed depth is disclosed without extrapolation. Unknown
fees leave net value null. There is no fill, redemption or access guarantee.

A fresh HTTP response does not establish a fresh book. Raw `ts`, `tsNano`,
sequence, retrieval time and documented snapshot confirmation have separate
meanings. Paid delivery requires current book and reference evidence under their
independent age policies. Optional context has its own expiry and may be missing.
Unknown source-time semantics prevent paid serving.

## Output permissions

The default output profile is `full`. A separately approved `derived_only`
profile can omit raw quote levels while retaining authorized derived metrics and
size calculations. It is disabled by default. It also requires written permission;
derived figures are not a workaround for missing data rights. Certain ratios can
allow reconstruction of source prices, which is part of the permission request.

Existing payment handling prepares the complete response before settlement.
An unsigned payment challenge does not prove source availability. A new signed
request refuses invalid, stale, unlicensed or missing required evidence before
settlement. It does not fetch a newer book after charging. A dated result is not
a firm executable quote at delivery. Existing rail-specific replay behavior is
preserved; not every rail replays a prior response body.

## Opt-in market changes

`list_rwa_updates` and `POST /v1/rwa/updates` accept `scope: "market"` for a
version-2 market notice stream. Omitted scope and `scope: "instrument"` retain
the version-1 instrument response. Cursors belong to exactly one scope; a
mismatched or expired cursor requires a new baseline.

Notices carry field names, digests, dates and availability transitions, not paid
values or raw order books. Reconfirmed unchanged data does not generate a price
change. The initial detection interval is fifteen minutes. Retention is at most
90 days and may be shorter under the source licence. No earlier history is
reconstructed and no real-time price-alert guarantee is made. A notice's product
link refers to the currently available evidence, not a paid history archive.

## Reproducible synthetic vector

Reference: 1 USD. Bids: 400 at 0.999, 800 at 0.998. Asks: 600 at 1.001,
500 at 1.002. These are invented inputs, not observations from EX.IO.

| Calculation | Synthetic result |
| --- | --- |
| Bid / ask premium | -10 / +10 bps |
| Spread | 20 bps |
| Sell 1000 | Gross 998.4; VWAP 0.9984 |
| Buy 1000 | Gross 1001.4; VWAP 1.0014 |
| Sell 1500 | Fill 1200; gross 1198; uncovered 300; VWAP 0.998333333333333333 |

Informational data service. Not investment, legal or tax advice.
