Skip to main content

POST /v1/yield/discover

Discover and rank yield vaults. Returns scored vault candidates with APY, risk, TVL, and Sharpe data. Use this endpoint to browse available vaults before committing to a deposit. Pass the returned vaultId to POST /v1/yield/prepare to deposit into a specific vault.

Parameters

chain
string
Target chain key. Must be active in configuration.Default: "base"
asset
string
Filter by underlying asset symbol (e.g. "USDC", "WETH"). Omit for all assets.
strategy
enum
Scoring strategy that determines vault ranking weights.Allowed values: maximize_apy, minimize_risk, balancedDefault: "balanced"
riskTolerance
enum
Filter vaults by risk level. "low" excludes moderate/high risk vaults.Allowed values: low, medium, high
minApy
number
Minimum current APY filter (e.g. 10 for 10%).
limit
number
Maximum number of vaults to return (1-20).Default: 5

Example

curl -X POST https://api.rhaios.com/v1/yield/discover \
  -H "Content-Type: application/json" \
  -d '{
    "chain": "base",
    "asset": "USDC",
    "strategy": "balanced",
    "minApy": 10,
    "limit": 3
  }'

Response

{
  "chain": "base",
  "chainId": 8453,
  "strategy": "balanced",
  "count": 3,
  "vaults": [
    {
      "vaultId": "42",
      "vaultAddress": "0x1234...abcd",
      "name": "Aave V3 USDC",
      "protocol": "aave",
      "asset": "USDC",
      "chain": "base",
      "apy": { "now": 11.8, "week": 11.2, "month": 10.5 },
      "risk": { "score": 0.15, "level": "low", "rating": "A" },
      "sharpe": { "week": 2.1, "month": 1.8 },
      "tvlUsd": 45000000,
      "tier": "S",
      "compositeScore": 87.3
    }
  ]
}

Workflow

  1. Call POST /v1/yield/discover to browse vaults
  2. Pick a vault from the results
  3. Call POST /v1/yield/prepare with the chosen vaultId to prepare execution calldata
  4. Sign and submit via POST /v1/yield/execute