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 token

RWA 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

SurfaceBase URLOwns
Yield API (RWA Kit lives here, incl. KYC)https://api.yield.xyz/v1Staking, 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).

TickerIssuerUnderlyingNetworksKYCStatus
mTBILLMidasShort-duration US T-BillsEthereum, BaseNoLive
USTBSuperstate / InvescoShort-duration US government securitiesEthereumYesLive
OUSGOndo FinanceShort-term US government bond fundEthereumYesLive
VBILLSecuritize / VanEckShort-term US TreasuriesEthereumYesLive
nTBILLNest (by Plume)Tokenized US T-Bill yieldEthereumScreened¹Live
BUIDLSecuritize / BlackRockUSD institutional liquidity fundYesUpcoming
BENJIFranklin TempletonUS government money-market fund (FOBXX)YesUpcoming
USFR.dDinari / WisdomTreeFloating-rate Treasury fundYesUpcoming
BOXX.dDinari / Alpha Architect1–3 month box-spread ETFYesUpcoming
TLT.dDinari / BlackRock20+ year Treasury bond ETFYesUpcoming
TMF.dDinari / Direxion3× leveraged 20+ year Treasury ETFYesUpcoming

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.

TickerIssuerUnderlyingNetworksKYCStatus
ACREDSecuritize / ApolloApollo Diversified Credit FundEthereum, Polygon, AvalancheYesLive
STACSecuritizeAAA-rated CLOsEthereumYesLive
HLSCOPESecuritize / Hamilton LaneSenior credit opportunities (private markets)Ethereum, PolygonYesLive
nCREDITNest (by Plume)Tokenized private creditEthereumScreened¹Live
nACRDXNest / ApolloApollo diversified creditEthereumScreened¹Live
nLCRDNest (by Plume)Liquid creditEthereumScreened¹Live
nCLOANest / BlackRockiShares AAA CLO Active ETFEthereumScreened¹Live
nFALCONNest / FalconXFalconX CLOEthereumScreened¹Live
nOPALNest / BlackOpalBlackOpal LiquidStone IIEthereumScreened¹Live
APC3MR25 / AxilPrime credit 3-month vaultPharosNoLive
CLOA.dDinari / BlackRockiShares AAA CLO Active ETFYesUpcoming
FBND.dDinari / FidelityFidelity Total Bond ETFYesUpcoming
USHY.dDinari / BlackRockBroad USD high-yield corporate bond ETFYesUpcoming
HYMB.dDinari / SPDR NuveenHigh-yield municipal bond ETFYesUpcoming
JAAA.dDinari / Janus HendersonAAA CLO ETFYesUpcoming
JBBB.dDinari / Janus HendersonB–BBB CLO ETFYesUpcoming
SRLN.dDinari / SPDR BlackstoneSenior loan ETFYesUpcoming
BXSL.dDinari / BlackstoneBlackstone Secured Lending Fund (BDC)YesUpcoming
MSDL.dDinari / Morgan StanleyDirect Lending Fund (BDC)YesUpcoming

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).

TickerIssuerUnderlyingNetworksKYCStatus
USD+DinariShort-term US Treasuries + USD reservesEthereum, Base, ArbitrumNoLive
USDYOndo FinanceYield-bearing secured note (US Treasury collateral)EthereumYesLive
rUSDYOndo FinanceRebasing variant of USDYNoUpcoming
YLDSFigure MarketsSEC-registered yield-bearing stablecoinNoUpcoming

EU Treasuries

EUR-denominated short-end government bond exposure.

TickerIssuerUnderlyingNetworksKYCStatus
EUTBLSpikoEurozone T-Bills (EUR-denominated)YesUpcoming

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

TickerIssuerUnderlyingNetworksKYCStatus
USCCSuperstate / BitwiseCrypto basis/carry (long spot, short perps)EthereumYesLive
mGLOMidas / FasanaraFasanara Global Open strategyBase, Robinhood ChainYesLive
nALPHANest (by Plume)Diversified tokenized RWA yieldEthereumScreened¹Live
nBASISNest (by Plume)Tokenized basis tradeEthereumScreened¹Live
nWISDOMNest (by Plume)Tokenized RWA yieldEthereumScreened¹Live
nPERENANest / PerenaPerena yieldEthereumScreened¹Live
mBASISMidasDelta-neutral basis tradeNoUpcoming
mEDGEMidas / Edge CapitalDiversified yield strategiesNoUpcoming
mRE7YIELDMidas / RE7 CapitalStructured yield strategyNoUpcoming
mMEVMidas / MEV CapitalMEV arbitrage strategyNoUpcoming
mBTCMidasBTC-denominated structured yieldNoUpcoming

¹ ScreenedkycRequired 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.

