# Boros funding-rate markets

Endpoint reference for the 1delta API. Index: https://docs.1delta.io/llms.txt · every endpoint: https://docs.1delta.io/llms-full.txt

---

### GET /v1/data/boros/markets

- operationId: `boros-markets`
- docs: https://docs.1delta.io/1delta-api/boros-markets/
- markdown: https://docs.1delta.io/1delta-api/boros-markets.md
- tags: Boros (Data)

Boros funding-rate markets

Every live Boros market: the fixed (mark / implied) APR against the venue's FLOATING funding APR, best bid/ask, maturity, collateral, open interest, fees and margin parameters. Rates are percent; fee and margin parameters are fractions. Cached 30 s per isolate.

**Every row carries `termSheet`** (profile `boros.funding-swap@v1`): a `swap` sheet with BOTH sides — which leg each side pays and receives, the fixed rate a taker gets now, the carry vs current funding, margin and liquidation terms, fees on notional, the funding-index oracle, the OI cap and the upgrade authority (a 2-of-3 Safe, no timelock). `supply` / `borrow` are absent by design and declared `notApplicable` in `coverage`. Prose is templated from those fields.

**Boros trades perp funding rates as fixed-vs-floating swaps** (Pendle, Arbitrum 42161). A *Yield Unit* (YU) on a market is the funding one venue pays on one unit of notional until maturity. **LONG** receives the floating funding and pays the fixed rate it bought at; **SHORT** pays floating and receives fixed — the side that LOCKS a funding income.

- **Sizes are in the market's COLLATERAL**: a USD₮0-margined BTC market sizes in dollars of notional, a WBTC-margined one in BTC. Pass `notionalUsd` to let the API convert.
- **Margin** is one cross account per collateral token: `IM = |size| × max(|rate|, floor) × kIM × max(timeToMaturity, 5 days)`. Liquidation at health ≤ 1.
- **Fees**: taker `|size| × takerFee × TTM` once; settlement `settleFee` annualised on notional every funding period; ~$1 entrance fee per market. Maker orders pay none.
- **Every transaction is EOA-direct on Arbitrum.** The Router's unsigned entry points act on `(msg.sender, account 0)` — no agent key, no Boros relayer, no gas balance, and nothing through the 1delta Composer. Deposits approve the Router.

Omit `account` for a quote (`actions: null`).

**Parameters**

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `asset` | query | string | no | Funding asset, e.g. BTC, ETH, HYPE |
| `venue` | query | string | no | Funding venue, e.g. Binance, Hyperliquid |
| `collateral` | query | string | no | Collateral symbol (USDT0, WETH …) or address |
| `terms` | query | "full" \| "digest" \| "none" | no | Term sheet per market: full (default), digest, or none |

**Response `200`** — `{ chainId, count, markets[] }`

| Field | Type | Description |
| --- | --- | --- |
| `success` | true |  |
| `data` | object | Informational payload. `null` when the endpoint only builds calldata. |
| `actions` | null |  |

**Example response**

```json
{
  "success": true,
  "data": {}
}
```

**Response `400`** — Validation error

**Response `429`** — Rate limited. Unauthenticated callers share a per-IP budget; send an `x-api-key` header to lift it. Retry with exponential backoff.

**Response `500`** — Unexpected server error. Safe to retry with backoff.

**Response `502`** — An upstream data source or protocol origin failed (`error.code` is `ORIGIN_FAILED`). `error.details` carries the per-origin status. This is also what a missing or malformed required parameter currently returns, rather than a 400.
