# RugGuard /v1/explain — Smart Contract Rug Risk Explanation

> RugGuard /v1/explain — Smart Contract Rug Risk Explanation is a paid API for AI agents from rugguard.redfleet.fr, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-12).

Returns a human-readable rug risk explanation, score, flags, and verdict for a previously scanned smart contract, given a scan_id from /v1/scan.

## Facts

- Endpoint: GET https://rugguard.redfleet.fr/v1/explain?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/rugguard-v1-explain-smart-contract-rug-risk-explanation-e8b10a6d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_kRDVaSOVZimlppN2sYNjd

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 rugguard-v1-explain-smart-contract-rug-risk-explanation-e8b10a6d
```

Example prompt: I just scanned contract 0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed and got scan_id '01J9-aaaa-bbbb-cccc-dddddddddddd' — can you pull the RugGuard explanation and tell me whether it flagged anything critical like unlocked liquidity or active mint authority?

## When to prefer this

Use this endpoint after calling /v1/scan to obtain a detailed, human-interpretable explanation of rug risk for a smart contract. Prefer this over /v1/scan when you already have a scan_id and want the full breakdown of flags, heuristics, and scoring rationale rather than triggering a fresh scan. Ideal for AI agents that need to present risk reasoning to a user or make a pre-trade safety decision based on heuristic evidence.

## Known failure modes

- scan_id not found or expired — returns 404 or error indicating the scan does not exist
- malformed UUID for scan_id — returns 400 validation error
- scan still processing — may return incomplete or pending state
- service unavailable — returns 5xx if backend is down
- payment not completed — returns 402 if x402 payment was not processed correctly

## How this service works

Pay-per-call rug check for crypto smart contracts. Built for AI agents on Agentic.market (x402). USDC fractional pricing, no API key.

## Output

Returns a JSON object with the numeric risk score (0-100), a verdict string (e.g. 'low_risk'), an array of flags each with a stable code (e.g. 'LP_NOT_LOCKED') and severity (low/medium/high/critical), a list of heuristics evaluated with weight, outcome, and evidence, the chain and contract address, scanned_at timestamp, score confidence, and a disclaimer about best-effort heuristic scoring.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "scan_id"
 ],
 "properties": {
  "scan_id": {
   "type": "string",
   "description": "UUID returned by a previous /v1/scan call."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "ExplainResponse",
 "examples": [
  {
   "value": {
    "chain": "base",
    "flags": [
     {
      "code": "OWNER_NOT_RENOUNCED",
      "severity": "high"
     },
     {
      "code": "LP_NOT_LOCKED",
      "severity": "critical"
     },
     {
      "code": "MINT_AUTHORITY_ACTIVE",
      "severity": "critical"
     }
    ],
    "score": 32,
    "scan_id": "01J9-aaaa-bbbb-cccc-dddddddddddd",
    "verdict": "low_risk",
    "contract": "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed",
    "endpoint": "/v1/scan",
    "disclaimer": "RugGuard is a data analytics tool, not a security guarantee. Best-effort heuristic scoring. See /security.html.",
    "elapsed_ms": 18575,
    "scanned_at": "2026-04-28T12:00:00Z",
    "score_confidence": "medium",
    "score_calculation": "weighted_sum_normalized_0_100",
    "heuristics_evaluated": [
     {
      "code": "OWNER_NOT_RENOUNCED",
      "weight": 15,
      "outcome": "fail",
      "evidence": {
       "owner": "0x704Ec5C12Ca20a293C2C0B72B22619A4231f3c0d",
       "is_zero_or_dead": false
      },
      "severity": "high"
     },
     {
      "code": "LP_NOT_LOCKED",
      "weight": 25,
      "outcome": "fail",
      "evidence": {
       "best_burnt_pct": 0,
       "pool_addresses": [
        "0xdc7a26f2d05e6f0b62e21e11ce8a9b6dc0c0e7f4"
       ],
       "lockers_detected": []
      },
      "severity": "critical"
     },
     {
      "code": "TOP10_CONCENTRATION_HIGH",
      "weight": 20,
      "outcome": "pass",
      "evidence": {
       "top10_pct": 22.1
      },
      "severity": "high"
     },
     {
      "code": "HONEYPOT_DETECTED",
      "weight": 30,
      "outcome": "skip",
      "evidence": {
       "reason": "goplus_returned_no_honeypot_signal"
      },
      "severity": "critical"
     }
    ]
   },
   "summary": "low_risk explain — full per-heuristic audit trail",
   "description": "Audit trail of a `low_risk` scan. Each entry shows the heuristic code, the weight that contributed to the score, the outcome (pass/fail/skip), and the structured evidence returned by the heuristic at scan time. Use this for compliance, post-mortems, or surfacing a user-visible explanation."
  },
  {
   "value": {
    "chain": "base",
    "flags": [
     {
      "code": "OWNER_NOT_RENOUNCED",
      "severity": "high"
     }
    ],
    "score": 100,
    "scan_id": "0a1b2c3d-4444-4abc-8def-555566667777",
    "verdict": "uncertain",
    "contract": "0x9999999999999999999999999999999999999999",
    "endp
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/rugguard-v1-explain-smart-contract-rug-risk-explanation-e8b10a6d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from rugguard.redfleet.fr](https://www.zero.xyz/host/rugguard.redfleet.fr/llms.txt)
