Milestones

How the second capital release is proven.

Monad testnet; not audited.

The rest of the raise is released only inside [secondReleaseNotBefore, secondReleaseDeadline), with a healthy source and no default. The issuer picks the proof at creation:

ModeProofTrust
Onchainaccount.cumulativeRevenue() − snapshot ≥ minRevenue and minOperatingPeriod elapsed. Call factory.releaseSecond(bond).No milestone attester. Counts all booked revenue, including self-payments; source-health checks still apply.
SignedAn EIP-712 milestone from the disclosed milestone signer, with wash-adjusted revenue. Call releaseSecondSigned.The milestone signer.

If the deadline passes, anyone calls expireUndrawn() and the undrawn capital goes to investors.