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

# RWAKit (Updated)

> **📘 What changed in this revision**
>
> RWA endpoints **remain on the Yield API** (`api.yield.xyz`) — earlier drafts suggested branching them onto a dedicated `api.rwa.yield.xyz` surface, but yield-bearing RWAs (treasuries, MMFs, private credit, fixed-income funds, carry strategies, yield-bearing stablecoins, yield-bearing notes) fit cleanly into the existing yield surface and don't justify a second API. **KYC has been extracted into its own API** — `api.kyc.yield.xyz` — to keep PII isolated and to enable regional data segregation (EU persons in the EU, US persons in the US). **Tokenized stocks, equity ETFs, and equity-style tokens** — including the dividend stream from dividend-paying shares — are owned end-to-end by [**StockKit**](/docs/stockkit) on the new Trade API (`api.trade.yield.xyz`). RWA Kit does not surface any equity instruments.
>
> The doc is now organized around three lenses: **(1) an issuer-comparison intro**, **(2) every yield-bearing RWA that requires KYC**, and **(3) every yield-bearing RWA that does not**. Anything equity-shaped — Ondo Global Markets stocks, xStocks, Backed bCSPX, Dinari equity dShares (with or without dividends), Superstate USPY — lives in the [StockKit](/docs/stockkit) docs and is cross-referenced where useful.
>
> RWA Kit also now supports issuers whose yield is delivered off-chain to a KYC'd broker account rather than via on-chain rebase or share-price accrual — Dinari is the first such issuer. See [Yield delivery modes](#yield-delivery-modes) for the schema change.

RWA Kit is the Yield API surface for **regulated, off-chain assets settled on-chain that pay a yield** — US Treasuries, money-market funds, fixed-income funds (IG, HY, muni, CLOs, senior loans, BDCs), private credit pools, yield-bearing notes, basis/carry strategies, and yield-bearing stablecoins. One interface, every issuer, every chain — protocol-specific quirks absorbed inside the integration. Tokenized stocks and equity ETFs are out of scope here; see [StockKit](/docs/stockkit) for those.

Every issuer in this document is compatible with Yield.xyz **Optimized Allocator Vaults (OAVs), Sentinel Vaults, and Meta Vaults** out of the box. Eligibility for inclusion in a specific vault still depends on the vault's risk mandate.

## API surfaces

| Surface                                               | Base URL                         | Owns                                                                                                                                                                         |
| ----------------------------------------------------- | -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Yield API** (RWA Kit lives here)                    | `https://api.yield.xyz/v1`       | Staking, lending, LP, DeFi, **and all yield-bearing RWAs** — instrument discovery, positions, enter/exit, off-chain settlement status, dividend & interest distributions     |
| **KYC API**                                           | `https://api.kyc.yield.xyz/v1`   | Identity verification, allowlist enrolment, region-segregated PII storage, issuer KYC handoffs                                                                               |
| **Trade API** ([StockKit](/docs/stockkit) lives here) | `https://api.trade.yield.xyz/v1` | Tokenized stocks, equity ETFs, equity-style RWA tokens, and the dividend stream from dividend-paying shares. Equity / commodity / forex / index perps via Hyperliquid HIP-3. |

All five surfaces share a single API key issued from the Yield.xyz dashboard.

> **ℹ️ Why RWA Kit stays on the Yield API**
>
> Yield-bearing RWAs follow a similar lifecycle as DeFi yields — discover, enter, accrue, exit — and integrators already build against that model. The only RWA concerns that genuinely diverge from DeFi (KYC handoffs, off-chain settlement status, distribution feeds) are encoded as additive metadata on the existing yield surface.

> **ℹ️ Why equities are not in RWA Kit**
>
> Tokenized equities have a fundamentally different shape from yields: they have a price (not an APY), corporate actions, voting rights, trading windows, order books, and brokerage-style fee schedules. Even when a share pays dividends, the consumer-facing primitive is "I own this stock" — not "I'm earning a rate." Forcing equities into the yield surface would either pollute every yield response with optional equity fields, or scatter equity-specific subobjects that aren't discoverable. They live in [StockKit](/docs/stockkit) on the Trade API.

***

## Issuer comparison (all issuers side-by-side)

