Introduction

On September 8th, 2026, Mina Foundation tasked zkSecurity with a second security audit of its decentralised on-chain community treasury. The audit lasted six days with two consultants. We reviewed the MinaFoundation/decentralised-treasury repository at commit 98f5ed2.

This engagement followed our first audit of the Mina treasury, which reviewed the provable contracts and circuits at commit f2c93cf.

Scope

The full MinaFoundation/decentralised-treasury repository at the frozen commit listed above was in scope. The audit covered the following security-critical paths:

  • The complete treasury lifecycle, from staking-ledger ingestion and voting-ledger generation through proposal creation, voting, vote reduction and tallying, proposal execution, and emergency pause operations.
  • Changes to the on-chain smart contracts and ZkPrograms introduced after the previous audit and remediation review, including their interfaces with off-chain components.
  • The off-chain implementation used to construct transactions, generate proofs and witnesses, maintain voting and nullifier state, and persist protocol data across the SDK, CLI, workers, and relevant web application code.
  • The indexer, processor, and API paths that derive application state from Mina Archive events, with a focus on event integrity, ordering, state synchronization, and consistency with on-chain state.
  • End-to-end adversarial testing of the principal user and operator flows, with particular attention to trust boundaries between Mina and Archive data, persisted off-chain state, generated proofs, submitted transactions, and user-visible results.
  • Changes in the custom o1js fork used by the treasury at commit 87bc121, including Mesa support and modified primitives or semantics relied upon by the smart contracts and ZkPrograms. We reviewed the fork against upstream o1js v3.0.0.

The engagement did not include exhaustive review of presentational UI components, generic CRUD code unrelated to protocol integrity, local development infrastructure, or CI and DevOps configuration.

Summary

A detailed overview of the Mina treasury architecture can be found in our previous report.

Our audit uncovered several critical issues in o1js that affect the Mina ecosystem at large. These were disclosed to affected parties and addressed in a coordinated effort. See findings #00, #01 and #02. As of writing, all three issues are addressed and released in o1js v3.1.0.

Our general assessment is that, after upgrading o1js, the protocol is close to Mainnet readiness. The main areas of tightening that remain are around the deployment setup, see #03 and #0c, and operational robustness so that the treasury doesn’t fail on normal onchain conditions and edge cases (#06, #07, #08).

Update, 29 Oct 2026. Mina Foundation has addressed all high, medium and low issues, including the deployment and robustness issues mentioned above. The Client Response of each finding describes its fix.