RWAKit
Production-ready guide for integrating tokenized real-world asset yields (permissioned and permissionless) — through the Yield.xyz API.
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, 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.
Direct, non-custodial — the user holds the issuer's own tokenRWA Kit is a direct integration. The user — or the partner acting on their behalf — interacts directly with the underlying RWA protocol through the unified Yield API: discover a yield, enter, exit. Yield.xyz returns ordered, unsigned transactions that are signed client-side in the user's own wallet. The user holds the issuer's own token (
USTB,mTBILL,OUSG,USD+, …) and yield accrues through that token's native mechanism. Yield.xyz never holds keys, never custodies funds, and is never a counterparty to the position. Permissioned and permissionless yields integrate identically — the only difference is whether the wallet must first clear the issuer's KYC/allowlist.
API surfaces
| Surface | Base URL | Owns |
|---|---|---|
| Yield API (RWA Kit lives here, incl. KYC) | https://api.yield.xyz/v1 | Staking, lending, LP, DeFi, and all yield-bearing RWAs — instrument discovery, positions, enter/exit, KYC status, off-chain settlement status |
RWAKit is one API surface — there is no separate KYC service. KYC is exposed as endpoints on the Yield API itself.
Yield types & supported products
U.S. Treasuries
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).
| Ticker | Issuer | Underlying | Networks | KYC | Status |
|---|---|---|---|---|---|
mTBILL | Midas | Short-duration US T-Bills | Ethereum, Base | No | Live |
USTB | Superstate / Invesco | Short-duration US government securities | Ethereum | Yes | Live |
OUSG | Ondo Finance | Short-term US government bond fund | Ethereum | Yes | Live |
VBILL | Securitize / VanEck | Short-term US Treasuries | Ethereum | Yes | Live |
nTBILL | Nest (by Plume) | Tokenized US T-Bill yield | Ethereum | Screened¹ | Live |
BUIDL | Securitize / BlackRock | USD institutional liquidity fund | — | Yes | Upcoming |
BENJI | Franklin Templeton | US government money-market fund (FOBXX) | — | Yes | Upcoming |
USFR.d | Dinari / WisdomTree | Floating-rate Treasury fund | — | Yes | Upcoming |
BOXX.d | Dinari / Alpha Architect | 1–3 month box-spread ETF | — | Yes | Upcoming |
TLT.d | Dinari / BlackRock | 20+ year Treasury bond ETF | — | Yes | Upcoming |
TMF.d | Dinari / Direxion | 3× leveraged 20+ year Treasury ETF | — | Yes | Upcoming |
Credit
Investment grade, high yield, municipals, CLOs, senior loans, BDCs, and private credit. ACRED is the only allowlist-gated private-credit fund live on-chain; the Dinari fixed-income dShares are coming soon.
| Ticker | Issuer | Underlying | Networks | KYC | Status |
|---|---|---|---|---|---|
ACRED | Securitize / Apollo | Apollo Diversified Credit Fund | Ethereum, Polygon, Avalanche | Yes | Live |
STAC | Securitize | AAA-rated CLOs | Ethereum | Yes | Live |
HLSCOPE | Securitize / Hamilton Lane | Senior credit opportunities (private markets) | Ethereum, Polygon | Yes | Live |
nCREDIT | Nest (by Plume) | Tokenized private credit | Ethereum | Screened¹ | Live |
nACRDX | Nest / Apollo | Apollo diversified credit | Ethereum | Screened¹ | Live |
nLCRD | Nest (by Plume) | Liquid credit | Ethereum | Screened¹ | Live |
nCLOA | Nest / BlackRock | iShares AAA CLO Active ETF | Ethereum | Screened¹ | Live |
nFALCON | Nest / FalconX | FalconX CLO | Ethereum | Screened¹ | Live |
nOPAL | Nest / BlackOpal | BlackOpal LiquidStone II | Ethereum | Screened¹ | Live |
APC3M | R25 / Axil | Prime credit 3-month vault | Pharos | No | Live |
CLOA.d | Dinari / BlackRock | iShares AAA CLO Active ETF | — | Yes | Upcoming |
FBND.d | Dinari / Fidelity | Fidelity Total Bond ETF | — | Yes | Upcoming |
USHY.d | Dinari / BlackRock | Broad USD high-yield corporate bond ETF | — | Yes | Upcoming |
HYMB.d | Dinari / SPDR Nuveen | High-yield municipal bond ETF | — | Yes | Upcoming |
JAAA.d | Dinari / Janus Henderson | AAA CLO ETF | — | Yes | Upcoming |
JBBB.d | Dinari / Janus Henderson | B–BBB CLO ETF | — | Yes | Upcoming |
SRLN.d | Dinari / SPDR Blackstone | Senior loan ETF | — | Yes | Upcoming |
BXSL.d | Dinari / Blackstone | Blackstone Secured Lending Fund (BDC) | — | Yes | Upcoming |
MSDL.d | Dinari / Morgan Stanley | Direct Lending Fund (BDC) | — | Yes | Upcoming |
Yield-Bearing Notes & Stablecoins
Product shapes that look like stablecoins but settle differently: Reg S Cayman secured notes (Ondo), SEC-registered face-amount certificate, and a yield-bearing ERC-20 stablecoin (Dinari).
| Ticker | Issuer | Underlying | Networks | KYC | Status |
|---|---|---|---|---|---|
USD+ | Dinari | Short-term US Treasuries + USD reserves | Ethereum, Base, Arbitrum | No | Live |
USDY | Ondo Finance | Yield-bearing secured note (US Treasury collateral) | Ethereum | Yes | Live |
rUSDY | Ondo Finance | Rebasing variant of USDY | — | No | Upcoming |
YLDS | Figure Markets | SEC-registered yield-bearing stablecoin | — | No | Upcoming |
EU Treasuries
EUR-denominated short-end government bond exposure.
| Ticker | Issuer | Underlying | Networks | KYC | Status |
|---|---|---|---|---|---|
EUTBL | Spiko | Eurozone T-Bills (EUR-denominated) | — | Yes | Upcoming |
Actively Managed Strategies
Performance-fee-based strategies — crypto carry / basis, structured yield, MEV arbitrage, BTC-denominated yield. No recurring management fee on Midas; Superstate's USCC is for US Qualified Purchasers only.
Actively managed strategies
| Ticker | Issuer | Underlying | Networks | KYC | Status |
|---|---|---|---|---|---|
USCC | Superstate / Bitwise | Crypto basis/carry (long spot, short perps) | Ethereum | Yes | Live |
mGLO | Midas / Fasanara | Fasanara Global Open strategy | Base, Robinhood Chain | Yes | Live |
nALPHA | Nest (by Plume) | Diversified tokenized RWA yield | Ethereum | Screened¹ | Live |
nBASIS | Nest (by Plume) | Tokenized basis trade | Ethereum | Screened¹ | Live |
nWISDOM | Nest (by Plume) | Tokenized RWA yield | Ethereum | Screened¹ | Live |
nPERENA | Nest / Perena | Perena yield | Ethereum | Screened¹ | Live |
mBASIS | Midas | Delta-neutral basis trade | — | No | Upcoming |
mEDGE | Midas / Edge Capital | Diversified yield strategies | — | No | Upcoming |
mRE7YIELD | Midas / RE7 Capital | Structured yield strategy | — | No | Upcoming |
mMEV | Midas / MEV Capital | MEV arbitrage strategy | — | No | Upcoming |
mBTC | Midas | BTC-denominated structured yield | — | No | Upcoming |
¹ Screened — kycRequired is true, but there is no user-facing onboarding flow. Every wallet is automatically screened for sanctions, illicit-actor, and restricted-jurisdiction exposure.
Issuer comparison
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.
| Issuer | Yield-bearing products on RWA Kit | How yield accrues | RWA issuer fees | KYC posture | Status |
|---|---|---|---|---|---|
| Midas | mTBILL, mGLO, mGLOBAL, mF-ONE, mBASIS, mEDGE, and others | On-chain share-price growth | mTBILL: 0.07% instant redemption fee; 10% perf fee on interest. Others: per-product perf fee | Varies per product | mTBILL, mGLO live; others coming soon |
| Superstate | USTB (T-Bills), USCC (crypto carry) | On-chain share-price growth | USTB: 0.15% mgmt (10 bps rebate above $25M avg.); 100K USDC min. USCC: 0.75% mgmt | true — US Qualified Purchasers only | Live |
| Ondo Finance | OUSG (T-Bills), USDY (yield-bearing note). | Price accrual (OUSG, USDY) | OUSG: 0% mint/redeem; 0.15% mgmt cap, waived until 1 Jul 2026. USDY: 0% mint/redeem on primary | true for OUSG and USDY (on-chain ID registry + compliance) | Live |
| Securitize | ACRED, VBILL, STAC, HLSCOPE; BUIDL coming soon | On-chain share-price growth | BUIDL: 0.50% mgmt (0.20% on Avalanche / Aptos / Polygon); $5M min. ACRED / VBILL: per prospectus | true — issuer DS-Registry whitelist | ACRED, VBILL, STAC, HLSCOPE live; BUIDL coming soon |
| Dinari | USD+ yield-bearing stablecoin (live); fixed-income dShares (coming soon) | Off-chain interest credit | 5% standard distribution fee on yield-paying dShares; USD+: 0% mgmt | USD+: false (permissionless mint); dShares: true | USD+ live; dShares coming soon |
| R25 | APC3M | On-chain share-price growth | 10% performance fee | false — permissionless | Live |
| Franklin Templeton | BENJI, FOBXX (US Government money-market fund) | On-chain share-price growth | 0.20% net / 0.22% gross expense ratio; 0% mint/redeem fee; daily redemption | true — issuer hosted flow | Coming soon |
| Spiko | EUTBL | On-chain share-price growth | 0.23% management fees | true — issuer hosted flow | Coming soon |
How yield accrues
Each RWA token accrues yield through its own native mechanism. Partners don't need to branch on this — value always shows up in the position balance and live APY — but the mechanism matters for NAV cadence, reporting, and reconciliation.
| Mechanism | What it means at the token level | Live examples |
|---|---|---|
| Oracle price accrual | Token balance is static; redemption value per token grows, read from an on-chain oracle | OUSG, USDY, mTBILL, mGLO |
| NAV / share-price growth | A fund share whose net asset value grows; the holder's share is worth more | USTB, USCC, ACRED, VBILL, STAC, HLSCOPE, Nest vaults |
| Off-chain interest credit | Yield is credited off-chain and reflected in the token's value and live APY | USD+ |
| On-chain rebase | The held token's balance grows over time | rUSDY (Upcoming) |
KYC model
Every yield carries its access requirements under mechanics.requirements:
kycRequired: false— permissionless. The user can deposit immediately. (USD+,mTBILL)kycRequired: truewith issuer onboarding — the wallet must be on the issuer's allowlist before the deposit transaction will build.actions/enterreturns412 Precondition Failedwith the issuer'sauthorizeUrl; the user completes the issuer's hosted KYC there, and the call succeeds once the wallet is allowlisted. (Superstate, Ondo, Securitize, MidasmGLO)kycRequired: truewith automatic screening — no onboarding flow exists; wallets are screened automatically at the compliance layer and non-compliant wallets are rejected before any transaction is built. (Nest)
A wallet's normalized status for any yield can be polled at any time:
GET https://api.yield.xyz/v1/yields/{yieldId}/kyc/status?address=0xUserWallet{
"kycStatus": "not_started", // not_required | not_started | pending | approved | rejected
"authorizeUrl": "https://..." // present when the wallet still needs to verify
}Yields without a KYC requirement return { "kycStatus": "not_required" }. On-chain reads distinguish approved / not_started / rejected; pending lives in the issuer's off-chain provider and isn't always readable on-chain.
The integration model
Every RWA Kit position follows the same three-phase model regardless of KYC posture or settlement style — identical to the existing Yield API lifecycle:
- Discover —
GET /v1/yields(RWA Kit yields appear inline with DeFi yields). - Enter —
POST /v1/actions/enterreturns ordered, unsigned transactions to sign client-side and broadcast. - Exit —
POST /v1/actions/exitreturns the redemption transaction(s); asynchronous redemptions surface on the balance asunstakingwith anexpectedSettlementAtuntil they settle.
For KYC-gated instruments, a 412 Precondition Failed from actions/enter carries the issuer's authorizeUrl — the user completes verification there and the call is retried once the wallet is allowlisted.
After broadcasting a signed transaction, report the hash back for indexing:
PUT https://api.yield.xyz/v1/transactions/{transactionId}/submit-hash
{ "hash": "0xBroadcastedTxHash" }Identifying RWA instruments
GET https://api.yield.xyz/v1/yields
?type=real-world-asset
&provider=midas,superstate,ondo,securitize,dinari,nestSupported query params include type / types, network / networks, chainId, provider / providers, token, inputToken / inputTokens, search, sort, hasCooldownPeriod, hasWarmupPeriod. The RWA yield type is real_world_asset. KYC posture and eligibility are read off each yield's metadata block (below), not passed as query filters.
Yield metadata schema
RWA yields use the standard yield schema. Access requirements live under mechanics.requirements:
{
"id": "ethereum-usdc-superstate-ustb-vault",
"name": "Invesco Short Duration US Government Securities Fund",
"token": { "symbol": "USDC", "network": "ethereum" },
"rewardTokens": [{ "symbol": "USTB" }],
"mechanics": {
"type": "real-world-asset",
"cooldownPeriod": { "days": 1 },
"requirements": {
"kycRequired": true,
"kyc": {
"kycMode": "external_redirect",
"iframeAllowed": false,
"authorizeUrl": "https://superstate.com/register",
"eligibility": {
"defaultPolicy": "deny",
"countries": ["US", "..."],
"blockedCountries": [],
"blockedSubdivisions": [],
"usPersonAllowed": true,
"investorEligibility": [
{
"jurisdiction": "US",
"tier": "us_qualified_purchaser",
"verificationLevel": "third_party_attestation"
}
],
"subjectTypes": ["KYC", "KYB"]
}
}
}
}
}| Field | Purpose |
|---|---|
mechanics.requirements.kycRequired | true if the wallet must clear the issuer's compliance gate before depositing. |
mechanics.requirements.kyc.kycMode | How the verification UI hands off: none / oauth_redirect / external_redirect / iframe / deeplink / native_sdk. Live gated yields use external_redirect. |
mechanics.requirements.kyc.authorizeUrl | The issuer's hosted KYC page. |
mechanics.requirements.kyc.eligibility | Advisory jurisdiction and investor-tier criteria for rendering the right UI. The issuer's compliance gate is the authoritative check at enter/exit time. |
Integration walkthrough — Ondo OUSG (KYC-gated)
POST https://api.yield.xyz/v1/actions/enter
Content-Type: application/json
{
"yieldId": "ethereum-usdc-ondo-ousg-vault",
"address": "0xUserWallet",
"arguments": { "amount": "10000" }
}If the wallet isn't yet allowlisted you'll receive a 412 (rendered from RwaKycError):
{
"statusCode": 412,
"timestamp": "2026-06-10T12:34:56.789Z",
"path": "/v1/actions/enter",
"message": "Address 0xUserWallet is not allowlisted for Ondo. Complete KYC at https://app.ondo.finance/signin",
"details": {
"address": "0xUserWallet",
"protocol": "Ondo",
"authorizeUrl": "https://app.ondo.finance/signin"
}
}The details keys are address, protocol, authorizeUrl. Hand the user off to authorizeUrl; once the wallet is allowlisted, actions/enter succeeds and you proceed exactly as in the permissionless case.
try {
await yieldxyz.actions.enter({ yieldId, address, arguments: { amount } });
} catch (err) {
if (err.statusCode === 412) {
window.location = err.details.authorizeUrl; // issuer KYC portal, then retry
}
}Partners whose existing KYC the issuer accepts under reliance can skip the hosted flow — request a direct whitelist via the Yield.xyz team and the wallet is allowlisted without ever seeing a 412. See KYC model.
Integration walkthrough — Dinari USD+ (permissionless)
USD+ is a yield-bearing stablecoin the user holds directly — there is no intermediary share. Enter converts USDC → USD+; exit converts USD+ → USDC through an async redemption queue.
POST https://api.yield.xyz/v1/actions/enter
Content-Type: application/json
{
"yieldId": "ethereum-usdc-dinari-usd-plus-vault",
"address": "0xUserWallet",
"arguments": { "amount": "1000" }
}Mechanically (ethereum, base, arbitrum):
- Enter (USDC → USD+): an
APPROVAL(USDC → minter) followed by aSTAKEcallingminter.deposit(USDC, amount, receiver). - Exit (USD+ → USDC): an
APPROVAL(USD+ → redeemer) followed by anUNSTAKEcallingredeemer.requestRedeem(USDC, amount, receiver, owner). This queues a redemption ticket settled by Dinari's operator in 0–3 days (cooldownPeriod: 3d); it surfaces asunstakingwith anexpectedSettlementAtuntil it settles. - Balance: the held USD+ via
balanceOf. APY is live from Dinari's API.
The yield accrues off-chain and is reflected in the position; the user holds USD+ directly and never sees issuer accounts or coupon-claim flows.
Position lifecycle & balance states
Balances use the BalanceTypes enum:
| State | Meaning |
|---|---|
available | Idle wallet balance available to deposit |
staked | Position active; the held token is accruing yield |
preparing | Deposit / position not yet confirmed |
unstaking | Exit queued; the issuer is settling the (often off-chain) redemption (carries expectedSettlementAt) |
unstaked | Redemption settled; principal returned |
rewards | Rewards / profits available |
locked / unlocking | Subject to a lockup, and being released |
Async exits
RWA exits are rarely atomic — settlement cadences range from 24/7 instant (Ondo OUSG) to T+1 NAV strikes (Superstate), 0–3 day operator settlement (Dinari USD+), 40–50 day primary lockups (Ondo USDY), and monthly liquidity windows (Apollo ACRED). actions/exit returns the redemption transaction(s); while the issuer is still settling, the pending amount appears as unstaking with an expectedSettlementAt. Once settled it flips to unstaked / becomes withdrawable, and the user completes the claim with a follow-on actions/exit (or actions/manage where claim is modeled separately).
Note, certain yields including mTBILL offer both instant and standard redemptions allowing users to select the preferred route.
Monetization — fee wrapper (rolling out)
Status: rolling outRWA Kit today is the direct, non-custodial flow described above, with no Yield.xyz fee layer on RWA positions. The fee-wrapper infrastructure (deposit / management / performance fees, fee collection & distribution, cross-chain share routing) is being built and audited, and will be enabled per project through a request-and-approval process.
The monetization layer is an optional fee wrapper that partners can route deposits through to add a programmable fee layer, configured per project in the dashboard. Three optional wrapper-level fees stack on top of the issuer's own fee schedule:
| Fee | When charged | How |
|---|---|---|
| Deposit fee | On deposit() / mint() | Charged in the deposited asset before wrapper shares are issued |
| Management fee | Continuously on assets-under-management | Deducted from price-per-share (streamed accrual) |
| Performance fee | On yield earned | High-watermark accounting; deducted at the next checkpoint |
Beyond wrapper fees, partners also capture protocol / curator revenue share and, where the issuer supports it, partner fee passthrough. The Yield.xyz platform fee (a share of partner-configured fees and rev-share, scaling down with volume) applies once monetization is enabled.
Updated 24 days ago

