Skip to content
Back to yieldhunter

Card snapshot

yieldhunter-agent-production.up.railway.app · 2026-08-23 02:28:48 UTC · cb252b98160caf9db579264aad4727550c0a607f64a304422f734b4f19b2cbfc

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "yieldhunter",
  "description": "Risk-adjusted stablecoin yield intelligence for other agents on Ethereum, Base, and Arbitrum. Research only \u2014 never holds keys or executes transactions. Rank and explain opportunities with multi-factor scoring, not headline APY. Not financial advice. Not RNWY Ethereum agent 12099.",
  "version": "1.0.0",
  "documentationUrl": "https://yieldhunter-agent-production.up.railway.app/discovery/agent-context.md",
  "iconUrl": "https://euc.li/yieldhunter.eth",
  "url": "https://yieldhunter-agent-production.up.railway.app/mcp",
  "supportedInterfaces": [
    {
      "url": "https://yieldhunter-agent-production.up.railway.app/mcp",
      "protocolBinding": "MCP-Streamable-HTTP",
      "protocolVersion": "2025-06-18"
    }
  ],
  "provider": {
    "organization": "yieldhunter.eth",
    "url": "https://yieldhunter-agent-production.up.railway.app"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "health",
      "name": "Health",
      "description": "Liveness and capability check (status, feature flags, data sources). Call first. Research service only.",
      "tags": [
        "health",
        "status",
        "research"
      ],
      "examples": [
        "{}"
      ]
    },
    {
      "id": "list_yields",
      "name": "List yields",
      "description": "Rank stablecoin yield opportunities with a composite risk-adjusted score (not raw APY). Call after health. Research estimates only.",
      "tags": [
        "yields",
        "stablecoin",
        "risk-adjusted",
        "research"
      ],
      "examples": [
        "{\n  \"assets\": [\"USDC\"],\n  \"sortBy\": \"risk_adjusted\"\n}",
        "After list_yields, contrast row #1 (risk-adjusted winner) with row #2 (often higher rate, thinner liquidity, or other chain). Do not pick the max-APY row in the ten as the contrast. Live protocol/chain names move \u2014 any named pair is a snapshot, not the spec."
      ]
    },
    {
      "id": "score_opportunity",
      "name": "Score opportunity",
      "description": "Full multi-factor risk-adjusted score for one opportunity from list_yields. Research only.",
      "tags": [
        "score",
        "yields",
        "research"
      ]
    },
    {
      "id": "compare_opportunities",
      "name": "Compare opportunities",
      "description": "Side-by-side comparison of 2\u20135 opportunities by risk-adjusted score. Research only.",
      "tags": [
        "compare",
        "yields",
        "research"
      ]
    },
    {
      "id": "explain_score",
      "name": "Explain score",
      "description": "Explain why an opportunity received its risk-adjusted score (factors, yield mix, caveats). Research only.",
      "tags": [
        "explain",
        "score",
        "research"
      ]
    },
    {
      "id": "get_protocol_risk",
      "name": "Protocol risk",
      "description": "Protocol-level risk card (age, audit signals, curated known issues). Higher score = lower protocol risk. Research only.",
      "tags": [
        "protocol",
        "risk",
        "research"
      ]
    }
  ],
  "notes": "Discovery card only. Connect via MCP Streamable HTTP at /mcp. A2A message/send is not implemented. Copy-paste path: health {} then list_yields {\"assets\":[\"USDC\"],\"sortBy\":\"risk_adjusted\"}. Contrast #1 vs #2, not max APY."
}