IssuerYield-bearing products on RWA KitHow yield accruesRWA issuer feesKYC postureStatus
MidasmTBILL, mGLO, mGLOBAL, mF-ONE, mBASIS, mEDGE, and othersOn-chain share-price growthmTBILL: 0.07% instant redemption fee; 10% perf fee on interest. Others: per-product perf feeVaries per productmTBILL, mGLO live; others coming soon
SuperstateUSTB (T-Bills), USCC (crypto carry)On-chain share-price growthUSTB: 0.15% mgmt (10 bps rebate above $25M avg.); 100K USDC min. USCC: 0.75% mgmttrueUS Qualified Purchasers onlyLive
Ondo FinanceOUSG (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 primarytrue for OUSG and USDY (on-chain ID registry + compliance)Live
SecuritizeACRED, VBILL, STAC, HLSCOPE; BUIDL coming soonOn-chain share-price growthBUIDL: 0.50% mgmt (0.20% on Avalanche / Aptos / Polygon); $5M min. ACRED / VBILL: per prospectustrue — issuer DS-Registry whitelistACRED, VBILL, STAC, HLSCOPE live; BUIDL coming soon
DinariUSD+ yield-bearing stablecoin (live); fixed-income dShares (coming soon)Off-chain interest credit5% standard distribution fee on yield-paying dShares; USD+: 0% mgmtUSD+: false (permissionless mint); dShares: trueUSD+ live; dShares coming soon
R25APC3MOn-chain share-price growth10% performance feefalse — permissionlessLive
Franklin TempletonBENJI, FOBXX (US Government money-market fund)On-chain share-price growth0.20% net / 0.22% gross expense ratio; 0% mint/redeem fee; daily redemptiontrue — issuer hosted flowComing soon
SpikoEUTBLOn-chain share-price growth0.23% management feestrue — issuer hosted flowComing 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.

MechanismWhat it means at the token levelLive examples
Oracle price accrualToken balance is static; redemption value per token grows, read from an on-chain oracleOUSG, USDY, mTBILL, mGLO
NAV / share-price growthA fund share whose net asset value grows; the holder's share is worth moreUSTB, USCC, ACRED, VBILL, STAC, HLSCOPE, Nest vaults
Off-chain interest creditYield is credited off-chain and reflected in the token's value and live APYUSD+
On-chain rebaseThe held token's balance grows over timerUSDY (Upcoming)

KYC model

Every yield carries its access requirements under mechanics.requirements:

  • kycRequired: false — permissionless. The user can deposit immediately. (USD+, mTBILL)
  • kycRequired: true with issuer onboarding — the wallet must be on the issuer's allowlist before the deposit transaction will build. actions/enter returns 412 Precondition Failed with the issuer's authorizeUrl; the user completes the issuer's hosted KYC there, and the call succeeds once the wallet is allowlisted. (Superstate, Ondo, Securitize, Midas mGLO)
  • kycRequired: true with 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:

  1. DiscoverGET /v1/yields (RWA Kit yields appear inline with DeFi yields).
  2. EnterPOST /v1/actions/enter returns ordered, unsigned transactions to sign client-side and broadcast.
  3. ExitPOST /v1/actions/exit returns the redemption transaction(s); asynchronous redemptions surface on the balance as unstaking with an expectedSettlementAt until 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,nest

Supported 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"]
        }
      }
    }
  }
}
FieldPurpose
mechanics.requirements.kycRequiredtrue if the wallet must clear the issuer's compliance gate before depositing.
mechanics.requirements.kyc.kycModeHow the verification UI hands off: none / oauth_redirect / external_redirect / iframe / deeplink / native_sdk. Live gated yields use external_redirect.
mechanics.requirements.kyc.authorizeUrlThe issuer's hosted KYC page.
mechanics.requirements.kyc.eligibilityAdvisory 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 a STAKE calling minter.deposit(USDC, amount, receiver).
  • Exit (USD+ → USDC): an APPROVAL (USD+ → redeemer) followed by an UNSTAKE calling redeemer.requestRedeem(USDC, amount, receiver, owner). This queues a redemption ticket settled by Dinari's operator in 0–3 days (cooldownPeriod: 3d); it surfaces as unstaking with an expectedSettlementAt until 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:

StateMeaning
availableIdle wallet balance available to deposit
stakedPosition active; the held token is accruing yield
preparingDeposit / position not yet confirmed
unstakingExit queued; the issuer is settling the (often off-chain) redemption (carries expectedSettlementAt)
unstakedRedemption settled; principal returned
rewardsRewards / profits available
locked / unlockingSubject 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 out

RWA 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:

FeeWhen chargedHow
Deposit feeOn deposit() / mint()Charged in the deposited asset before wrapper shares are issued
Management feeContinuously on assets-under-managementDeducted from price-per-share (streamed accrual)
Performance feeOn yield earnedHigh-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.


Did this page help you?