---
title: "Writing a custom precompile and forgetting what that means"
description: "A zkVM is chosen partly to avoid hand-written circuits, and then a custom precompile is added for performance."
type: "failure-mode"
url: "https://zkpick.com/frameworks/failure-modes/writing-a-custom-precompile-and-forgetting-what-that-means/"
section: "02 Choosing a framework"
authors:
  - "MarketComp"
publisher: "MarketComp"
version: "1.3"
updated: "2026-09-12"
license: "CC-BY-4.0"
json: "https://zkpick.com/data/frameworks/failure-modes/writing-a-custom-precompile-and-forgetting-what-that-means.json"
---

*By MarketComp. Updated 2026-09-12. Version 1.3. CC BY 4.0.*

# Writing a custom precompile and forgetting what that means

A zkVM is chosen partly to avoid hand-written circuits, and then a custom precompile is added for performance. That precompile is a hand-written circuit with all the attendant risk — but it is often reviewed as an optimisation rather than as new soundness-critical code.

**Mitigation:** Scope custom precompiles into the audit explicitly, as circuit code. Precompiles are a recurring source of soundness bugs precisely because they are written for speed.
