Voting & Reserve Price
The reserve price is the minimum starting bid for a vault's auction. It emerges from a continuous, onchain vote.
How voting works
Any address holding at least one card can call updateUserPrice() with the reserve price they want for the underlying collectible. The contract records each card holder's vote alongside their card balance, and the live reserve price is always the share-weighted average of every active vote:
reservePrice = Σ(voterPrice × voterBalance) / 100
More cards means proportionally more say. Your vote isn't a one-time action, you can update it any time as your opinion of the asset changes.
Most importantly: You don't have to vote if you don't want to part with the collectible.
Guardrails
Boost prevents vote griefing with two mechanisms:
Vote bounds. Every individual vote is clamped relative to the current weighted average:
- Minimum: 20% of the current average
- Maximum: 500% of the current average
So a holder can nudge the price, but can't teleport it to zero or to the moon.
Quorum. An auction can't start until at least 25% of the total card supply (25 of 100 cards) is casting active votes. This stops a tiny, unrepresentative minority from forcing an auction.
Stale votes
When cards are transferred, the voting state updates automatically. The new holder's card balance and vote replaces the sender's in the weighted average, ensuring no stale votes.