{
  "object": "jepeta_methodology",
  "schemaVersion": "1.0.0",
  "name": "Jepeta Risk Guard",
  "description": "Base token risk scanner and machine-readable risk API",
  "canonicalUrl": "https://jepeta.dev/methodology.json",
  "serviceCanonicalUrl": "https://jepeta.dev/",
  "lastUpdated": "2026-09-24",
  "supportedChain": {
    "name": "Base",
    "chainId": 8453,
    "tokenStandard": "ERC-20"
  },
  "checks": [
    {
      "id": "honeypot",
      "source": "GoPlus Security",
      "publicField": "is_honeypot",
      "failureSemantics": "Unknown required value returns HTTP 422; it is never coerced to false."
    },
    {
      "id": "mintability",
      "source": "GoPlus Security",
      "publicField": "is_mintable",
      "failureSemantics": "Unknown required value returns HTTP 422; it is never coerced to false."
    },
    {
      "id": "taxes",
      "source": "GoPlus Security",
      "publicFields": [
        "buy_tax_percent",
        "sell_tax_percent"
      ],
      "failureSemantics": "Unavailable values remain null."
    },
    {
      "id": "holder_concentration",
      "source": "GoPlus Security",
      "publicFields": [
        "top10_holder_concentration_percent",
        "top10_holder_count"
      ],
      "scope": "Observed up-to-10 holder records, not a full holder-distribution audit."
    },
    {
      "id": "lp_lock",
      "source": "GoPlus Security",
      "publicFields": [
        "lp_locked_percent_observed",
        "lp_holder_sample_count"
      ],
      "scope": "Observed LP-holder sample coverage, not proof that all liquidity is locked."
    },
    {
      "id": "liquidity",
      "source": "DEX Screener",
      "publicField": "liquidity_usd",
      "scope": "Largest exact matching Base pair returned by the source; unavailable context remains null."
    },
    {
      "id": "data_quality",
      "source": "Jepeta policy",
      "publicFields": [
        "data_quality",
        "source_status",
        "warnings"
      ],
      "scope": "Evidence completeness is kept separate from risk."
    }
  ],
  "decisions": {
    "PASS": "No configured BLOCK or WARN condition was observed in the available data. PASS is not a safety guarantee.",
    "WARN": "One or more material risk or source-quality conditions require review.",
    "BLOCK": "A configured hard blocker was observed."
  },
  "freeVsPaid": {
    "free": "Public GET exact-token preview plus public discovery risk feed.",
    "paid": "Full evidence report through Virtuals ACP v2 / token_risk_scan.",
    "priceUSDC": "0.03"
  },
  "endpoints": {
    "canonical": "https://jepeta.dev/",
    "previewApi": "https://aitgmgfumsdqecmanrab.supabase.co/functions/v1/jepeta-risk-scan",
    "riskFeed": "https://aitgmgfumsdqecmanrab.supabase.co/functions/v1/jepeta-risk-feed",
    "openapi": "https://jepeta.dev/openapi.json",
    "agentManifest": "https://jepeta.dev/agent.json",
    "llms": "https://jepeta.dev/llms.txt",
    "llmsFull": "https://jepeta.dev/llms-full.txt",
    "methodology": "https://jepeta.dev/methodology.json",
    "changelog": "https://jepeta.dev/changelog.json",
    "apiDocs": "https://jepeta.dev/docs.html",
    "tokenRiskApiGuide": "https://jepeta.dev/token-risk-api.html",
    "riskMonitor": "https://jepeta.dev/base-token-risk-monitor.html",
    "sampleFullReport": "https://jepeta.dev/sample-full-report.json",
    "paidAcp": "https://app.virtuals.io/acp/agent/01a0b446-374c-7eb8-8fe8-cd1a9945ea70",
    "riskEvidence": "https://aitgmgfumsdqecmanrab.supabase.co/functions/v1/jepeta-risk-evidence",
    "riskEvidenceCatalog": "https://jepeta.dev/risk/base/",
    "questionGuides": "https://jepeta.dev/guides/",
    "questionGuideCatalog": "https://jepeta.dev/guides/index.json"
  },
  "exampleRequest": "GET https://aitgmgfumsdqecmanrab.supabase.co/functions/v1/jepeta-risk-scan?tokenAddress=0x532f27101965dd16442e59d40670faf5ebb142e4",
  "exampleResponse": {
    "note": "Illustrative response shape only; values are not live token data.",
    "body": {
      "schema_version": "4.0.0",
      "chain_id": 8453,
      "token_address": "0x532f27101965dd16442e59d40670faf5ebb142e4",
      "decision": "PASS",
      "risk_score": 0,
      "risk_level": "LOW",
      "is_honeypot": false,
      "is_mintable": false,
      "buy_tax_percent": null,
      "sell_tax_percent": null,
      "top10_holder_concentration_percent": null,
      "top10_holder_count": 0,
      "lp_locked_percent_observed": null,
      "lp_holder_sample_count": 0,
      "liquidity_usd": null,
      "data_quality": "LOW",
      "source_status": {
        "goplus": "OK",
        "dexscreener": "UNAVAILABLE"
      },
      "warnings": [
        "Illustrative response shape only."
      ],
      "observed_at": "2026-09-24T00:00:00Z",
      "paid_report": {
        "protocol": "Virtuals ACP v2",
        "offering": "Token Risk Scan",
        "priceUSDC": "0.03",
        "providerWallet": "0xefcb0359e2cd6d1ad92cbca1e41c8946b308d7df"
      }
    }
  },
  "limitations": [
    "Screening only; not a smart-contract audit, safety guarantee, price prediction, or investment recommendation.",
    "Only Base ERC-20 contracts on chain 8453 are supported.",
    "GoPlus is required for strict honeypot and mintability evidence; unknown required values fail closed with HTTP 422.",
    "DEX Screener market context can be partial, rate-limited, or unavailable; missing values are not converted to zero.",
    "The public risk feed contains published discovery signals only and is not a census of Base or all Jepeta scans."
  ],
  "publicEvidencePolicy": {
    "schemaVersion": "1.0.0",
    "canonicalPattern": "https://jepeta.dev/risk/base/0xTOKEN/",
    "eligibility": [
      "existing published Telegram/Farcaster risk signal",
      "HIGH or MEDIUM public data quality",
      "explicit honeypot and mintability booleans",
      "at least two non-null public evidence dimensions"
    ],
    "allScansIndexed": false,
    "paidEvidenceIncluded": false
  },
  "answerPagePolicy": {
    "schemaVersion": "1.0.0",
    "count": 20,
    "language": "en",
    "directAnswerFirst": true,
    "evidenceGrounded": true,
    "freshScanForCurrentExecution": true,
    "thinContentGuard": "Unique authored answer and sections per question; no keyword-substitution pages.",
    "comparisonGuard": "Describe documented scope and limitations without declaring a winner.",
    "structuredData": [
      "WebPage",
      "Article",
      "BreadcrumbList"
    ],
    "excludedStructuredData": [
      "FAQPage",
      "QAPage"
    ]
  }
}