This is the canonical at-a-glance view of every RWA issuer Yield.xyz supports for **yield-bearing** instruments. Equity-side coverage per issuer (tokenized stocks, equity ETFs, equity dShares, dividend streams) lives in [StockKit](/docs/stockkit). Per-issuer detail lives in the [Issuer directory](#issuer-directory) below.

| Issuer                 | Yield-bearing products on RWA Kit                                                                                                                                                                                                       | Yield delivery mode                                               | RWA issuer fees                                                                                                     | Partner fee passthrough                                  | KYC posture                                                                                      | Vault-compatible |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------- |
| **Dinari**             | 13 fixed-income dShares (TLT, TMF, USFR, BOXX, FBND, USHY, HYMB, JAAA, JBBB, CLOA, SRLN, BXSL, MSDL); USD+ yield-bearing stablecoin. *(All equity dShares — non-dividend and dividend-paying — covered in [StockKit](/docs/stockkit).)* | `off_chain_account_credit`                                        | **5% standard distribution fee** on yield-paying dShares; USD+: 0% mgmt                                             | ✅ Configurable                                           | `primary_and_yield` (Reg D at primary mint/redeem; yield only flows to Dinari Accounts)          | ✅                |
| **Ondo Finance**       | OUSG (T-Bills); USDY / rUSDY (yield-bearing notes). *(Ondo Global Markets — 260+ tokenized US stocks & ETFs — covered in [StockKit](/docs/stockkit).)*                                                                                  | `on_chain_price_accrual` (OUSG, USDY) / `on_chain_rebase` (rUSDY) | OUSG: 0% mint/redeem; **0.15% mgmt cap, waived until 1 Jul 2026**. USDY: 0% mint/redeem on primary                  | ✅ Configurable                                           | `always` (OUSG) / `primary_only` (USDY, rUSDY)                                                   | ✅                |
| **Securitize**         | BUIDL (BlackRock T-Bills / cash); VBILL (VanEck T-Bills); ACRED (Apollo private credit); others per fund                                                                                                                                | `on_chain_share_growth`                                           | BUIDL: 0.50% mgmt (**0.20% on Avalanche / Aptos / Polygon**); \$5M USDC min. VBILL / ACRED / others: per prospectus | ❌ Issuer-set                                             | `always` (Securitize iD)                                                                         | ✅                |
| **Superstate**         | USTB (T-Bills); USCC (crypto carry). *(USPY tokenized US equity — when launched — will be served from [StockKit](/docs/stockkit).)*                                                                                                     | `on_chain_share_growth`                                           | USTB: 0.15% mgmt (10 bps rebate above \$25M avg.); 100K USDC subscription min. USCC: 0.75% mgmt                     | ❌ Issuer-set                                             | `always` — **US Qualified Purchasers only**                                                      | ✅                |
| **Backed Finance**     | bIB01, bC3M (UCITS bToken trackers — short-duration USD/EUR fixed income). *(bCSPX, xStocks, and other equity trackers covered in [StockKit](/docs/stockkit).)*                                                                         | `on_chain_price_accrual` (bTokens)                                | 0.20% issuance/redemption on primary; underlying ETF expense ratio passes through                                   | ✅ Configurable on secondary¹                             | `primary_only` (Reg S / qualified-investor at primary; permissionless ERC-20 / SPL on secondary) | ✅                |
| **Franklin Templeton** | BENJI / FOBXX (US Government money-market fund)                                                                                                                                                                                         | `on_chain_share_growth`                                           | **0.20% net (after waivers) / 0.22% gross** expense ratio; 0% mint/redeem fee; daily redemption                     | ❌ Issuer-set                                             | `always` (Benji platform)                                                                        | ✅                |
| **Figure Markets**     | YLDS (SEC-registered yield-bearing note); PRIME / CASH upcoming                                                                                                                                                                         | `on_chain_price_accrual` (peer-to-peer)                           | YLDS: yield = **SOFR − 35 bps**; 0% mgmt or redemption fee; per-tx gas in fractions of a cent                       | ❌ Issuer-set; partner builder fees TBC for PRIME / CASH¹ | `primary_only` (KYC at primary mint / fiat redemption; permissionless peer-to-peer transfer)     | ✅                |
| **Midas**              | mTBILL, mBASIS, mEDGE, mRE7YIELD, mMEV, mBTC (liquid yield tokens)                                                                                                                                                                      | `on_chain_share_growth`                                           | mTBILL: 0.07% instant redemption fee; 10% perf fee on interest. Others: per-product perf fee                        | ✅ Configurable                                           | `none` — no on-chain allowlist, but **not available to US persons**                              | ✅                |

¹ See [Verify before publishing](#verify-before-publishing).

***

## Yield delivery modes

Every yield in RWA Kit declares a `yieldDelivery.mode` in its metadata. This is the single most important field for routing logic — it tells partners whether holding the token in a self-custodied wallet is sufficient to receive yield, or whether an issuer-managed account is required.

| Mode                             | What it means                                                                                                                         | Self-custody receives yield? | Examples                               |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------- |
| `on_chain_rebase`                | Token balance grows over time                                                                                                         | ✅ Yes                        | `rUSDY`                                |
| `on_chain_price_accrual`         | Token quantity constant; redemption value grows                                                                                       | ✅ Yes                        | `USDY`, `OUSG`, `YLDS`, Backed bTokens |
| `on_chain_share_growth`          | ERC-4626-style vault share; NAV grows inside the vault                                                                                | ✅ Yes                        | `BUIDL`, `USTB`, `mTBILL`, `BENJI`     |
| `off_chain_account_credit`       | Token is a settlement instrument only; yield is credited as USD (or USD+) to an issuer-managed account, gated by KYC                  | ❌ No                         | Dinari dShares, Dinari USD+            |
| `wrapped_off_chain_distribution` | On-chain wrapper vault holds the underlying token; pulls off-chain distributions via API and auto-compounds or accrues claimable USD+ | ✅ Yes (via wrapper)          | Future Dinari wrapper vaults           |

> **🚨 Critical UX implication**
>
> Yields with `mode: "off_chain_account_credit"` will silently fail if surfaced in a self-custodial wallet without a linked issuer account. Partners must check `yieldDelivery.requiresIssuerAccount` before exposing these yields, and either (a) route users through the issuer's KYC + account-creation flow, or (b) hide the yield from self-custody surfaces.

## KYC model

KYC is a **tri-state enum** rather than a boolean, because token transferability and yield entitlement can be decoupled (Dinari being the canonical example).

| State                              | Meaning                                                                      | Examples                                               |
| ---------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------ |
| `kycRequired: "always"`            | Allowlist-gated on contract; token cannot be held without KYC                | BUIDL, USTB, BENJI, OUSG                               |
| `kycRequired: "primary_only"`      | Permissionless secondary; primary mint/redeem gated                          | Backed bTokens, Ondo USDY (secondary DEX access), YLDS |
| `kycRequired: "primary_and_yield"` | Permissionless secondary; yield only accrues to KYC'd issuer-account holders | Dinari dividend-paying dShares, Dinari USD+            |
| `kycRequired: "none"`              | Fully permissionless; no allowlist; no yield gating                          | mTBILL, mBASIS, mMEV                                   |

The two sections below split every yield by **whether the end user must complete KYC to receive the yield**. This is the practical question for product flows.

***

## Yields requiring KYC

Yields where the end user **must** complete KYC — either to hold the token at all (`always`) or to receive the yield (`primary_and_yield`).

### `kycRequired: "always"` — allowlist-gated on contract

| Yield             | Issuer                   | Underlying                                      | Wrapper                                  | Delivery mode            | Fees                                                         | Networks                                                                        | Notes                                                                       |
| ----------------- | ------------------------ | ----------------------------------------------- | ---------------------------------------- | ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| **OUSG**          | Ondo                     | Short-term US Treasuries + GSE                  | Tokenized fund share                     | `on_chain_price_accrual` | 0% mint/redeem; 0.15% mgmt cap (**waived until 1 Jul 2026**) | Ethereum, Solana, Polygon, others                                               | \$5K min; 24/7 instant USDC mint/redeem                                     |
| **USTB**          | Superstate               | Short-duration US Treasuries                    | Tokenized fund share                     | `on_chain_share_growth`  | 0.15% mgmt (10 bps rebate above \$25M avg.)                  | Ethereum                                                                        | 100K USDC min; **US QPs only**; T+1 `offchainRedeem`                        |
| **USCC**          | Superstate               | Long-spot / short-perp crypto carry             | Tokenized fund share                     | `on_chain_share_growth`  | 0.75% mgmt                                                   | Ethereum                                                                        | **US QPs only**; Bitwise becomes investment manager 1 Jun 2026              |
| **BUIDL**         | BlackRock via Securitize | USD institutional liquidity (T-Bills + cash)    | Tokenized MMF share                      | `on_chain_share_growth`  | 0.50% mgmt (**0.20% on Avalanche / Aptos / Polygon**)        | Ethereum, Avalanche, Aptos, Polygon, Arbitrum, others                           | \$5M USDC min; T+0–T+1 atomic redemption to USDC via Circle                 |
| **VBILL**         | VanEck via Securitize    | Short-term US Treasuries                        | Tokenized fund share                     | `on_chain_share_growth`  | Per prospectus                                               | Ethereum, Avalanche, Solana, BNB Chain                                          | Per-fund minimums                                                           |
| **ACRED**         | Apollo via Securitize    | Apollo Diversified Credit Fund (private credit) | Tokenized fund share                     | `on_chain_share_growth`  | Per prospectus                                               | Ethereum                                                                        | Allowlist-gated                                                             |
| **BENJI (FOBXX)** | Franklin Templeton       | US Government MMF (FOBXX)                       | SEC-registered '40 Act mutual-fund share | `on_chain_share_growth`  | **0.20% net / 0.22% gross** expense ratio; 0% mint/redeem    | Stellar, Ethereum, Solana, Aptos, Avalanche, Base, Arbitrum, BNB Chain, Polygon | $5M on Ethereum; $ 100 on retail chains; daily T+1; USD wire or USDC payout |

### `kycRequired: "primary_and_yield"` — yield only flows to KYC'd Account holders

> **⚠️ Self-custody does NOT receive yield**
>
> These yields are tokens-as-settlement-instruments. The token transfers freely on secondary ERC-20 rails, but the cash coupon/interest leg is credited off-chain to a KYC'd Dinari Account. Surface these only after verifying `yieldDelivery.requiresIssuerAccount` and confirming the user has a linked Account.

| Yield      | Issuer | Underlying                                                         | Underlying yield source | Delivery mode              | Fees                                  | Mainnet token                                                                  | Notes                                                               |
| ---------- | ------ | ------------------------------------------------------------------ | ----------------------- | -------------------------- | ------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------- |
| **USFR.d** | Dinari | WisdomTree Floating Rate Treasury Fund                             | `treasuries`            | `off_chain_account_credit` | 5% distribution fee                   | `0x9E7D5830c6ce73326742db7F7e49846B5F0F899B` (Plume)                           | Monthly USD distribution to Dinari Account                          |
| **BOXX.d** | Dinari | Alpha Architect 1-3 Mo Box ETF (T-bill equivalent via options box) | `treasuries`            | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | Mainnet token TBD                                                   |
| **TLT.d**  | Dinari | iShares 20+ Year Treasury Bond ETF                                 | `treasuries`            | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | Long-duration                                                       |
| **TMF.d**  | Dinari | Direxion Daily 20+ Year Treasury Bull 3x ETF                       | `treasuries`            | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | Leveraged long-duration                                             |
| **FBND.d** | Dinari | Fidelity Total Bond ETF                                            | `ig_bonds`              | `off_chain_account_credit` | 5% distribution fee                   | `0x2C5c46fCe70E366f8255ed2725b7F988b8433aec` (Plume)                           | Aggregate IG bond                                                   |
| **USHY.d** | Dinari | iShares Broad USD High Yield Corporate Bond ETF                    | `high_yield`            | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | —                                                                   |
| **HYMB.d** | Dinari | SPDR Nuveen ICE High Yield Municipal Bond ETF                      | `munis`                 | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | —                                                                   |
| **JAAA.d** | Dinari | Janus Henderson AAA CLO ETF                                        | `clo`                   | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | —                                                                   |
| **JBBB.d** | Dinari | Janus Henderson B-BBB CLO ETF                                      | `clo`                   | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | —                                                                   |
| **CLOA.d** | Dinari | BlackRock iShares AAA CLO Active ETF                               | `clo`                   | `off_chain_account_credit` | 5% distribution fee                   | `0x5FA77434c3d3664a66b121C26e06D54Db61611CA` (Plume)                           | —                                                                   |
| **SRLN.d** | Dinari | SPDR Blackstone Senior Loan ETF                                    | `senior_loans`          | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | —                                                                   |
| **BXSL.d** | Dinari | Blackstone Secured Lending Fund (BDC)                              | `bdc`                   | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | See "BDCs are a judgment call" below                                |
| **MSDL.d** | Dinari | Morgan Stanley Direct Lending Fund (BDC)                           | `bdc`                   | `off_chain_account_credit` | 5% distribution fee                   | TBD                                                                            | See "BDCs are a judgment call" below                                |
| **USD+**   | Dinari | 100% short-term US Treasuries + USD                                | `treasuries` (cash leg) | `off_chain_account_credit` | 0% mgmt (interest credited off-chain) | `0xC9E3df3D230980B45adC623C81C3DF4A73a5350f` (Ethereum, Base, Arbitrum, Plume) | Plain ERC-20, **not rebasing**. Self-custodied USD+ does not accrue |

> **ℹ️ Dividend-paying equity dShares are not in this list**
>
> Dinari issues dividend-paying equity dShares (US single-name stocks that distribute quarterly dividends). Those instruments — including the cash dividend leg — are surfaced end-to-end by [StockKit](/docs/stockkit#dinari) on the Trade API, alongside non-dividend equity dShares. They are not duplicated here even though they technically pay a yield, because the consumer-facing primitive is equity ownership, not a fixed-income coupon.

> **🚧 BDCs are a judgment call**
>
> `BXSL.d` and `MSDL.d` are publicly-traded BDCs. They distribute loan interest as "dividends" for tax purposes, but the underlying yield source is loan interest, not corporate equity profit. RWA Kit surfaces them as fixed-income (`underlyingYieldSource: "bdc"`). If a vault's risk mandate requires "fund-structured fixed-income only," exclude them via the `underlyingYieldSource` filter.

***

## Yields without KYC

Yields where the end user **does not need to complete KYC** to hold the token and receive its yield. These fall into two camps: fully permissionless (`none`) and "primary-gated, but secondary is open" (`primary_only`).

### `kycRequired: "none"` — fully permissionless on-contract

| Yield         | Issuer | Underlying                                              | Wrapper            | Delivery mode           | Fees                                                   | Indicative APY | Networks                  |
| ------------- | ------ | ------------------------------------------------------- | ------------------ | ----------------------- | ------------------------------------------------------ | -------------- | ------------------------- |
| **mTBILL**    | Midas  | Basket of short-duration US Treasury ETFs (IB01, BUIDL) | Liquid yield token | `on_chain_share_growth` | 0.07% instant redemption fee; 10% perf fee on interest | \~3.3%         | Ethereum, Base, Etherlink |
| **mBASIS**    | Midas  | Delta-neutral basis trade                               | Liquid yield token | `on_chain_share_growth` | Per-product perf fee                                   | \~4.8%         | Ethereum, Base, Etherlink |
| **mEDGE**     | Midas  | Edge Capital diversified yield                          | Liquid yield token | `on_chain_share_growth` | Per-product perf fee                                   | \~5.5%         | Ethereum, Base, Etherlink |
| **mRE7YIELD** | Midas  | RE7 Capital structured yield                            | Liquid yield token | `on_chain_share_growth` | Per-product perf fee                                   | \~9.9%         | Ethereum, Base, Etherlink |
| **mMEV**      | Midas  | MEV Capital market-neutral arbitrage                    | Liquid yield token | `on_chain_share_growth` | Per-product perf fee                                   | \~12%          | Ethereum, Base, Etherlink |
| **mBTC**      | Midas  | BTC-denominated yield                                   | Liquid yield token | `on_chain_share_growth` | Per-product perf fee                                   | \~3.3%         | Ethereum, Base, Etherlink |

> **🚧 US persons (Midas)**
>
> Midas tokens are open ERC-20s, but Midas does not market or sell to US persons. Use Yield.xyz [Geoblocking](/docs/geoblocking) to align integration eligibility with Midas's distribution policy.

### `kycRequired: "primary_only"` — KYC at primary, permissionless on secondary

End users acquire these on secondary markets (DEX swap or peer-to-peer transfer) without ever touching the issuer's KYC portal. Yield accrues to whoever holds the token.

| Yield     | Issuer         | Underlying                                    | Wrapper                                | Delivery mode                           | Fees                                                                           | Secondary access                                                                               | Notes                                                                                                     |
| --------- | -------------- | --------------------------------------------- | -------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| **USDY**  | Ondo           | Yield-bearing secured note                    | ERC-20 (price-accruing)                | `on_chain_price_accrual`                | 0% mint/redeem on primary                                                      | Permissionless via DEX (Ethereum, Arbitrum, Solana)                                            | Primary mint requires KYC + allowlist; 40–50 day lockup; \$500 min                                        |
| **rUSDY** | Ondo           | Yield-bearing secured note (rebasing variant) | ERC-20 (rebasing, \$1 peg)             | `on_chain_rebase`                       | 0% mint/redeem on primary                                                      | Permissionless via DEX                                                                         | Same underlying as USDY; daily rebase                                                                     |
| **bIB01** | Backed Finance | iShares 0–1yr Treasury Bond UCITS ETF         | Tracker certificate (Swiss DLT Act)    | `on_chain_price_accrual`                | 0.20% primary issuance/redemption; underlying ETF expense ratio passes through | Permissionless on DEXs                                                                         | UCITS wrapper over US T-Bills, not direct T-Bill                                                          |
| **bC3M**  | Backed Finance | €STR / short EUR govt bonds                   | Tracker certificate                    | `on_chain_price_accrual`                | 0.20% primary issuance/redemption                                              | Permissionless on DEXs                                                                         | EUR-denominated short-end                                                                                 |
| **YLDS**  | Figure Markets | Unsecured debt obligation; SOFR-linked yield  | SEC-registered face-amount certificate | `on_chain_price_accrual` (peer-to-peer) | 0% mint/redeem fee                                                             | Permissionless peer-to-peer transfer on Provenance, Solana (Nov 2025), Stellar (May 2026), Sui | Yield = **SOFR − 35 bps** with 0.00% floor; accrued daily, paid monthly. KYC required for fiat redemption |

> **ℹ️ Equity-style trackers and stocks live in StockKit**
>
> `bCSPX` (S\&P 500 UCITS tracker), xStocks (`TSLAx`, `NVDAx`, etc.), Ondo Global Markets stocks (`ondoAAPL`, `ondoTSLA`, …), and all Dinari equity dShares are tokenized equities. They are served end-to-end from [StockKit](/docs/stockkit) on the Trade API, including the dividend stream for dividend-paying shares. StockKit uses the same `kycRequired` enum, the same KYC handoff to `api.kyc.yield.xyz`, and the same actors/regulatory metadata blocks.

***

## The integration model

Every RWA Kit position follows the same three-phase model regardless of KYC posture or settlement style — and it matches the existing Yield API lifecycle exactly:

1. **Discover** — `GET /yields` (RWA Kit yields appear inline with DeFi yields, filterable by `assetClass`, `issuer`, `kycRequired`, `yieldDeliveryMode`, `network`).
2. **Enter** — `POST /actions/enter` returns unsigned transactions and/or an off-chain subscription handle.
3. **Exit** — `POST /actions/exit` returns either an on-chain redemption tx, an `offchainRedeem` ticket, or both.

For KYC-gated instruments, a `412 Precondition Failed` response from `actions/enter` carries a `kycUrl` pointing at `api.kyc.yield.xyz` — the user completes verification there and the call is retried.

## Identifying RWA instruments

```http theme={null}
GET https://api.yield.xyz/v1/yields
  ?type=real-world-asset
  &assetClass=treasury,money-market,private-credit,structured,fixed-income
  &issuer=ondo,securitize,superstate,backed,franklin-templeton,figure,midas,dinari
  &kycRequired=always|primary_only|primary_and_yield|none
  &yieldDeliveryMode=on_chain_rebase|on_chain_price_accrual|on_chain_share_growth|off_chain_account_credit|wrapped_off_chain_distribution
  &network=ethereum,solana,base,arbitrum,plume,…
```

Each `Yield` returns the [updated metadata schema](#yield-metadata-schema) below. For tokenized equities — stocks, equity ETFs, equity dShares — and equity / commodity / forex / index perps, use `GET https://api.trade.yield.xyz/v1/markets` ([StockKit](/docs/stockkit)) instead.

## Yield metadata schema

All RWA yields carry the following additive metadata blocks on top of the existing `YieldDto`. Existing yields default to on-chain modes; the new fields are additive and non-breaking.

```json theme={null}
{
  "id": "plume-dinari-usfr",
  "issuer": "dinari",
  "assetClass": "fixed-income",
  "wrapper": "erc20-tokenised-share",
  "network": "plume",
  "yieldDelivery": {
    "mode": "off_chain_account_credit",
    "requiresIssuerAccount": true,
    "settlementAsset": "USD",
    "discoveryEndpoint": "/v1/yields/{yieldId}/distributions",
    "interestEndpoint":  "/v1/positions/{userId}/{yieldId}/accruals",
    "cadence": "monthly"
  },
  "underlyingYieldSource": "treasuries",
  "taxTreatment": "interest",
  "kycRequired": "primary_and_yield",
  "fees": {
    "distributionFee": 0.05,
    "issuanceFee": { "flat": "...", "variable": "..." }
  }
}
```

| Field                                 | Type   | Purpose                                                                                                                    |
| ------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
| `yieldDelivery.mode`                  | enum   | See [Yield delivery modes](#yield-delivery-modes)                                                                          |
| `yieldDelivery.requiresIssuerAccount` | bool   | If `true`, self-custodied tokens do not receive yield                                                                      |
| `yieldDelivery.settlementAsset`       | string | `USD`, `USD+`, `USDC`, `USDon`, or the underlying token                                                                    |
| `yieldDelivery.cadence`               | enum   | `daily` / `monthly` / `quarterly` / `event_driven`                                                                         |
| `underlyingYieldSource`               | enum   | `treasuries` / `ig_bonds` / `high_yield` / `munis` / `clo` / `senior_loans` / `bdc` / `private_credit` / `basis_carry`     |
| `taxTreatment`                        | enum   | `interest` / `return_of_capital` (`qualified_dividends` and `ordinary_dividends` apply only on the StockKit dividend feed) |
| `kycRequired`                         | enum   | See [KYC model](#kyc-model)                                                                                                |

***

## Integration walkthrough — Ondo OUSG (KYC-gated)

```http theme={null}
POST https://api.yield.xyz/v1/actions/enter
Content-Type: application/json

{
  "integrationId": "ethereum-usdc-ondo-ousg",
  "address": "0xUserWallet",
  "arguments": { "amount": "10000" }
}
```

If the wallet is not yet allowlisted you'll receive a `412`:

```json theme={null}
{
  "error": "PRECONDITION_FAILED",
  "message": "Address 0xUserWallet is not allowlisted for ondo",
  "details": {
    "address": "0xUserWallet",
    "issuer": "ondo",
    "kycUrl": "https://api.kyc.yield.xyz/v1/onboard?issuer=ondo&address=0xUserWallet"
  }
}
```

Hand the user off to `kycUrl`, then retry — the KYC API completes the allowlist enrolment with Ondo and returns when the wallet is live.

## Integration walkthrough — Dinari USFR.d (off-chain account credit)

Off-chain account credit needs an extra step before `actions/enter`: the user must have a linked Dinari Account so coupons can flow to them.

```http theme={null}
POST https://api.yield.xyz/v1/actions/enter
Content-Type: application/json

{
  "integrationId": "plume-dinari-usfr",
  "address": "0xUserWallet",
  "arguments": { "amount": "1000" }
}
```

If no Dinari Account is linked to the wallet, you'll get a `412` with an `accountLinkUrl`:

```json theme={null}
{
  "error": "PRECONDITION_FAILED",
  "message": "Wallet 0xUserWallet has no linked Dinari Account; yield cannot be delivered",
  "details": {
    "address": "0xUserWallet",
    "issuer": "dinari",
    "yieldDelivery": "off_chain_account_credit",
    "accountLinkUrl": "https://api.kyc.yield.xyz/v1/onboard?issuer=dinari&address=0xUserWallet&purpose=account-link"
  }
}
```

Post-link, the user holds USFR.d in self-custody but receives monthly USD coupons into their Dinari Account. Read coupons via `GET /v1/positions/{userId}/{yieldId}/accruals`.

## New Yield API endpoints

To support `off_chain_account_credit` yields, the Yield API exposes three RWA-specific endpoints that proxy and normalize issuer-side distribution data. They sit alongside the existing yield endpoints.

### `GET /v1/yields/{yieldId}/distributions`

Historical declaration schedule for a yield (ex-date, pay-date, cash amount per share). Lets partners chart APY without holding the position. For Dinari yields, proxies `GET /api/v2/market_data/stocks/{stock_id}/dividends`.

Example response (Dinari USFR.d):

```json theme={null}
{
  "yieldId": "plume-dinari-usfr",
  "distributions": [
    { "exDate": "2026-04-01", "payDate": "2026-04-03", "amountPerShare": "0.1612", "currency": "USD", "type": "CD" },
    { "exDate": "2026-03-01", "payDate": "2026-03-03", "amountPerShare": "0.1548", "currency": "USD", "type": "CD" },
    { "exDate": "2026-02-01", "payDate": "2026-02-03", "amountPerShare": "0.1421", "currency": "USD", "type": "CD" }
  ]
}
```

### `GET /v1/positions/{userId}/{yieldId}/accruals`

Per-user paid distribution events. Required for accurate portfolio P\&L when `yieldDelivery.mode = "off_chain_account_credit"`. Proxies `/api/v2/accounts/{account_id}/dividend_payments` and `/interest_payments`.

Example response:

```json theme={null}
{
  "userId": "u_abc123",
  "yieldId": "plume-dinari-usfr",
  "accruals": [
    {
      "stockId": "0196ea6d-b6e7-75b6-b40d-031ae7a715c2",
      "paymentDate": "2026-04-03",
      "grossAmount": "16.12",
      "partnerFee": "0.806",
      "netAmount": "15.314",
      "currency": "USD"
    }
  ]
}
```

***

## Issuer directory

### Dinari

Dinari issues **dShares** — ERC-20 wrappers tracking US-listed equities, ETFs, and fixed-income funds 1:1 — plus **USD+**, a non-rebasing yield-bearing stablecoin backed 100% by short-term US Treasuries and USD. Primary mint and redemption are KYC-gated under an SEC Reg D exemption; once issued, dShares are freely transferable ERC-20s on **Ethereum, Base, Arbitrum, Plume (`eip155:179205`), and Avalanche** (Dinari Financial Network).

**RWA Kit surfaces only Dinari's fixed-income product line and USD+**: 13 fixed-income dShares wrapping treasury, IG, HY, muni, CLO, senior-loan, and BDC ETFs, plus the USD+ stablecoin. **All equity dShares — single-name stocks (with or without dividends), equity ETFs (`SPY.d`, `IAU.d`, `SIVR.d`, `SLX.d`, `ETHE.d`) — are served from [StockKit](/docs/stockkit#dinari)**, including the dividend stream for dividend-paying stocks. One Dinari Account link via the [KYC API](https://api.kyc.yield.xyz/v1) covers both surfaces.

> **🚧 Dinari yield does not accrue on-chain**
>
> Dinari's tokens are settlement instruments, not yield-bearing instruments. Yield is delivered off-chain as USD (or fresh USD+) credited to the holder's Dinari Account. A user holding a Dinari token in a self-custodied wallet without a linked Dinari Account will **never receive yield**. This is encoded as `yieldDelivery.mode = "off_chain_account_credit"` and `kycRequired = "primary_and_yield"`.

| Detail                                | Value                                                                                                        |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Yield-bearing asset classes (RWA Kit) | Fixed-income dShares (treasuries, IG, HY, muni, CLOs, senior loans, BDCs); USD+ yield-bearing stablecoin     |
| Networks                              | Ethereum, Base, Arbitrum, Plume (`eip155:179205`), Avalanche (Dinari Financial Network)                      |
| Yield delivery mode                   | `off_chain_account_credit`                                                                                   |
| Primary mint / redeem                 | KYC + KYB required at Dinari's portal                                                                        |
| Secondary trading                     | Permissionless ERC-20 on DEXs                                                                                |
| Trading fee model                     | `fee_buy = fee_flat + fee_variable × x_paid`; `fee_sell = fee_flat + fee_variable × (x_proceeds − fee_flat)` |
| Distribution fee                      | 5% standard fee on yield-paying dShares                                                                      |
| USD+ mgmt fee                         | 0% (interest credited off-chain)                                                                             |
| Partner-fee passthrough               | ✅ Configurable per project                                                                                   |
| Vault-compatible                      | ✅ Hybrid leg — see [Vault compatibility](#vault-compatibility)                                               |

**USD+ — yield-bearing stablecoin.**

| Detail                               | Value                                                                                                                                                                                                      |
| ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Standard                             | Plain ERC-20, 6 decimals, ERC1967 proxy. **Not rebasing**                                                                                                                                                  |
| Contract (multi-chain, same address) | [`0xC9E3df3D230980B45adC623C81C3DF4A73a5350f`](https://etherscan.io/address/0xC9E3df3D230980B45adC623C81C3DF4A73a5350f) (Ethereum, Base, Arbitrum, Plume)                                                  |
| Minter                               | `0x500c1B2F2ce1Cb64c53cc7759d8110EFf5dE93cE`                                                                                                                                                               |
| Redeemer                             | `0xC22E4A78B8aD3fa027c3be66387a4067947a7C45`                                                                                                                                                               |
| Backing                              | 100% short-term US Treasuries + USD                                                                                                                                                                        |
| Yield mechanism                      | Off-chain accounting. Interest accrued at broker/custody level; credited via `GET /api/v2/accounts/{account_id}/interest_payments` (most likely as a fresh USD+ mint to the user's Dinari Account balance) |
| Self-custody yield                   | ❌ Not delivered                                                                                                                                                                                            |

**Integration paths.**

| Path                                                                                            | Description                                                                                                                                                                                    | Trust model                                                                         |
| ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| **A — Custodial / API-mediated** (`yieldType: "off_chain_distribution"`) — *recommended for v1* | Yield.xyz holds the dShare or USD+ inside a Yield.xyz-operated Dinari Account; backend polls `/dividend_payments` and `/interest_payments`; 5% distribution fee skimmed before crediting users | Dinari Account is the source of truth for entitlements                              |
| **B — On-chain wrapper vault** (`yieldType: "wrapped_off_chain_distribution"`) — *deferred*     | Custom ERC-4626-shaped vault holds dShares; back-end Dinari Account bound to the vault address; distributions either re-mint more dShares (auto-compound) or accrue claimable USD+             | Off-chain Account is still the source of truth; ERC-4626 abstraction wrapped on top |

> **📘 Reg D context**
>
> Dinari's primary issuance relies on a Reg D exemption. The on-chain transfer restriction is enforced only at the mint/redeem boundary — dShare tokens themselves are unrestricted ERC-20s once minted. Yield entitlement, however, is enforced at the Account boundary — a non-Account holder of a transferred dShare gets the token but not the cash coupons.

### Ondo Finance

Ondo runs the broadest product line of any issuer on Yield.xyz. RWA Kit covers the yield-bearing products below; **Ondo Global Markets** — Ondo's tokenized equities surface (260+ NYSE / NASDAQ stocks and ETFs settled in `USDon`) — is served from [StockKit](/docs/stockkit#ondo-global-markets).

**OUSG — short-term US Government Treasuries.**

| Detail              | Value                                         |
| ------------------- | --------------------------------------------- |
| Underlying          | Short-term US Treasuries + GSE securities     |
| Networks            | Ethereum, Solana, Polygon, others             |
| Yield delivery mode | `on_chain_price_accrual`                      |
| Mint / redeem       | 24/7 instant in USDC                          |
| Minimum             | \$5,000                                       |
| Mint / redeem fees  | 0%                                            |
| Management fee      | Capped at 0.15%; **waived until 1 July 2026** |
| KYC                 | `always`                                      |

**USDY / rUSDY — yield-bearing secured note.**

| Detail           | Value                                                                                    |
| ---------------- | ---------------------------------------------------------------------------------------- |
| Format           | Accumulating (`USDY`, `on_chain_price_accrual`) or rebasing (`rUSDY`, `on_chain_rebase`) |
| Networks         | Ethereum, Arbitrum, Solana                                                               |
| Primary mint     | KYC + allowlist; **40–50 day lockup**; \$500 minimum                                     |
| Secondary access | Permissionless via DEX (no KYC)                                                          |
| Yield mechanic   | USDY: price-accruing. rUSDY: daily rebase, \$1 peg                                       |
| KYC              | `primary_only`                                                                           |

### Securitize

Distribution and compliance platform for institutional asset managers — not an issuer of its own funds. KYC handled via **Securitize iD** (proxied through `api.kyc.yield.xyz`).

| Fund    | Asset manager | Underlying                                   | Management fee                                   | Minimum          |
| ------- | ------------- | -------------------------------------------- | ------------------------------------------------ | ---------------- |
| `BUIDL` | BlackRock     | USD institutional liquidity (T-Bills + cash) | **0.50% (0.20% on Avalanche / Aptos / Polygon)** | \$5,000,000 USDC |
| `VBILL` | VanEck        | Short-term US Treasuries                     | Per prospectus                                   | Per fund         |
| `ACRED` | Apollo        | Diversified Credit Fund (private credit)     | Per prospectus                                   | Per fund         |
| Others  | Various       | Various                                      | Per fund                                         | Per fund         |

> **ℹ️ BUIDL pricing nuance**
>
> BUIDL's fee differs by deployment chain. When constructing OAVs that span multiple BUIDL deployments, surface the effective fee per leg in your reporting layer.

### Superstate

Two live tokenized funds, both restricted to **US Qualified Purchasers**.

| Instrument ID                         | Underlying                   | Reward token | Mgmt fee                               |
| ------------------------------------- | ---------------------------- | ------------ | -------------------------------------- |
| `ethereum-usdc-superstate-ustb-vault` | Short-duration US Treasuries | `USTB`       | 0.15% (10 bps rebate above \$25M avg.) |
| `ethereum-usdc-superstate-uscc-vault` | Crypto carry strategy        | `USCC`       | 0.75%                                  |

| Detail               | Value                                                |
| -------------------- | ---------------------------------------------------- |
| Networks             | Ethereum                                             |
| Minimum subscription | 100,000 USDC (USTB)                                  |
| Redemption           | T+1 via `offchainRedeem`; daily market-day liquidity |
| KYC                  | `always`; US Qualified Purchasers only               |
| Vault-compatible     | ✅                                                    |

> **🚧 Manager transitions in 2026**
>
> * **USTB:** Invesco Advisers, Inc. became investment manager in Q2 2026 (announced 24 March 2026).
> * **USCC:** Bitwise Investment Manager, LLC becomes investment manager on 1 June 2026.
>
> Fund mechanics remain unchanged through both transitions.

**Upcoming:** `USPY` — Superstate's tokenized US equity product. Because it is a tokenized equity (price-tracking, no recurring yield in the staking sense), it will launch on [StockKit](/docs/stockkit) rather than RWA Kit.

### Backed Finance

Acquired by Kraken in December 2025. RWA Kit covers the yield-bearing **bToken** trackers (`bIB01`, `bC3M`). The equity trackers — `bCSPX` and the **xStocks** family (`TSLAx`, `NVDAx`, `AAPLx`, …) — live in [StockKit](/docs/stockkit#xstocks-backed-finance-kraken).

| Detail                                | Value                                                                 |
| ------------------------------------- | --------------------------------------------------------------------- |
| Yield-bearing asset classes (RWA Kit) | US T-Bill exposure via UCITS wrapper (`bIB01`), EU short-end (`bC3M`) |
| Networks (bTokens)                    | Ethereum, Solana, others                                              |
| Primary mint / redeem                 | Reg S / qualified-investor KYC via Backed                             |
| Primary fee                           | 0.20% issuance / redemption                                           |
| Secondary trading                     | Permissionless on DEXs (Raydium, Uniswap, etc.)                       |
| KYC                                   | `primary_only`                                                        |
| Vault-compatible                      | ✅                                                                     |

> **👍 Why Backed sits in both buckets**
>
> Backed's primary issuance is permissioned, but every issued token is a freely transferable ERC-20 / SPL token on secondary. Treat Backed as **permissionless from the integration standpoint** — most end-user flows route through DEX swap, not primary mint.

### Franklin Templeton

**BENJI** is the on-chain share class of **FOBXX** — the Franklin OnChain US Government Money Fund.

| Detail              | Value                                                                           |
| ------------------- | ------------------------------------------------------------------------------- |
| Underlying          | US Government money-market fund (FOBXX)                                         |
| Regulatory wrapper  | SEC-registered '40 Act mutual fund                                              |
| Networks            | Stellar, Ethereum, Solana, Aptos, Avalanche, Base, Arbitrum, BNB Chain, Polygon |
| Yield delivery mode | `on_chain_share_growth`                                                         |
| Expense ratio       | **0.20% net (after waivers) / 0.22% gross**                                     |
| Mint / redeem fee   | 0%                                                                              |
| Minimum             | $5M on Ethereum; $ 100 on Solana / Aptos / Base (retail-tier chains)            |
| Redemption          | Daily, T+1; USD wire **or** USDC payout                                         |
| KYC                 | `always` on all chains via Benji platform                                       |
| Vault-compatible    | ✅                                                                               |

> **ℹ️ USDC funding rails**
>
> Franklin Templeton operates 24/7/365 USDC subscription and redemption via a partnership with Zero Hash. This shortens the user-visible flow even though fund accounting remains T+1.

### Figure Markets

**YLDS** is an SEC-registered yield-bearing transferable stablecoin, structured as a face-amount certificate from Figure Certificate Company.

| Detail              | Value                                                                              |
| ------------------- | ---------------------------------------------------------------------------------- |
| Underlying          | Unsecured debt obligation of issuer; SOFR-linked yield                             |
| Yield mechanic      | **SOFR − 35 bps**, 0.00% floor; accrued daily, paid monthly                        |
| Yield delivery mode | `on_chain_price_accrual` (peer-to-peer)                                            |
| Networks            | Provenance Blockchain, Solana (Nov 2025), Stellar (May 2026), **Sui**              |
| KYC                 | `primary_only` (required at primary mint / fiat redemption)                        |
| Secondary transfer  | ✅ Permissionless peer-to-peer                                                      |
| Mint / redeem fee   | 0%                                                                                 |
| Redemption          | Instant peer-to-peer or USDC/stablecoin; USD fiat off-ramp during US banking hours |
| Vault-compatible    | ✅                                                                                  |

**Upcoming.** Figure's **PRIME** (prime money-market exposure) and **CASH** (USD operating cash) products are on the roadmap.

### Midas

Permissionless **liquid yield tokens** — open ERC-20s on-contract; mint and redeem flow through Midas's Issuance Vault.

| Detail                 | Value                                                               |
| ---------------------- | ------------------------------------------------------------------- |
| Networks               | Ethereum, Base, Etherlink                                           |
| Yield delivery mode    | `on_chain_share_growth`                                             |
| Mint                   | Atomic via `depositInstant(...)` on the Issuance Vault              |
| Redemption             | Instant (subject to MSL pool liquidity) or Standard (T+1–3 days)    |
| Instant redemption fee | 0.07%                                                               |
| KYC                    | `none` — no on-chain allowlist, but **not available to US persons** |
| Vault-compatible       | ✅                                                                   |

**Contracts (Ethereum mainnet, verified as of 2026-05-16).**

| Contract       | Address                                                                                                                 |
| -------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Issuance Vault | [`0x99361435420711723aF805F08187c9E6bF796683`](https://etherscan.io/address/0x99361435420711723aF805F08187c9E6bF796683) |
| mTBILL token   | [`0xDD629E5241CbC5919847783e6C96B2De4754e438`](https://etherscan.io/address/0xDD629E5241CbC5919847783e6C96B2De4754e438) |

***

## Position lifecycle & balance states

| State       | Meaning                                                                                                        |
| ----------- | -------------------------------------------------------------------------------------------------------------- |
| `Active`    | Tokens held and accruing yield (on-chain rebase, share growth, NAV uplift, or off-chain dividend feed)         |
| `Pending`   | On-chain enter/exit tx submitted but not yet confirmed, **or** an off-chain subscription is in flight          |
| `Unstaking` | Exit submitted; off-chain settlement in progress (e.g. Superstate T+1 NAV strike, Franklin BENJI daily strike) |
| `Claimable` | Settlement complete; user can claim USDC/USD via `actions/claim`                                               |
| `Paused`    | Issuer has paused the instrument (regulatory hold, end-of-life, fund liquidation)                              |

The off-chain distribution feed (`Position.distributions[]`) is independent of state — distributions can accrue against an `Active` position and are surfaced regardless of issuer.

## Error handling reference

| HTTP code | Meaning                                                                                         | Recovery                                                 |
| --------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `400`     | Bad input (e.g. amount below minimum subscription)                                              | Fix the input                                            |
| `404`     | Instrument or position not found                                                                | Re-run discovery                                         |
| `412`     | KYC / allowlist precondition not met; **or** missing linked issuer account (off-chain delivery) | Redirect to `details.kycUrl` or `details.accountLinkUrl` |
| `423`     | Instrument locked (e.g. USDY 40–50 day primary lockup)                                          | Surface `details.lockExpiresAt` in UI                    |
| `503`     | Issuer upstream down                                                                            | Retry with backoff                                       |

All error bodies follow the shared `StakeKitError` shape with `error`, `message`, and `details`.

## KYC API

KYC moved to `api.kyc.yield.xyz` for three reasons:

1. **PII isolation.** Identity documents, addresses, and accreditation evidence are stored separately from instrument data.
2. **Regional segregation.** EU records stored in EU; US in US; APAC in APAC.
3. **Issuer handoff abstraction.** Each issuer (Ondo, Securitize, Superstate, Franklin, Figure, Backed, Dinari) has its own KYC portal; the KYC API normalises the handoff.

The KYC API is shared across **Yield API (RWA Kit) and Trade API ([StockKit](/docs/stockkit))** — wallets that complete KYC once for a given issuer are recognised by both surfaces. A user who's already KYC'd via Dinari for USFR.d does not need to re-KYC to buy `AAPL.d` on StockKit, and vice versa.

| Endpoint                            | Purpose                                                                                                                          |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `POST /v1/onboard`                  | Initiate KYC for a `(wallet, issuer)` pair; returns hosted-flow URL. Use `purpose=account-link` for Dinari-style account linkage |
| `GET /v1/status?address=…&issuer=…` | Check current KYC + allowlist + account-link status                                                                              |
| `POST /v1/webhooks`                 | Subscribe to allowlist / account-link state changes                                                                              |
| `DELETE /v1/records/{recordId}`     | Right-to-erasure (GDPR / CCPA)                                                                                                   |

## Vault compatibility

Every issuer above is supported as a leg inside:

* [Optimized Allocator Vaults (OAVs)](/docs/allocator-vaults-and-oavs) — multi-issuer routing across RWA + DeFi
* **Sentinel Vaults** — risk-monitored allocator vaults with policy guardrails
* **Meta Vaults** — composite vaults aggregating multiple OAVs / Sentinel Vaults

Where a vault is multi-issuer (e.g. a US T-Bill OAV blending BUIDL, USTB, OUSG, mTBILL, BENJI, USFR.d), RWA Kit handles the issuer-specific KYC handoffs through the KYC API and allowlist checks per leg.

### Hybrid legs (off-chain account credit)

Dinari legs are **hybrid**: the vault contract holds the dShare or USD+ token on-chain, but the cash-yield leg is reconciled off-chain via Yield.xyz's Dinari Account integration. Vault NAV is computed as:

```text theme={null}
NAV = (tokenBalance × oraclePrice) + accruedOffChainYield
```

where `accruedOffChainYield` is sourced from `GET /v1/positions/{vaultAddress}/{yieldId}/accruals`. Surface this composition in the vault's `nav.components` so partners can audit the on-chain vs. off-chain split.

> **👍 Building an OAV across permissioned, permissionless, and hybrid legs**
>
> If a vault includes KYC-gated (e.g. BUIDL), permissionless (e.g. mTBILL), and hybrid-off-chain (e.g. USFR.d) legs, three checks apply per leg:
>
> 1. **Allowlist check** — for `kycRequired: "always"` legs, on-chain allowlist gating.
> 2. **Account-link check** — for `kycRequired: "primary_and_yield"` legs, verify the user has a linked Dinari Account so yield can flow.
> 3. **Geographic check** — for `kycRequired: "none"` legs with distribution restrictions (Midas → no US persons).
