Skip to content

Prototype. Not a real election. Not a For You feature. Ranking and the ballot box stay separate.

Method

Civic is a ballot layer next to X-style identity. It is not a ranking feature. This build is a design prototype — not a real election.

One person, one vote

Government ID verification binds a uniqueness token to a person. A handle is not a franchise. A second account that carries the same token cannot cast a second ballot — including in the share-weighted org example, where weight is applied once.

Where eligibility comes from

  • Uniqueness — from ID verification. Raw IDs are never stored. The board never sees the token; the receipt shows a short fingerprint.
  • Location — from X About this account (inferred country and city). City and national polls read that field, not a scanned address.
  • Shares — from a record-date cap table in the org scope. Only that example is share-weighted.

No results before close

Open elections publish participation — how many ballots or shares have been recorded — and hide the running tally. A live count of choices would turn the ballot into a feed. After close, the aggregate is public, with turnout and whether quorum was met.

Receipts and the board

A ballot writes a SHA-256 commitment of election | choice | nonce. The board stores the hash, a confirmation code, a timestamp, and the weight. The choice stays on the voter's receipt. Looking up the code proves inclusion without opening the vote.

Who may create what

Org and city polls can be drafted in this demo. National and planetary polls require a petition of in-scope, ID-verified accounts plus Civic review. The form simulates that gate rather than pretending a single account can bind a planet.

Why ranking stays out

If For You can promote a question, the election becomes content. Civic has no replies, no quote-posts, no impression score on the charter. Distribution is: you open Civic, or you don't. That is the point.

X Polls todayX Civic
A tweet with buttonsA franchise with a charter
Lives in the feed; ranking can amplify itOutside For You; ranking cannot touch it
One account, one clickOne human, one uniqueness token
Running bars while openParticipation only; tally at close
Anyone can launch a viral pollNation and planet require petition + review
Replies are the recordReceipt + public commitment board

What this does not solve

A prototype cannot prove coercion resistance on a phone, recover from a compromised device, or stand in for a statute. It can show the product boundary: identity in, ranking out, sealed until close.

Try the identity switcher

  1. As @maya (Israel, 10 Acme shares), open the Tel Aviv or Acme elections and vote.
  2. Switch to @maya.alt — same uniqueness token — and try to vote again. It fails.
  3. Switch to @jordan (United States, 0 shares) and watch city, nation, and org eligibility drop.
  4. Switch to @riley (not ID-verified). No uniqueness bind, no ballot.
  5. On the closed planetary poll, look up XC-K7QM-2N4P and download the audit log.

The product ask · Pick a scope. This is a design prototype. The ranking algorithm and the ballot box are separate systems.