On-Chain Forensic Audit

Mission 70

NNS Proposal #140538 · February 28, 2026
All data pulled from canister bzchk-oyaaa-aaaae-ae4eq-cai

⚠ Executive Summary

76% of ICP withdrawn (115.8 of 152.5 ICP) and 80% of votes (1,168 of 1,522) originated from sybil farms funneling to 27 wallets. The top wallet controlled 100 fake principals and extracted 20 ICP.

01 — Platform Metrics

1,522
Total Votes
2,435
Page Views
1,454
Withdrawals
152.5
ICP Withdrawn
313
Unique Wallets
14.4h
Vote Window
0.01
Final Payout (ICP)
0
Treasury Remaining

Payout started at 0.15 ICP/vote, reduced to 0.01 as treasury depleted. 95.5% of voters withdrew — consistent with bot farming.

02 — Vote Breakdown

1,027
Dom (67.5%)
495
Snassy (32.5%)
105.8
Avg Votes / Hour
378
Peak Votes / Hour

Feb 27, 2026 — 00:26 to 14:49 UTC. Contract enforced 1 vote per principal. No double voting possible.

03 — Hourly Distribution

HourVotesDomSnassyDistribution
00:00532
01:0016115
02:00843945
03:00683533
04:0015114
05:00532132
06:00715219
07:0012611511
08:0020816840
09:0024515986
10:00 🚨378246132
11:0023715582
12:00642
13:00321
14:00761

86% of all votes landed in a 5-hour window (07:00–11:59 UTC). The 10:00 hour alone — 378 votes, 24.8% of the total — marks the bot farm's peak operating window.

04 — Withdrawals

Amount Breakdown

AmountCount%Total ICP
0.2 ICP1,38895.5%277.6
0.5 ICP543.7%27.0
0.01 ICP120.8%0.12

Destination Analysis

Sybil wallets: 27 destinations
1,168 withdrawals (80.3%) → ~115.8 ICP (76%)

Legitimate: 286 destinations
286 withdrawals (19.7%) → ~36.7 ICP (24%)

05 — Top Sybil Wallets

#DestinationFake VotersICP Drained
1eu2ey-qbmck-ojxvf-ba...tae10020.0
2ptxh5-rxa6z-ij4hr-uu...mae6813.6
33k33o-vtzmp-nqxlk-ax...6qe6212.0
4xatny-4jnrt-xbgdb-tp...6qe5410.8
5k4a3n-an4te-lpwag-jb...jqe479.4
6ibejy-yuclw-73bav-f7...vae438.6
7stt3n-z3yd5-vpcqo-uz...nqe377.4
8l5r3v-nx5ik-hrn7o-n2...bae306.0
96ufgq-m74qb-xwpu7-lq...5qe275.4
10q6har-zaqy2-lg3ie-ms...zqe255.0
11ozlqg-kjy7r-l63ms-z5...4ae244.8
12njfun-bzm6s-pf5du-zy...cae214.2
13–2715 additional wallets608.6

06 — Sybil Vote Direction

820
Sybil → Dom
348
Sybil → Snassy

Outcome Without Sybils

ScenarioVotesDomSnassyDom %
All votes (raw)1,5221,02749567.5%
Sybil only1,16882034870.2%
Legitimate (est.)35420714758.5%

Dom still wins 58.5% to 41.5% among legitimate voters. Sybils amplified the margin but did not change the winner. The primary goal was extracting ICP from the treasury, not influencing the outcome.

07 — Temporal Attack Patterns

124
Sub-Second Pairs
210
Rapid Pairs (<2s)
33
Burst Windows
12/min
Peak Rate

08 — Vulnerabilities

VulnerabilitySeverityImpact
No identity verification (II)CRITICALUnlimited free principals
No account age requirementCRITICALInstant bot voting
No stake requirementCRITICALZero cost sybil creation
Direct ICP payout per voteHIGHFinancial incentive to farm
No withdrawal destination limitsHIGHRewards funnel to one wallet
No rate limitingHIGH12 votes/min unthrottled

Attack economics: Cost to attacker: ~0 ICP. Revenue: ~115.8 ICP. Near-infinite ROI — the only cost was compute time to run the script.

09 — Prevention Framework

TierDefenseBlocks
1Account age gate (30+ days), rate limit, withdrawal cooldownFresh bot accounts, rapid scripts
2Internet Identity verification (1 human = 1 vote)Most sybil farms (~90%)
3On-chain raffle with dedup + randomized selectionTreasury drain incentive
4Stake-to-enter + destination withdrawal capEconomic sybil entirely

10 — Canister Verification

ComponentCanister IDStatus
Mission70 Backendbzchk-oyaaa-aaaae-ae4eq-caiRunning
Mission70 Frontenda2oom-2aaaa-aaaae-ae4ca-caiRunning
PP Terminal Subsqoixt-7yaaa-aaaam-ahgla-caiRunning
Token Oracles77ts-eaaaa-aaaag-axa4q-caiSubnet Stalled

Data methods: getAllVotes() → 1,522 records · getWithdrawalLog() → 1,454 records · getResults() → live tally

NNS Proposal #140538: ADOPTED & EXECUTED — 90.2% YES, 360.8M ICP voted. The NNS neuron vote is completely separate from this canister vote and was not affected by sybil activity.