Skip to main content
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 for those.
🧱 Every RWA yield is wrapped in a Yield.xyz async vault Users never hold the underlying RWA token and never sign up with the issuer directly. They deposit into a Yield.xyz vault, receive vault shares, and see yield as PPS appreciation on those shares. The vault is the on-chain holder of the underlying, the gateway to primary issuance and redemption, and the destination for every off-chain coupon — all of that is handled at the vault layer. Where the underlying instrument’s require KYC, the user’s wallet is onboarded onto the vault allowlist in one of two ways: a Yield.xyz hosted KYC flow, or — where the issuer accepts reliance on existing KYC — a direct whitelist with no user-facing flow at all.

API surfaces

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

Yield-Type Index

Tokenized US T-Bills, money-market funds, and Treasury ETF wrappers — plus the only EU short-end fixed-income product (bC3M, included here for proximity to short-duration USD exposure).

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. Per-issuer detail lives in the Issuer directory below.

Yield delivery modes

Every yield in RWA Kit declares a yieldDelivery.mode in its metadata describing how the underlying token accrues yield. Partners do not need to route on this — the async vault absorbs every mode and exposes a single uniform interface (deposit, hold vault share, PPS appreciates, exit via the withdrawal queue). The field is exposed so partners can reason about NAV update cadence, reporting, and reconciliation.
🧱 The user never sees these modes Partners surface the vault share as a single balance, and yield as PPS appreciation, regardless of mode. There is no “self-custody receives yield” question to answer for the end user — the vault is always the holder of the underlying, and the vault always receives the yield. Mode-specific quirks are operational concerns absorbed inside the integration.

KYC model

kycRequired is a boolean on every yield: true if the wallet must be on the vault allowlist before depositing, false if the vault is permissionless from the user’s perspective.
Two paths onto the vault allowlist When kycRequired: true, the wallet is added to the vault allowlist via one of two paths:
  • Yield.xyz hosted flow — the user completes a single Yield.xyz hosted KYC flow (api.kyc.yield.xyz). This is the default and works for every issuer.
  • Reliance whitelist — where the underlying issuer accepts reliance on an existing KYC (e.g. KYC already performed by the partner, an existing accredited-investor attestation), Yield.xyz whitelists the wallet directly. There is no user-facing flow.
Either path lands the wallet on the same vault allowlist on the next daily sync, and the user never enrols with the issuer directly or receives an issuer-specific account or onboarding link.
The two sections below split every yield on this boolean. This is the practical question for product flows.

Yields requiring KYC

Yields where the wallet must be on the vault allowlist before depositing. The underlying issuer’s access controls are absorbed at the vault layer — onboarding goes through either the Yield.xyz hosted flow or a reliance-based whitelist where the issuer accepts existing KYC (see KYC model). Either way, the wallet is synced onto the vault allowlist on the next daily refresh and the user never enrols with the issuer directly.
ℹ️ Contract addresses are exposed in the issuer directory Per-instrument mainnet token addresses (where confirmed — USFR.d, CLOA.d, FBND.d, USD+) and the per-issuer operational details live in the Issuer directory below. The table above stays slim — partners only need it to scope which yields force a user-side KYC step.

Yields without KYC

Yields where the user can deposit into the vault without any KYC handoff. Where the underlying issuer requires primary-side onboarding, the vault handles it and mints on the user’s behalf. Where the underlying is fully permissionless, the vault matches.
ℹ️ 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 on the Trade API, including the dividend stream for dividend-paying shares. StockKit uses the same boolean kycRequired model and the same KYC handoff to api.kyc.yield.xyz.

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. DiscoverGET /yields (RWA Kit yields appear inline with DeFi yields, filterable by assetClass, issuer, kycRequired, yieldDeliveryMode, network).
  2. EnterPOST /actions/enter returns unsigned transactions and/or an off-chain subscription handle.
  3. ExitPOST /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

Each Yield returns the updated 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) 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.

Integration walkthrough — Ondo OUSG (KYC-gated)

