Explain score
explain_scoreAgent-readable explanation of why an opportunity received its risk-adjusted score.
Chain: pass list_yields opportunities[].id as poolId, opportunityId, or id (aliases for the same key).
Returns a summary paragraph, factor bullets with weighted contributions, net-yield notes, and an exitRisk heuristic line (liquidity-only — not on-chain withdraw or transfer/eligibility; medium often confidence-driven, not pool size; extra bullet when knownIssues note transfer restrictions). sourceChainKey is ethereum|base|arbitrum only (unknown → VALIDATION_ERROR; no invented bridge fee). Prefer this when you need to justify a ranking to a human or another agent.
Research only — non-custodial.
Example: { "opportunityId": "43641cf5-a92e-416b-bce9-27113d3c0db6", "horizonDays": 30 } Also accepts poolId or id 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. |