Static Analysis

Documentation snapshot 18 October 2026. Deployment · Audit Status
On this page

Static analysis identifies patterns and possible defects within the configured scope. A completed run is not a completed contract audit; unresolved warnings and evidence availability are listed separately below.

Tools

fact forge lint runs with the exclusion list in foundry.toml. Each excluded lint is documented with a reason (for example block-timestamp is excluded because the protocol’s logic is defined in terms of timestamps by design, and calls-loop because the upkeep loops in NoteAutomation.checkUpkeep are bounded by maxSeriesPerCheck and the number of templates, and Treasury/Desk asset loops by governance-set lists).

fact Slither, Aderyn and forge lint outputs from the internal security review are committed under audit/static-analysis/ with dated file names, and triaged in audit/static-analysis.md (0 true positives at the reviewed commit; every accepted pattern is listed with its reason).

planned The following are proposed CI checks, not completed coverage:

illustrative Tools
ToolScopePolicy
SlitherAll of src/High and medium findings fail CI unless triaged with an inline justification
AderynAll of src/Report attached to each release
forge build --sizesContract sizesFail if any contract exceeds 24 KiB
forge fmt --checkFormattingFail on diff
forge coverageCoverageFail below 95% on non-mock sources

Known Accepted Patterns

fact Known Accepted Patterns Reference
PatternWhereReason
Reentrancy via ERC-1155 hookNoteLegs → NoteCore.onLegTransferRequired for coupon accounting on transfer; guarded and unit-tested
Timestamp comparisonsNoteCore, OracleAdapter, Treasury, sNOTEProtocol semantics are calendar-based
Unbounded loop over assetListTreasury.reserveValueQuoteAsset list is governance-controlled and small; documented gas bound
Division before multiplicationFixedPointMath WAD helpersUses mulDiv with explicit rounding direction

Reporting

Static analysis reports for tagged releases will be published in the repository under contracts/reports/. Nothing has been published yet.

A little more clarity?

Keep exploring, or revisit this topic from the navigation.