Plate 03 · Epochs & snapshots
The vote is weighed at a moment that has already happened.
An epoch is a fixed-length window with a snapshot attached to its opening. Everything about the resistance to borrowed votes follows from that one arrangement.
When an epoch opens, the contract records the timestamp. Every ballot cast during that epoch is weighed by what the voter held at that recorded moment — never by what they hold while voting.
So a trader who borrows a large balance in the middle of an epoch, votes, and returns the loan in the same transaction has a weight of zero: at the recorded moment, they held nothing. The ballot is rejected outright. No lock-up is needed to get this property, and no tokens are ever held hostage by the vote.
§ 03.1Consequences worth knowing
| If you… | Then… |
|---|---|
| delegate after the snapshot | you have no weight this epoch, and full weight from the next roll onward |
| buy after the snapshot | the same: the new balance counts from the next snapshot |
| sell after voting | your ballot stands — it was weighed in the past |
| move tokens to a second wallet and vote again | the second wallet's past weight is zero, so the ballot is rejected |
| borrow tokens inside the epoch | zero weight; the ballot is rejected |
§ 03.2Rolling the epoch
The roll is a single call anybody can make once the window has closed. It is deliberately not automatic, because there is no such thing as an automatic call on Ethereum: someone must send the transaction, and making it permissionless means that someone can be any holder rather than an operator.
A late roll is not a failure state. Ballots keep being accepted at the same snapshot, the tally keeps updating, and the module in force stays in force. When the roll finally lands, the leading module takes over and the next window opens from that moment.
§ 03.3The dynamic this creates
Because each snapshot is taken at a roll, weight belongs to whoever is holding at that instant. A large buyer who arrives during an epoch cannot vote in it, but their balance is fully counted from the next one. In practice that means influence costs a purchase plus a wait, rather than a purchase plus a block.
That is a real property, not a claim about safety: it makes borrowed weight useless without making bought weight useless. Weight is still weight, and this plate makes no claim that a large holder cannot steer the module.