Skip to content

UserVote — Your Word-Game Ballot

One-line pitch: UserVote is the struct that holds your vote and submission count for a word-game round. One vote per round; resets every round.

What this is

When you participate in the word-game mini-mode, two pieces of state about you get tracked in a single UserVote struct:

  • Vote — the ACRONYM Id you voted for.
  • Submissions — how many phrases you've submitted this round (capped at 255).
  • Round — which round this vote applies to.

When a new round begins, the Round field lets the game tell "this is a stale vote, ignore it" — old votes don't leak into new rounds.

Like ACRONYM, this is a data shape (struct), not a contract.

If you've played a web3 game before

  • Closest analogy: a per-epoch ballot — your vote only counts for this epoch; next epoch gets a fresh vote.
  • Or: Snapshot proposals with round-scoped voting power.
  • Or: a per-round rate limit — "you can do this N times this round, then nothing until reset."
Dysnomia term What it maps to
UserVote Struct storing your per-round voting state
Vote The ACRONYM.Id you voted for
Submissions Count of phrases you submitted this round (max 255)
Round Round number this state belongs to

What you actually do with it

  • Submit phrases — each submission bumps Submissions++.
  • Vote for a favorite — sets Vote = someAcronymId and Round = currentRound.
  • When a new round starts — your old Round no longer matches; the field is effectively reset without needing a zero-write.

Rewards / costs

  • Cost: gas per submission + vote.
  • Reward: if your vote wins or your submission wins, rewards (game-logic dependent).

Requirements & gating

  • You need a Soul (player ID) — votes are tracked per Soul, not per wallet.
  • Submission cap (commonly 3 per round) enforced by the game contract.

Where it connects

Tracks votes for ACRONYM entries. Uses your Soul (via LAU's USER record) as the key. Consumed by whatever contract implements the word-game round logic.

Quick FAQ

Q: Can I change my vote within a round? A: Depends on game rules — typically once your Vote is set for the current Round, it's locked for that round.

Q: What happens to my UserVote across rounds? A: The storage slot stays, but since Round no longer matches currentRound, the old values are ignored. New vote overwrites.

Q: Why uint8 on Submissions? A: No one's submitting more than 255 phrases a round — uint8 saves gas.


Want the Solidity? The contract reference lives at technical/docs/include/USERVOTE.md.