{"uid":"cap_EEuQiv2_uMI7uMpm3fYok","slug":"risk-graph-gx7v4-ondigitalocean-app-1de2359c","name":"Risk Graph Node Properties & Risk Grade Lookup","description":"Single node — properties + risk grade only (no neighborhood)","url":"https://risk-graph-gx7v4.ondigitalocean.app/api/v1/agent/node/pool%3Aethereum%3A0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e","method":"GET","headers":{},"bodySchema":{"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}}}}}}},"responseSchema":null,"example":{"request":{"input":{"type":"http","method":"GET","queryParams":{"nodeId":"pool:ethereum:0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e"}}},"response":{"data":{"id":"pool:ethereum:0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e","labels":["Pool"],"properties":{"id":"pool:ethereum:0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e","lltv":0.86,"name":"Morpho PT-RLP-9APR2026/USDC","tvlUsd":"1036958.6324148006","network":"ethereum","poolType":"lending","protocol":"morpho-blue","_riskTier":"C","borrowUsd":"1036958.6324148006","supplyUsd":"1036958.6324148006","tranching":"direct","uniqueKey":"0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e","oracleType":"single_feed","isLeveraged":false,"riskBreakdown":[{"answer":"No, less than 2x","question":"Is yield generated through excessive leverage (>2x)?"},{"answer":"No","question":"Is the pool undercollateralized?"},{"answer":"Buffer 5-20% (LLTV 80-95%)","question":"What is the LLTV buffer (1 - LLTV)?"},{"answer":"Direct asset exposure","question":"Is the position tranched?"},{"answer":"Oracle with single feed or hardcoded","question":"What oracle type does the market use?"}]}},"message":"SUCCESS","statusCode":200}},"exampleRequest":{"nodeId":"pool:ethereum:0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e"},"tags":["x402"],"displayCostAmount":"0.05","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.05/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_niJ0WWaRyr5jyGZZz5WoG","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.05","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Retrieves a single DeFi graph node's properties and risk grade tier (A–F) given a node ID, without traversing its neighborhood","exampleAgentPrompt":"What's the risk grade and properties for the Ethereum pool node pool:ethereum:0x1cfdc0154ae6b9f1887a8250f2582d55606e1a2008e65108fb83dd50a928593e in the DeFi risk graph?","exampleUseCases":[{"title":"Quick pool risk tier check","prompt":"Hey, can you look up the risk grade for the Aave USDC liquidity pool on Ethereum? The node ID is pool:ethereum:0x5aa3951d8d4f944dbaec2f8b5b80a5c3a8f3b7c2 — I just need its risk tier and basic properties, nothing fancy."},{"title":"Verify DeFi protocol node label","prompt":"I have a node ID for a DeFi protocol — protocol:ethereum:0x7d2768dE32b0b80b7a3454c06BdAc94A69DDc7A9 — can you pull its Neo4j labels and properties from the risk graph so I can confirm what type of node it is and what risk tier it's been assigned?"},{"title":"Pre-trade pool safety check","prompt":"Before I add liquidity to this pool, can you check the risk classification for pool:ethereum:0xb4e16d0168e52d35cacd2c6185b44281ec28c9dc in the DeFi risk graph? Just need the A–F grade and whatever metadata is attached to it."}],"resultDescription":"Returns the node's stable identifier, its Neo4j PascalCase labels (e.g. Pool, Asset, Protocol, Chain), and a property bag that includes the risk tier as `_riskTier` (A–F letter grade). Does not include neighbor nodes or edges — properties of the single node only.","failureModes":["Node ID not found — returns 404 or empty result","Malformed nodeId path parameter — returns 400 bad request","Payment not provided or insufficient — returns 402 Payment Required","Network timeout to DigitalOcean-hosted graph backend"],"whenToPreferThis":"Use this endpoint when you already know the node ID (e.g. pool:ethereum:0x...) and need only that single node's properties and risk tier quickly, without the overhead of recursive scoring or neighborhood traversal. Prefer the full recursive score endpoint when you need component scores or composite risk breakdowns, and prefer the search/discovery endpoint when you only have an asset address or protocol name.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:30:14.464Z","isFirstParty":false}