Pearl Ballot

off-chain DAO governance · the civic hall

Draft the proposal

The organizer commits to the proposal terms, the voting window (start/end block heights) and the snapshot height in a tamper-evident descriptor. Publish the descriptor before the voting window opens — that is what makes the poll provably fair. Voting weight is the voter's PRL balance, read from Blockbook.

The voting rules (published with the descriptor)

  • One address, one ballot. A second ballot from the same address is flagged — first valid ballot wins.
  • Ballots are signed inside the voting window only (chain tip between start and end height).
  • Weight = the voter's current confirmed PRL balance from Blockbook, recorded in the signed ballot. The snapshot height is the organizer's enforcement reference (see Honest limits).
  • Every ballot signature is re-verified at tally time against the voter's address key. Wrong-key or tampered ballots are loudly refused.
  • Exact ties are reported as a TIE — the page refuses to pick a winner out of thin air.

Publish the proposal

This is the tamper-evident commitment. Post the descriptor and the proposal JSON publicly (X, Discord, the DAO forum) before the voting window opens. Anyone can later re-hash the proposal and prove it was never altered.

No drafted proposal in this session yet — draft one on step 1, or paste a published descriptor below to review its commitment.

Cast a signed ballot

Your ballot is signed locally, in this page — your key never leaves your browser. Publish the signed ballot JSON publicly; the organizer collects ballots into the Tally step.

Tally the ballots

Import the published ballots. The page re-verifies every signature against the descriptor and each voter's address key, then derives the result step-by-step. Invalid ballots are refused loudly.

0 ballots imported.

Verify a poll (standalone)

No trust in this page required. Paste the published proposal JSON and the ballots — the page re-derives the descriptor from the proposal, re-verifies every signature, and re-tallies. Any tampering gets a loud ✗ NOT PROVEN.

Honest limits