Skip to main content
Every yield opportunity is one YieldDto, returned by GET /v1/yields/{yieldId} (or in the list from GET /v1/yields). It carries everything you need to render the opportunity, 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: APR or APY. APR is the simple annualized rate; APY compounds it. For most yields the type follows the mechanics: vault, lending, and real-world-asset yields report APY; other types report APY when rewards compound automatically and APR when they need a manual claim. Read rateType rather than assuming it
  • components[]: the breakdown behind total, each with its own rate, rateType, token, yieldSource, and an optional description
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[] lists top-level provider risk grades by source (credora, stakingRewards) when available. It’s a summary; the full report comes from GET /v1/yields/{yieldId}/risk.

Mechanics

mechanics is the operational contract: what the yield requires and how it behaves.

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:
  • investmentSchedule: present on fund-style RWA yields. Defines subscription and redemption windows, cadence, settlement, and accrual timing per side, layered on top of cooldownPeriod and status
  • executionContracts: the on-chain contract addresses transactions for this yield may target (tx.to), used by custody providers that whitelist execution destinations

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.