If the wallet isn’t yet on the OUSG vault’s allowlist you’ll receive a 412:
Hand the user off to kycUrl (a Yield.xyz hosted flow — they never see Ondo’s portal). On completion, the wallet is synced into the OUSG vault allowlist on the next daily refresh, after which actions/enter succeeds. Partners with an existing KYC that the issuer accepts under reliance can skip the hosted flow entirely — request a direct whitelist via the dashboard / API and the wallet lands on the same allowlist on the next daily sync without ever seeing a 412. See KYC model for the two paths.

Integration walkthrough — Dinari USFR.d (off-chain coupon, vault-absorbed)

From the partner’s perspective Dinari is identical to OUSG — same actions/enter shape, same 412 + kycUrl if the user isn’t yet on the vault allowlist, same vault-share balance. The off-chain coupon mechanic is absorbed by the vault.
If the wallet isn’t yet on the USFR.d vault allowlist (USFR.d is kycRequired: true), you’ll get the same 412 shape as OUSG, with a kycUrl pointing at the Yield.xyz hosted flow. Once KYC completes and the next daily allowlist sync runs, the deposit succeeds. As with OUSG, partners with an existing KYC the issuer accepts under reliance can request a direct whitelist instead of running the hosted flow — see KYC model. What’s happening behind the scenes:
  • The vault holds the USFR.d dShare on-chain.
  • The monthly USD coupon is delivered off-chain to the vault. It’s funneled back in as fresh underlying (or fresh USD+), and the vault’s PPS appreciates.
  • The user holds a vault share. They never see issuer accounts, dividend_payments calls, or coupon-claim flows.

New Yield API endpoints

To support off_chain_account_credit yields, the Yield API exposes two RWA-specific endpoints that proxy and normalize issuer-side distribution data. These are partner-side reporting endpoints — users do not interact with them. The user-facing primitive is the vault share balance, which already reflects every coupon as PPS appreciation.

GET /v1/yields/{yieldId}/distributions

Historical declaration schedule for a yield (ex-date, pay-date, cash amount per share). Lets partners chart APY and reconcile expected vs. realised coupon. For Dinari yields, proxies GET /api/v2/market_data/stocks/{stock_id}/dividends. Example response (Dinari USFR.d):

GET /v1/yields/{yieldId}/accruals?vaultAddress=…

Vault-level paid distribution events. Required for partner reconciliation when yieldDelivery.mode = "off_chain_account_credit" — shows when the coupon was actually received at the vault layer and how it was funneled back into the vault. Returns a flat list keyed by the vault address. Example response:

Issuer directory

Superstate — USTB, USCC (Live)

Two live tokenized funds, both restricted to US Qualified Purchasers. Superstate is the only RWA Kit issuer already enabled on Yield.xyz today — partners can ship USTB and USCC immediately.
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 rather than RWA Kit.
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 gated; 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, including the dividend stream for dividend-paying stocks. The user’s single Yield.xyz hosted KYC flow covers both surfaces — no issuer portal, no per-issuer onboarding.
Dinari yield flows into the vault, not the user’s wallet.Dinari’s tokens are settlement instruments, not yield-bearing instruments. Yield is delivered off-chain as USD (or fresh USD+) into the vault. The monthly coupon is funneled back into the vault address as fresh underlying (or fresh USD+), and the vault’s PPS appreciates on the next NAV update. The user holds a vault share and never needs to claim a coupon — the asynchronous coupon is reflected in the vault NAV. Encoded as yieldDelivery.mode = "off_chain_account_credit" and kycRequired = true; partners only ever transact against the vault contract.
USD+ — yield-bearing stablecoin.Integration model — async vault, single path.
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.OUSG — short-term US Government Treasuries.USDY / rUSDY — yield-bearing secured note.
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.
Distribution and compliance platform for institutional asset managers — not an issuer of its own funds. Issuer-side onboarding is handled at the vault layer; the user only ever sees api.kyc.yield.xyz.
Permissionless liquid yield tokens — open ERC-20s on-contract; mint and redeem flow through Midas’s Issuance Vault.Contracts (Ethereum mainnet, verified as of 2026-05-16).
BENJI is the on-chain share class of FOBXX — the Franklin OnChain US Government Money Fund.
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.
YLDS is an SEC-registered yield-bearing transferable stablecoin, structured as a face-amount certificate from Figure Certificate Company.Upcoming. Figure’s PRIME (prime money-market exposure) and CASH (USD operating cash) products are on the roadmap.

