YieldDto, returned by GET /v1/yields/{yieldId} (or in the list from GET /v1/yields). Every yield uses the same format, whatever the protocol. It carries what you need to render the opportunity (the reward rate and its breakdown, TVL, entry limits, cooldowns, and fees), validate input, and drive an action, grouped below by what each group is for. For the exact schema, see the API reference.
Identity
Tokens
Reward rate
rewardRate is the yield’s current estimated return, not its history. It has:
total: the estimated rate across all sources, which can include a campaign component when one applies to your project (see Incentive Campaigns)rateType:APRorAPY. APR is the simple annualized rate; APY compounds it. For most yields the type follows the mechanics: vault, lending, and real-world-asset yields reportAPY; other types reportAPYwhen rewards compound automatically andAPRwhen they need a manual claim. ReadrateTyperather than assuming itcomponents[]: the breakdown behindtotal, each with its ownrate,rateType,token,yieldSource, and an optionaldescription
yieldSource is one of: staking, liquid_staking, restaking, protocol_incentive, campaign_incentive, points, lending, mev, real_world_asset_yield, vault.
For historical APY and TVL, see Rewards and history.
Statistics and risk
statistics is a current snapshot, not a time series: tvlUsd, tvl (in the underlying token), tvlRaw, uniqueUsers, averagePositionSizeUsd, and averagePositionSize. Some fields are null when the yield isn’t ERC-4626 or indexing hasn’t run yet.
risk.ratings[] aggregates the grades published by third-party raters (credora, stakingRewards) and is returned only for the yields those raters cover. It is a summary; the full report comes from GET /v1/yields/{yieldId}/risk, with an updatedAt timestamp and one object per source:
Independent ratings that agree are a stronger signal than one score on its own. Fields are
null when a source has not rated the yield.
Mechanics
mechanics is the operational contract: what the yield requires and how it behaves.
Fee configurations
feeConfigurations[] lists the fee setups live for your project on this yield, when it supports fees. Each entry has:
Only live configurations appear. See Monetization for how they are created.
KYC requirements
Whenmechanics.requirements.kycRequired is true, mechanics.requirements.kyc carries the public criteria you need to render a verification step before the user tries to enter:
eligibility describes jurisdictions and investor types:
defaultPolicy:deny(only listedcountriesmay enter) orallow(anyone except blocked jurisdictions)countries,blockedCountries(ISO 3166-1 alpha-2) andblockedSubdivisions(ISO 3166-2, for exampleUA-43)usPersonAllowed, andgeoBlockingEnforcedwhen the issuer enforces geo-blocking itselfsubjectTypes:KYCfor individuals,KYBfor businesses, or bothinvestorEligibility[]: per jurisdiction (a country code,EEA,GCCor*), the investortierrequired, such asus_accredited,us_qualified_purchaser,eu_professionalorsg_ai, how it must be verified (verificationLevel:self_attested,verified_documentation,letterorthird_party_attestation) and, if needed,expiresAfterDaysfor re-verification
GET /v1/yields/{yieldId}/kyc/status. See RWA KYC.
Argument schemas
mechanics.arguments defines what each action on this yield needs, before you call it: enter and exit are each one ArgumentSchemaDto; manage is a map of one ArgumentSchemaDto per supported action type (CLAIM_REWARDS, CLAIM_UNSTAKED, and others); balance covers extra fields the balances call needs, such as alternative addresses.
Each ArgumentSchemaDto is a list of fields:
name is one of a fixed set of argument names (amount, validatorAddress, duration, and others); type is string, number, address, enum, or boolean; optionsRef points to the endpoint that lists the valid choices, such as a yield’s validators (GET /v1/yields/{yieldId}/validators). Read this schema before calling actions instead of hardcoding fields per protocol.
Status and lifecycle
Live state
state carries dynamic, protocol-level values, present only where they apply to the yield’s type:
Fund schedules and execution contracts
Two fields apply mainly to RWA and custody-constrained integrations:executionContracts: the on-chain contract addresses transactions for this yield may target (tx.to), used by custody providers that whitelist execution destinations.investmentSchedule: present on fund-style RWA yields. It layers subscription and redemption timing on top ofcooldownPeriodandstatus.
investmentSchedule has a timezone, optional notes, and a subscription and a redemption side. Each side lists paths[], the ways to act on it, with paths[0] as the default. A fund can offer an instant path, for example an on-demand redemption pool, next to a standard one. Each path has:
Use the schedule to show users when a subscription or redemption will execute and settle before they confirm.
Next steps
Discover yields
Filter and page through the yields enabled for your project.
Actions
Use the argument schemas to build enter, exit, and manage flows.

