Score opportunity
score_opportunityCompute the full multi-factor risk-adjusted score for a single opportunity from list_yields.
Chain: pass list_yields opportunities[].id as poolId, opportunityId, or id (same DefiLlama pool UUID; id is the canonical list field).
Returns APY breakdown (base/reward/total), factor scores with rationales, net yield after gas/bridge, exitRisk heuristic (TVL vs notional + liq conf only; medium ≠ small pool; not queues/caps/transfer whitelist/eligibility/on-chain withdraw; do not treat low as free exit when knownIssues mention transfer/eligibility), warnings, and sources. sourceChainKey is ethereum|base|arbitrum only — unknown keys (foo, solana) are VALIDATION_ERROR; no invented bridge fee.
Research estimates only — non-custodial.
Example (any one id field): { "id": "43641cf5-a92e-416b-bce9-27113d3c0db6", "horizonDays": 30, "notionalUsd": 10000 } Also accepts poolId or opportunityId with the same value.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Same as list_yields opportunities[].id (canonical response field name). | |
| poolId | No | Alias for list_yields opportunities[].id (historical tool field). Same DefiLlama pool UUID. Example: "43641cf5-a92e-416b-bce9-27113d3c0db6" | |
| horizonDays | No | Holding horizon in days for gas/bridge amortization (default 30). Example: 30 | |
| notionalUsd | No | Notional USD size for net-yield cost amortization and exitRisk TVL multiples (default 10000). Example: 10000 | |
| opportunityId | No | Alias for list_yields opportunities[].id (same pool key as poolId / id). | |
| sourceChainKey | No | Agent's current chain for bridge cost estimate: ethereum | base | arbitrum (aliases: eth, ETH, Ethereum, arb, ARB, BASE). Blank/whitespace is VALIDATION_ERROR (omit the field to default). Unknown keys (solana, foo) return VALIDATION_ERROR — no invented bridge fee. |