F01Verified
Critical
Signing path integrity
The browser recomputes the prepared-transaction hash and checks the requested choice, contract and arguments before the member signs. Unnamed fields are refused. The server executes its own prepared transaction under that hash; its ledger user cannot act as a member.
F02Verified
Critical
Ballot authorization and lifecycle
Voter and provider sign ballots. Membership records votes to block duplicates; a permitted change withdraws the replaced ballot. Counting checks the DAO, deadline, rule, member and share at voting time, and rejects double counting.
F03Verified
High
Execution authority
DAO_Execute carries out only passed proposals under DAO authority, in bounded batches. Dissolution waits for other proposals to finish, and blocks new proposals while in progress.
F04Verified
High
Secret ballot confidentiality
During an open secret ballot, the app serves no totals, turnout or member contract IDs. Ballots cast since 1.0.1 are not held by the DAO creator’s validator.
F05Verified
High
Balance and deposit accounting
Ledger memo deposits count once per event from the configured start time. Charges use participant traffic net of rewards; marker deductions cannot make a charge negative. Balances are provider-signed statements; the package moves no coin.
F06Verified
Medium
Ledger-enforced limits
Text and picture-link lengths are bounded in Daml. Shares and ballot weights are positive by ensure; membership changes require the founding table or a passed vote.
F07Verified
Medium
Upgrade compatibility
Each release since 1.0.0 is a compiler-checked Smart Contract Upgrade of its predecessor; live contracts carry over without migration.