# risk.yo.xyz DeFi Node Risk Grade Lookup

> risk.yo.xyz DeFi Node Risk Grade Lookup is a paid API for AI agents from risk.yo.xyz, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-13).

Fetches properties and risk grade (tier A–F) for a single DeFi node (pool, asset, protocol, or chain) by its node ID

## Facts

- Endpoint: GET https://risk.yo.xyz/api/v1/agent/node/pool%3Aarbitrum%3A0x41ca7586cc1311807b4605fbb748a3b8862b42b5
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/risk-yo-xyz-defi-node-risk-grade-lookup-d816866a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_UzBy8-DC_QKXNRNCjEHFs

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability risk-yo-xyz-defi-node-risk-grade-lookup-d816866a
```

Example prompt: What's the risk grade for the Arbitrum pool at address 0x41ca7586cc1311807b4605fbb748a3b8862b42b5? I want to see its risk tier, TVL, and a breakdown of what factors drove the grade.

## When to prefer this

Use this endpoint when you need a fast, single-node risk grade and properties for a known DeFi pool (by its stable nodeId) without needing neighborhood or dependency context. It is cheaper and simpler than the dependencies endpoint. Choose it when you already know the nodeId (discovered via the search endpoint) and just need the A–F risk tier, TVL, and risk explanation for that specific node.

## Known failure modes

- Node ID not found: returns 404 or empty result if the pool address does not exist in the risk graph
- Invalid nodeId format: malformed pool address or path parameter returns 400 or error
- Payment failure: x402 payment not completed, returns 402 Payment Required
- Node data stale or unavailable: properties returned but lastUpdatedAt may indicate outdated assessment
- Network/service downtime: 500 error or timeout if the risk.yo.xyz service is unavailable

## How this service works

Single node — properties + risk grade only (no neighborhood)

## Output

Returns a node object with a stable node ID, PascalCase labels (e.g. Pool, Asset, Protocol, Chain), and a property bag including `_riskTier` (letter grade A–F), `tvlUsd` (total value locked in USD), and `riskBreakdown` (an array of {question, answer} pairs explaining the grade without raw numbers).

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "pathParams": {
   "nodeId": "pool:ethereum:0x1f9840a85d5af5bf1d1762f925bdaddc4201f984"
  },
  "queryParams": {
   "nodeId": "pool:ethereum:0x1f9840a85d5af5bf1d1762f925bdaddc4201f984"
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "pathParams": {
     "type": "object",
     "required": [
      "nodeId"
     ],
     "properties": {
      "nodeId": {
       "type": "string"
      }
     }
    },
    "queryParams": {
     "type": "object",
     "required": [
      "nodeId"
     ],
     "properties": {
      "nodeId": {
       "type": "string",
       "description": "Stable node id from /search — e.g. \"pool:ethereum:0x…\"."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "id",
      "labels",
      "properties"
     ],
     "properties": {
      "id": {
       "type": "string",
       "description": "Stable node identifier — `nodeId` everywhere else in the API."
      },
      "labels": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "description": "PascalCase Neo4j labels (e.g. \"Pool\", \"Asset\", \"Protocol\", \"Chain\")."
      },
      "properties": {
       "type": "object",
       "description": "Per-label property bag — see /agent/schema for the canonical keys. Risk is exposed as `_riskTier` (A–F) only. May also carry `tvlUsd` (canonical $ size), `riskBreakdown` (on /node — an array of {question, answer} explaining the grade, no numbers), and `lastUpdatedAt` (on /dependencies — ISO-8601 freshness).",
       "additionalProperties": true
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/risk-yo-xyz-defi-node-risk-grade-lookup-d816866a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from risk.yo.xyz](https://www.zero.xyz/host/risk.yo.xyz/llms.txt)
