Skip to main content
Two queries cover vault discovery: list_earn_vaults returns the market of wrappable vaults for an asset, and list_earn_enabled_vaults returns the wrappers your organization has already deployed. Full request/response schemas and cURL examples are in the API reference.
Earn is in early access. Contact us to enable it for your organization.

Discover vaults with list_earn_vaults

list_earn_vaults takes a required CAIP-19 asset identifier (e.g. eip155:8453/erc20:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 for USDC on Base) and returns every wrappable vault for that asset. The chain is derived from the identifier, and you can optionally filter by provider. Reading the results:
  • The catalog is sorted by TVL in USD, descending, and only includes vaults with at least $100k TVL.
  • tvl is in raw on-chain units of the underlying asset; apyPct is a decimal fraction ("0.0812" = 8.12% gross APY, before fees).
  • display values are formatted strings for presentation only. Don’t do arithmetic with them.
  • enabled: true means your organization already has a wrapper deployed for the vault.
  • name and curator carry the provider’s human-readable vault name and curator(s), for building vault pickers.

Paging through the catalog

Results are cursor-paginated via paginationOptions (limit defaults to 10, max 100). Each response includes a pageInfo block:
  • hasNextPage / hasPreviousPage tell you whether more results exist in either direction.
  • Pass pageInfo.endCursor as the next request’s after cursor (or startCursor as before) to keep paging.
  • Cursors are opaque and versioned; don’t construct or parse them by hand. They encode the vault’s position in the TVL ranking, so scans resume deterministically even as live TVL shifts between requests.

List your enabled vaults

list_earn_enabled_vaults is the management view of every wrapper your organization has deployed, with on-chain totals and the fee breakdown. Optional filters narrow by provider or CAIP-19 asset. Key fields:
  • wrapperAddress is the deposit target to pass to earn_deposit; vaultAddress is the underlying vault it wraps.
  • apyPct is the gross APY; netApyPct is what depositors earn after both performance fees: netApy = grossApy × (1 - totalFeeBps / 10000).
  • clientFeeBps is your performance fee for the wrapper, and totalDeposited is the wrapper’s TVL in raw units of the underlying asset.
  • depositsDisabled: true means deposits to the wrapper are currently paused via earn_set_wrapper_state; withdrawals are unaffected.
  • claimableClientFee is your accrued performance fee that is releasable right now, claimable with claim_earn_fees. It is only returned when the parent organization queries; sub-organizations don’t see it.

Providers

Morpho vaults are available today. Aave support is upcoming; the API shape is identical, so no integration changes will be needed. See the chain support table.

Next steps