Contents

Reference · For everyone

Audit history

Every review the contracts have been through, in order, each linked to its job and its full record. Each round was pinned to one commit; its findings were fixed or answered in the commit after it, and the next round was pinned to that. Read top to bottom, the table is one chain from the first audit to today.

How the reviews are run

The audits are jobs on the IdentityMD network, paid in IMD, and each is public on the IMD explorer. Three kinds appear below:

  • Panel (template: audit): four specialists read the same code at the same commit, one each for arithmetic, permissions, economics and control flow, and a judge merges their findings and re-runs every claim against the tree before it is kept. Most of the history is panels.
  • Adversarial review (adversarial-review): one reviewer over the whole of the contracts, looking for what crosses subsystem lines.
  • Single audit (audit-imported-code): one auditor over a stated scope, used for the first two rounds.

Four reviews were done in-house rather than by the network; they are marked as such.

Each record keeps the reviewer's or judge's summary verbatim, every finding with its reproduction, the raw submission beside it (with its sha256), and, for the later rounds, a resolution table saying how each finding was answered. A proof that came with a finding is kept as a regression test, so a fixed finding stays fixed.

The chain

Severity counts (C/H/M/L/I) are critical, high, medium, low and info, as the round's judge or auditor kept them. "Answered in" is the commit that fixed, or accepted with a stated reason, every finding of that round.

