DeFiPunk'd

Methodology

DeFiPunk'd is a registry. Most slice grades are still gray — only assessments with a published audit trail show a color. Where a color appears, you can trace it to either a deterministic heuristic on raw DeFiLlama signals or a DEFI@home quorum of independent LLM runs.

Where the data comes from

Every protocol is seeded from DeFiLlama via pnpm sync, which writes the full list into a committed JSON snapshot. Human curators can override individual fields by dropping a JSON file into data/overlays/ and opening a PR.

Every field displays a provenance tag so you always know where the value came from:

The glyph only appears where there is evidence behind it; an em-dash means unsourced.

The 5-slice risk pizza

DeFiPunk'd uses the five assessment dimensions from DeFiScan v2: Control, Ability to exit, Autonomy, Open Access, and Verifiability. A gray slice means nothing has produced a color for that dimension yet.

Control — unknown Ability to exit — unknown Autonomy — unknown Open Access — unknown Verifiability — unknown
  • Control
    Who holds admin privileges, how contracts can be upgraded, and how quickly. Combines the old chain-ownership and upgradeability questions — a single assessment per protocol rather than per chain, since a one-chain-red / mainnet-green split is more misleading than useful.
  • Ability to exit
    Whether users can exit on their own terms if the protocol team disappears or acts adversarially.
  • Autonomy
    Whether a failure outside this protocol's own contracts (oracles, off-chain reporters, bridges, keepers, governance-mutable dependencies) can cause theft, loss of unclaimed yield, or materially change expected performance. Collateral counterparty risk lives here too.
  • Open Access
    Whether the protocol is reachable by anyone without an allowlist, KYC, geofence, or off-chain operator standing between a user and the contracts. Permissioned markets, whitelisted relayers, and frontends that gate withdrawals all live here.
  • Verifiability
    Whether anyone outside the team can independently verify what the code does: open-source status, audit quality and scope, bytecode-to-source correspondence at the deployed address, and whether post-audit changes were themselves reviewed.

How slices are graded today

A slice gets a color from one of three sources: a deterministic heuristic on DeFiLlama signals, the CEX special case, or a DEFI@home quorum. Heuristics run on every protocol on every build; DEFI@home grades land per (slug, slice) as contributors and the autorun bot submit them.

Heuristic-graded slices

Verifiability — coarse first-pass on raw DeFiLlama signals:

An audit count is a famously weak signal in isolation — auditor quality, report scope, and whether post-audit changes were reviewed matter far more than the integer. A thorough Verifiability assessment via DEFI@home overrides the heuristic when ≥3 model runs agree.

Autonomy — category + opportunistic forkedFrom:

Slices with no heuristic

Control, Ability to exit, and Open Access have no automated heuristic. They render gray until a DEFI@home quorum lands a real grade. Open Access in particular is not a signal DeFiLlama carries in a usable form — it depends on reading the project's own docs and frontend, plus on-chain checks for whitelist-gated entry points.

CEX special case

Protocols whose DeFiLlama category is exactly CEX are graded red across all five slices automatically. The rationale: a centralized exchange is custodial off-chain infrastructure — the failure modes are the entire surface, and grading them per-slice would imply a level of separation that doesn't exist. The "DeFi" tab on the landing page filters CEX out by default.

Tier badges (bronze / silver / gold)

A medal next to a protocol's name signals how thoroughly the slice grades have been reviewed. Tier is computed from the assessments that have reached quorum, not from the grades themselves:

Tier is a review-depth signal, not a safety signal: a silver-tier protocol can have five red slices. Tier and grade are independent axes.

Family aggregation

Protocols deployed as a family (Uniswap v2/v3/v4, Aave v2/v3, Morpho Blue/MetaMorpho, …) appear as a single expandable row on the landing table. The family summary takes the grade of the highest-TVL child for every slice — so a small outlier deployment doesn't drag a well-graded family down — and the maximum tier badge across children. Expanding the row reveals each child's individual pizza and tier.

DEFI@home — distributed assessment

DeFiPunk'd does not run crawlers and does not hand-curate every protocol. The slice grades that aren't produced by the heuristics above are filled in by DEFI@home: a distributed, BOINC-style process where independent contributors run a pinned prompt through the LLM of their choice (Claude, ChatGPT, Gemini, …) and submit the JSON output as a pull request.

Each protocol page exposes an Audit a dimension yourself · DEFI@home section under the Risk analysis cards, with a Copy prompt button per slice plus an Audit all row that combines the five risk dimensions into one prompt. Submit run ↗ opens GitHub's new-file interface pre-pointed at data/submissions/<slug>/<slice>/ for one slice or data/submissions/<slug>/all/ for the combined JSON array. The prompt has the snapshot timestamp, prompt version, chains, GitHub repos, and audit links pinned in, so re-runs remain verifiable against a fixed evidence set.

Determinism comes from consensus across independent re-runs, not from any single LLM output. A quorum bot merges an assessment into data/assessments/ once at least 3 contributors using different models agree on grade and overlapping evidence; disagreements are surfaced on a per-slug aggregation issue. A scheduled GitHub Action also runs the prompts via the Anthropic API as a "third voice" so coverage doesn't depend on volunteer traffic alone. See /contribute for the full flow.

Curated metadata from DEFI@home

The same DEFI@home submissions that produce slice grades also carry a protocol_metadata block. When a slice reaches quorum, fields from the highest-weight submission propagate to the protocol detail page with the [:] glyph:

These fields are not graded — they're factual claims with citations in the underlying submission, and they're inferred from the assessment work the contributor already did rather than re-asked separately.

Reconcile and the master file

After quorum lands the per-slice assessments, a scheduled reconciler runs Claude Sonnet over the merged assessments plus the raw submissions and writes a synthesized verdict to data/master/<slug>.json. The master file is what feeds the protocol detail page's narrative — findings, steel-man arguments, verdict, and noted dissent. It does not re-grade; it consolidates what the quorum already decided into prose a reader can scan.

Stages

The Stage column is reserved for a future adoption of DeFiScan v2's stage framework. Today every protocol shows an em-dash there. The tier badge is the current "is this protocol reviewed?" signal — it answers a different question than a stage (review depth vs. decentralization milestone), so the two will coexist when stages land.

Inactive and delisted protocols

DeFiPunk'd mirrors DeFiLlama. Protocols flagged is_dead upstream show an "(inactive)" label on the landing table and are hidden by default behind a "Show inactive" toggle. If DeFiLlama removes a protocol entirely, DeFiPunk'd marks it delisted_at and serves a stub page explaining the removal for 14 days; after the grace window the protocol is dropped from the registry.

Corrections

Spotted a wrong field? Open an issue or a PR on github.com/guil-lambert/defipunkd.