{
  "slug": "coda",
  "name": "Coda",
  "tagline": "Certified circuits via refinement types in Coq",
  "maintainer": "Junrui Liu, Işıl Dillig et al. (UT Austin, Veridise)",
  "url": "https://eprint.iacr.org/2023/547",
  "category": "zk-circuits",
  "targets": [
    "Circom-style circuits reimplemented in Coda"
  ],
  "approach": "Refinement-typed circuit language generating Coq proof obligations",
  "license": "Research artifact",
  "status": "Research (2023), not actively developed",
  "summary": "Coda is a research language in which circuits carry refinement types; the type checker generates Coq lemmas whose proofs establish functional correctness. Its authors found six bugs in circomlib-derived circuits with it.",
  "details": [
    "Coda is historically important: it showed that functional correctness of circomlib-style gadgets is provable with modest effort. Its ideas live on in Veridise's tooling and in the Lean frameworks."
  ],
  "strengths": [
    "Clear methodology paper.",
    "Found real bugs.",
    "Refinement types keep specs close to code."
  ],
  "limits": [
    "Requires rewriting circuits in Coda.",
    "No active maintenance.",
    "Coq only."
  ],
  "fit": [
    "Read the paper for the methodology; use Clean, Garden or zkLean for new work."
  ],
  "references": [
    [
      "Certifying Zero-Knowledge Circuits with Refinement Types (ePrint 2023/547)",
      "https://eprint.iacr.org/2023/547"
    ]
  ],
  "category_name": "ZK circuit verification",
  "page": "https://sorryfree.com/frameworks/coda/",
  "updated": "2026-09-13"
}