#DateReviewKindPinned toC/H/M/L/IAnswered inRecord
12026-10-03The in-house contractsSingle audit, job c71449d1the pre-launch tree0/1/2/4/4332f023, 0fe0381, 19829a9Record
22026-10-04The dollar denomination and work-backing surfaceSingle audit, job da7d5b1c36f305a0/0/3/2/01f15c2aRecord
32026-10-04What is proven, what is argued, what stands before mainnetIn-housethe tree that daya gap list, not a severity count00b60b9Record
42026-10-05Launch audit: the vaultPanel, job 414e25cce52a0250/0/3/4/903e8d0cRecord
52026-10-05Launch audit: governancePanel, job ae08d373e52a0250/0/1/3/1103e8d0cRecord
62026-10-05Launch audit: the oraclePanel, job f6faeaf9 (judge out of budget after one finding; the specialists' others went into the fix plan)e52a0250/1/0/0/003e8d0cRecord, fix plan
72026-10-05Launch audit, phase 2: the fixed treeAdversarial review, job 5e2f770303e8d0c0/0/2/3/19dd2149Record
82026-10-05Gas, without weakening any guardResearch report, job ca1b768603e8d0cproposals, each accepted or refused with its reason9dd2149Record
92026-10-06Every contract, the deploy path and the oracle payloadsIn-housea4c22a50/1/1/5/a fewce39fc6Record
102026-10-06Final pre-launch reviewAdversarial review, job d744e818 (partial: out of turns)002605f0/1/2/3/0cc4103f, reviewed in 8dd0847Record
112026-10-07Final pre-launch review, the half the first did not reachAdversarial review, job cc8d583b8dd08470/0/1/4/2b73a05fRecord
122026-10-07Final panels: the vaultPanel, job 6a5f4140b73a05f0/0/2/3/38756817Record
132026-10-07Final panels: governance and the TreasuryPanel, job e4a6f30eb73a05f0/0/1/2/58756817Record
142026-10-07Final panels: the price pathPanel, job f1346a93b73a05f0/0/1/3/38756817Record
152026-10-07Sweep panels: the vaultPanel, job 43b9625987568170/1/4/1/3973369eRecord
162026-10-07Sweep panels: governance and the TreasuryPanel, job f6219aa587568170/0/0/2/2973369eRecord
172026-10-07Sweep panels: the price path and the deploy checksPanel, job ecd0a27987568170/0/0/4/7973369eRecord
182026-10-08Retry panel: the vault's redesigned lagPanel, job 3226aaed973369e0/1/4/2/224337a2, 58f73deRecord
192026-10-08Retry panel 2: warmth per positionPanel, job a264062124337a20/0/3/5/2d7fceabRecord
202026-10-08Final vault panelPanel, job 45bf3777d7fceab0/1/4/5/36085c8aRecord
212026-10-08Final sweep: the whole systemPanel, job 08a124136085c8a0/0/0/3/277d8878Record
222026-10-08Delta panel: what the final sweep's fixes changedPanel, job fc96f20907905bb0/0/1/2/446b646fRecord
232026-10-08Launch vault panel: the vault in fullPanel, job 5383ced09bd5f590/1/2/1/1d3861ac, by replacing the backing lag with paced figuresRecord
242026-10-08Paced vault panel: the redesigned vault in fullPanel, job dc27aaded3861ac0/0/3/2/6c1ecb05Record
252026-10-09Final sweep 2: the whole system, after the paced figuresPanel, job a69e204ea3aa9e40/1/0/2/492b873bRecord
262026-10-09Payout vault panel: the vault on the sweep's fix (the paced payout price, the clamp, the seed, the price read once, the transient guard)Panel, job f936eafbc90e8d90/1/0/3/173191e0Record
272026-10-09Final sweep 3: the whole system, after the payout pricePanel, job ed4f7f6de4baedf0/1/0/3/2dba2cb3Record
282026-10-09Final sweep 4: the whole protocol, every mechanism, after the premise was correctedPanel, job 6229d0fcc7d50ee0/0/1/2/4df82607Record
292026-10-10The work-root fix: the work oracle keeps no epoch, so a missed day no longer stops it accepting rootsIn-house549dfddno findings; one comment correctedc1381ebRecord
302026-10-10Intake v2 and the oracle purchases' failure callbackIn-house79d0b82no findings79d0b82Record

What the chain shows

  • No critical finding in any round. The highs were five: three in the vault's backing lag, each fixed in the commit after it, then two in the oracle's reach over redemption payouts, which a pool held down through the feed's window could inflate: round 25 found the route and the price a redemption is paid at was paced; round 26 showed the first rate (5% an hour) only delayed the hold by five hours, and the rate is now 1% an hour, so a profitable hold runs through the better part of a day. Round 27 found a sixth in the same root, liquidation at a held-down price, and it is the one high accepted rather than fixed: slowing liquidations to stop it would leave real crashes to bad debt that every holder bears, so the bound is stated in plain words, the site warns a marked borrower, and the proof is kept as the measure of the bound. Every other high was fixed in the commit after the round that found it, with its proof kept as a regression test.
  • The panels found their bugs in each round's newest code. That is why the vault has had more rounds than the rest: its backing guard and its lagged capital were repaired through rounds 15 to 23, each repair audited again and each found wanting in the next round, until round 23's high was in the repair made for round 22. The lag was then replaced outright by three paced figures with a one-sentence guarantee (record 23); round 24 audited that and found no high, three mediums (an ordering gap, a wrongly stated condition, and a stale collateral term nobody but its owner could re-price), each fixed or restated in the commit after it.
  • Two items are accepted rather than fixed, each with its reason in the code and in Risks and open questions: a repayment one transaction before a redemption can lift what that redemption is paid, within a stated bound and only below par; and a redraw after a redemption releases a repayment's share of the fee base early. The rounds that tried to close the first did worse than the edge itself, and the records say how.
  • What the reviews do not cover is in Risks and open questions: the oracle service's signer, the fixed questions, and the economic assumptions behind the peg.

The raw record of every network job, and the full text of every finding, are in the repository's docs/ folder.

Sources: docs/AUDIT-2026-10-03.md, docs/AUDIT-2026-10-04.md, docs/AUDIT-VAULT-2026-10-05.md, docs/AUDIT-ADVERSARIAL-2026-10-05.md, docs/AUDIT-FINAL-2026-10-07.md, docs/AUDIT-FINAL-PANEL-VAULT-2026-10-07.md, docs/AUDIT-SWEEP-PANEL-VAULT-2026-10-07.md, docs/AUDIT-RETRY-PANEL-VAULT-2026-10-07.md, docs/AUDIT-RETRY2-PANEL-VAULT-2026-10-08.md, docs/AUDIT-FINAL-VAULT-PANEL-2026-10-08.md, docs/AUDIT-FINAL-SWEEP-PANEL-2026-10-08.md, docs/AUDIT-DELTA-PANEL-2026-10-08.md, docs/AUDIT-LAUNCH-VAULT-PANEL-2026-10-08.md, docs/AUDIT-PACED-VAULT-PANEL-2026-10-08.md, docs/AUDIT-FINAL-SWEEP-2-2026-10-09.md, docs/AUDIT-PAYOUT-VAULT-PANEL-2026-10-09.md, docs/AUDIT-FINAL-SWEEP-3-2026-10-09.md, docs/AUDIT-FINAL-SWEEP-4-2026-10-09.md