Position lifecycle & balance states

KYC API

api.kyc.yield.xyz provides a single user-facing flow. Each underlying issuer has its own access-control posture. Those issuer relationships are held at the vault layer — users either complete one Yield.xyz hosted flow, or — where the underlying issuer accepts reliance on existing KYC — are whitelisted directly with no user-facing flow at all. Either way, the result is mapped onto whichever vault allowlists the wallet is approved for. The KYC API is shared across Yield API (RWA Kit) and Trade API (StockKit) — a wallet that’s completed KYC once for a given jurisdictional / accreditation tier is recognised by both surfaces, and re-used across every vault that gates on the same tier.

Async RWA vaults

Every RWA Kit yield is delivered through a Yield.xyz async RWA vault — a wrapper contract that absorbs the off-chain settlement cadence, allowlist requirements, and yield-delivery mechanics of the underlying RWA, and exposes a single uniform deposit / withdraw interface to the partner integration.

How yield flows into the vault

The vault holds the underlying RWA token on-chain (BUIDL, OUSG, USFR.d, mTBILL, etc.) and issues vault share tokens to depositors. All yield — on-chain or off-chain — accrues as price-per-share appreciation: Partners surface the vault share as a single balance in their UI — no separate “claimable distributions” stream is required for the user. Distribution events remain available via GET /v1/yields/{yieldId}/distributions and GET /v1/positions/{vaultAddress}/{yieldId}/accruals for partner reporting and reconciliation.

Daily allowlist refresh

Yields with kycRequired: true require the vault contract to enforce a per-wallet allowlist on deposits. The flow is the same for every issuer:
  1. Wallet is cleared via one of two paths:
    • Hosted flow — the user completes the Yield.xyz hosted KYC flow at api.kyc.yield.xyz. One flow, regardless of which underlying issuer is being satisfied.
    • Reliance whitelist — where the underlying issuer accepts reliance on an existing KYC (partner-side KYC, prior accredited-investor attestation, etc.), Yield.xyz whitelists the wallet directly. There is no user-facing flow.
  2. Yield.xyz reconciles internally against each underlying issuer’s access-control posture. These issuer-side relationships are held at the vault layer — the user never enrols with an issuer directly and never has a per-issuer account.
  3. Daily allowlist sync — Yield.xyz pushes a batched allowlist update to each KYC-gated vault contract once per day, adding all newly-cleared wallets (from either path).
  4. User deposits on next sync — once the allowlist update lands on-chain, the user’s wallet can call deposit() / mint() against the vault.
For yields with kycRequired: false, there is no user-level allowlist — the vault handles issuer-side onboarding (where applicable) and users deposit immediately, subject to partner-side Geoblocking.

Withdrawal queue (async exits)

RWA exits are rarely atomic — settlement cadences range from 24/7 instant (Ondo OUSG via Circle) to T+1 NAV strikes (Superstate, BENJI), 40–50 day primary lockups (Ondo USDY), and monthly liquidity windows (Apollo ACRED). The vault absorbs this with a withdrawal queue:
  1. User submits exitPOST /v1/actions/exit with integrationId (the vault) and address. The vault contract escrows the user’s shares and queues the off-chain redemption.
  2. Vault triggers off-chain redemption — submits an offchainRedeem ticket to the issuer (or an on-chain redemption tx where supported).
  3. Settlement lands — issuer settles in USDC, USD, or fresh underlying back to the vault.
  4. User claimsPOST /v1/actions/exit with the follow-on intent (or POST /v1/actions/manage for yields that model claim as a separate manage-action) pulls the settled funds to the user’s wallet.
Mapping to the queue: while the issuer is still settling, the user’s vault shares appear with BalanceType: "exiting". Once settlement lands, that status flips to BalanceType: "withdrawable" and the user can claim. Both balance types are exposed alongside the active share balance.

Client-configurable vault fees

Partners can configure three layers of vault-level fees on top of the issuer-side fee schedule. All are optional and configured per project in the Yield.xyz dashboard: