Severity & Confidence
Chainvet ranks every finding on two independent axes — severity (impact) and confidence (the detector's precision).
Every Chainvet finding carries two independent ratings. Keeping them separate is what makes triage precise.
Severity — potential impact
high · medium · low. Severity is the potential impact of the issue if
exploited. It is assigned per detector when a finding is constructed — for example,
a reentrant ETH transfer or an arbitrary selfdestruct is high, while a
block.timestamp-based decision is low.
Confidence — the detector's precision
high · medium · low. Confidence is the reporting detector's own estimate of
how likely the finding is a true positive — not how bad it is.
- High — high-precision detection; false positives are rare.
- Medium — plausible but pattern/heuristic-based; warrants manual triage.
- Low — speculative or false-positive-prone.
How it's resolved: a detector uses a per-finding override when it has local evidence (a guard it saw, a confirmed taint path, an ETH-sending sink); otherwise it falls back to a per-kind default. Roughly:
- Near-syntactic checks (e.g.
tx.origin, default visibility, unprotectedselfdestruct, weak PRNG) default to high confidence. - Dataflow/heuristic checks (several reentrancy variants, shadowing, tainted call, missing input validation) default to low.
- The rest default to medium.
Across engines the meaning is consistent: static confidence is heuristic, symbolic execution derives it from solver evidence, and fuzzing from concrete reproduction — all on the same scale so the orchestrator can rank and merge findings.
Triage order
Fix high/high first
Sort by severity, then confidence. A high-severity, high-confidence finding is the one to fix first. A high-severity, low-confidence finding is worth a careful manual read — it may be real, or a false positive.
Filtering by each axis
Both axes are independently filterable in the CLI — by a floor (at or above) or by exact values:
chainvet scan -s high contracts/ # severity >= high
chainvet scan -c high contracts/ # confidence >= high (most precise only)
chainvet scan --severity medium contracts/ # exactly medium severity
chainvet scan --confidence high contracts/ # exactly high confidenceSee Filtering findings for the full rules, and the CI gating page for how both axes combine to fail a build.