OAK — OnChain Attack Knowledge

Worked example · 2022-20

Snapshot off-chain voting exploitation via flash-loaned and delegated voting power — Ethereum — 2022–2024

Loss
structural — Snapshot is an off-chain, gasless voting platform used by DAOs for governance signalling. Voting power is computed from on-chain balances (via configured strategies) at a snapshot block fixed when the proposal is created. No named incident of realised loss is asserted in this file; individual governance outcomes are DAO-specific and not reducible to a dollar figure.
OAK Techniques observed
OAK-T16.004 (Snapshot Off-Chain Voting Exploitation — primary; the off-chain architecture takes strategy-computed balance at the snapshot block as the voting-power input). OAK-T16.002 (Flash-Loan-Enabled Governance Manipulation — structurally adjacent; see the correction below on why it does not transfer cleanly to Snapshot). OAK-T9.002 (Flash-Loan-Enabled Exploit — adjacent capital-acquisition primitive).
Attribution
pseudonymous (no specific attacker or proposal is identified in this file; the surface is structural).
Key teaching point
Snapshot voting power reflects what an address held at the proposal's snapshot block, not economic commitment to the DAO. Because voting is gasless and requires no locking, voting power that was acquired before the snapshot block (bought, borrowed for a longer period, or temporarily delegated) can be used for a vote with no ongoing stake. A flash loan taken after the proposal is created does not count.
Corrected 2026-10-11
the original described flash-loaning governance tokens, voting and repaying within one block as the canonical Snapshot pattern; Snapshot's docs fix voting power to the proposal's snapshot block (tokens acquired after proposal creation are not counted), so that pattern is not available against a correctly configured space, and the claims of documented 2022 flash-loan-influenced Snapshot votes and of per-year anti-flash-loan strategy adoption are unsourced and removed.

Summary

Snapshot is the dominant off-chain governance voting platform for EVM-chain DAOs. DAOs define a "space" with voting strategies; proposals are voted on with signed messages; no on-chain execution occurs through Snapshot itself, and the vote is a signalling mechanism that a DAO's multisig signers or on-chain governance are expected to honour.

Per Snapshot's documentation, when a proposal is created the snapshot block defaults to the latest block synced by Snapshot's node; each voter's power is evaluated against chain state at that block, so tokens acquired after proposal creation are not counted, and validation by default also checks strategies at the snapshot block. Spaces may combine multiple strategies, and some validate at the latest block for non-transferable tokens.

The residual surface that remains is: (a) power acquired before the snapshot block that carries no lasting commitment (purchased or borrowed beforehand, or delegated), (b) strategies configured to read the latest block, and (c) the gap between a signalling vote and the economic alignment the DAO assumes. Flash-loan governance exploits are documented on-chain governance systems that read voting power at or after proposal creation (for example the FutureSwapX case described by Verichains, which exploited the FST token's on-chain snapshot() flow), not Snapshot.org.

No named T16.004 incident is asserted as canonical here; contributors should treat the technique as a structural surface until a sourced incident exists.

What defenders observed

  • The snapshot block, not the vote time, determines Snapshot voting power. Mitigations are at the voting-strategy layer: validation settings, time-weighted or locked balances, and delegation requirements. Which of these specific strategies each DAO adopted, and when, is not established in the cited sources.
  • Gasless voting removes per-vote cost. That broadens participation and makes pre-acquired power cheap to use.

What this example tells contributors writing future Technique pages

  • T16.004 should not be described as a same-block flash-loan attack. The same-block flash-loan pattern belongs to T16.002 on on-chain governance with latest-block or post-proposal balance reads.
  • Require a named, sourced incident before treating T16.004 as realised. This file documents a design surface, not an event.

Public references

Techniques demonstrated (3)