Methodology v2
How Jepeta turns governed observations into normalized evidence, explicit conflicts, deterministic rules and a Jepeta-owned verdict.
Pipeline
Raw Observation -> Normalized Evidence -> Conflict Detection -> Jepeta Rule -> Verdict
Provider output never becomes a Jepeta verdict by itself. Risk Engine v3 evaluates normalized evidence only.
What Jepeta checks
Configured rules cover honeypot behavior, required dangerous-permission blockers, mintability, ownership/control signals, source verification, proxy state, taxes, liquidity, observed LP lock coverage and observed holder concentration. Exact rule semantics are listed below and in methodology.json.
Provider observation, evidence quality and risk are separate
- Provider observation: what a source returned.
- Normalized evidence: provider-neutral signal/value/status/provenance.
- Provider health: source availability, rate-limit and error state.
- Evidence quality: completeness, freshness and usability.
- Risk decision: configured Jepeta rule effects.
- Final verdict: Jepeta PASS/WARN/BLOCK, or NO_VERDICT when fail-closed.
PASS, WARN and BLOCK
PASS means “no configured blocker/warning observed.” It is not a safety guarantee. WARN means at least one configured warning rule matched. BLOCK means at least one configured blocking rule matched. NO_VERDICT means required evidence was unusable or a configured risk-signal conflict was unresolved.
Fail-closed behavior
Provider failure, malformed required signals, stale evidence and unresolved conflicts yield NO_VERDICT. A valid GoPlus response that omits only cannot_sell_all retains UNKNOWN for that signal and may yield a V5 verdict with degraded evidence quality. No unknown value is rewritten as false, and no sellability claim is made. Other required security observations remain mandatory.
Sellability evidence policy
An explicit observed cannot_sell_all=true retains its BLOCK effect. Explicit false is an observation, while a valid provider omission is recorded as UNKNOWN / PROVIDER_OMITTED_SIGNAL. A routed Base simulation is shadow evidence because it does not establish semantic equivalence to GoPlus's full-sale restriction field. Malformed fields, source failure, stale evidence and authoritative conflicts remain NO_VERDICT. The V4 contract and score thresholds are unchanged.
Unconfirmed liquidity
When exact-token Base liquidity cannot be confirmed, V5 issues WARN with a zero score delta and degraded evidence quality, matching the V4 conservative decision. The missing value remains unknown; it is not set to zero or treated as a token-level sell restriction. The observed-liquidity score thresholds are unchanged.
Data quality is not risk
Evidence quality describes whether evidence is complete and usable. It is not a confidence percentage and does not replace the risk decision.
Freshness
Normalized evidence carries observed and expiry timestamps. Current adapter maximum ages are GoPlus 120 seconds, DEX Screener 30 seconds, Sourcify 300 seconds and direct Base RPC 30 seconds. Expired required evidence is unusable; expired optional evidence degrades evidence quality.
Conflict semantics
Comparable sources are evaluated as AGREE, DISAGREE, INSUFFICIENT, NOT_COMPARABLE or STALE. A DISAGREE result on a configured risk signal is explicit and forces NO_VERDICT. Jepeta does not hide the conflict or invent a provider winner.
Risk Engine v3 rules
| Rule | Signal | Source(s) | Normalization | Risk effect | Evidence-quality effect | Failure semantics |
|---|---|---|---|---|---|---|
R3-BLOCK-HONEYPOT | security.honeypot | goplus | Normalized boolean; rule matches only when value is true. | BLOCK / 100 | Required security evidence. | Required missing, UNKNOWN, UNAVAILABLE, PARTIAL, RATE_LIMITED, ERROR or expired evidence cannot produce PASS and yields NO_VERDICT. |
R3-BLOCK-CANNOT-SELL-ALL | permissions.cannot_sell_all | logical_evidence | Normalized boolean; rule matches only when value is true. | BLOCK / 45 | An omitted source field remains UNKNOWN and degrades evidence quality. | Explicit true blocks and explicit false is observed. A field omitted from an otherwise valid GoPlus response remains UNKNOWN and may yield a verdict with degraded evidence quality. Malformed, stale, conflicting or unavailable evidence yields NO_VERDICT. |
R3-BLOCK-CANNOT-BUY | permissions.cannot_buy | goplus | Normalized boolean; rule matches only when value is true. | BLOCK / 45 | Required security evidence. | Required missing, UNKNOWN, UNAVAILABLE, PARTIAL, RATE_LIMITED, ERROR or expired evidence cannot produce PASS and yields NO_VERDICT. |
R3-WARN-MINTABLE | supply.mintable | goplus | Normalized boolean; rule matches only when value is true. | WARN / 15 | Required security evidence. | Required missing, UNKNOWN, UNAVAILABLE, PARTIAL, RATE_LIMITED, ERROR or expired evidence cannot produce PASS and yields NO_VERDICT. |
R3-WARN-HIDDEN-OWNER | ownership.hidden_owner | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-OWNER-CHANGE-BALANCE | permissions.owner_change_balance | goplus | Normalized boolean; rule matches only when value is true. | WARN / 35 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-SELFDESTRUCT | permissions.selfdestruct | goplus | Normalized boolean; rule matches only when value is true. | WARN / 35 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-EXTERNAL-CALL | permissions.external_call | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-SLIPPAGE-MODIFIABLE | permissions.slippage_modifiable | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-PERSONAL-SLIPPAGE-MODIFIABLE | permissions.personal_slippage_modifiable | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-TRANSFER-PAUSABLE | permissions.transfer_pausable | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-TRADING-COOLDOWN | permissions.trading_cooldown | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-BLACKLISTED | permissions.is_blacklisted | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-TAKE-BACK-OWNERSHIP | ownership.can_take_back_ownership | goplus | Normalized boolean; rule matches only when value is true. | WARN / 20 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-CLOSED-SOURCE | verification.open_source | goplus | Normalized boolean; matches when open_source is false. | WARN / 15 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-UPGRADEABLE-PROXY | contract.is_proxy | goplus | Normalized boolean; matches when proxy is true. | WARN / 10 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-BUY-TAX | market.buy_tax_percent | goplus | Normalized non-negative percent; matches at >=10%; score delta is 15 at 10-<25% and 30 at >=25%. | WARN / 15_or_30 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-SELL-TAX | market.sell_tax_percent | goplus | Normalized non-negative percent; matches at >=10%; score delta is 15 at 10-<25% and 30 at >=25%. | WARN / 15_or_30 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-WARN-LIQUIDITY | liquidity.usd | dexscreener | Normalized non-negative USD value; <200000 matches. Delta: 10 for 50000-<200000, 25 for 10000-<50000, 35 for <10000. Unconfirmed liquidity gives WARN with zero score delta. | WARN / 0_or_10_25_or_35 | Unconfirmed market liquidity degrades evidence quality and cannot yield PASS. | Missing, partial, unavailable or stale exact-token liquidity yields WARN without treating it as zero or a token restriction. |
R3-WARN-TOP10-CONCENTRATION | holders.top10_concentration_percent | goplus | Normalized non-negative percent; >=60% matches. Delta: 20 at 60-<80%, 30 at >=80%. | WARN / 20_or_30 | Optional risk evidence; absence degrades evidence quality. | Missing or unusable optional evidence degrades evidence quality; it is never converted to a reassuring observation. |
R3-FAIL-CLOSED | required_evidence_or_risk_conflict | goplus, multiple | Policy gate over required provider/evidence status, freshness and unresolved configured risk-signal conflicts. | NO_VERDICT / 0 | Required evidence-quality failure. | Required provider failures, unusable required signals, malformed sellability, stale evidence and unresolved risk conflicts yield NO_VERDICT. A valid-provider sellability omission is an evidence gap, not a provider failure. |
All listed V5 rules use methodology version 2.1.1. Risk score remains capped to 0-100; risk levels remain LOW <25, MEDIUM 25-49, HIGH 50-74 and CRITICAL 75-100. V4 public evidence retains methodology version 2.0.0.
Explainability contract
Every Risk Engine v3 verdict carries methodology version, rule versions and rule trace. The trace identifies rule id, signal, source, evidence status, matched state, risk effect and evidence-quality effect.
Public evidence boundary
Public Evidence v2 exposes reason, signal, value, source, observed time, freshness, methodology version and status when permitted. Multiple sources remain separate. Public-safe conflicts and unavailable sources remain explicit. Raw provider payloads, secrets, internal metadata and paid/private fields are excluded. No arbitrary confidence percentage is generated.
Sources and branding
Sources / Trust Center is generated from config/providers.json. Providers are evidence sources, not Jepeta sameAs entities. Descriptive attribution does not imply partnership, endorsement or official integration.
API status
API V5 is the canonical default through POST /jepeta-risk-scan. Its explicit POST /jepeta-risk-scan-v5 endpoint remains available. API V4 GET remains active and supported through default GET and explicit /jepeta-risk-scan-v4. A service-role switch can restore V4 as the default without removing V5 or Evidence Store. Pricing and paid/private exposure are unchanged. A valid GoPlus cannot_sell_all omission stays UNKNOWN with degraded evidence quality; explicit true still blocks, and conflicting or failed required security evidence yields no verdict.