Voting Clarity
Documentation

Voting Clarity

Voting Clarity is the first voting platform on Robinhood Chain where the ballot box is a smart contract. It is the flagship utility of the $VOTING token: every topic and every vote is paid for on-chain, and every result can be checked by anyone with a block explorer.

Why Voting Clarity

Most online polls ask you to trust whoever runs them. The count lives in a database you can't see, bots vote for free, and a result can be edited quietly after the fact. For communities that make real decisions — where the treasury goes, what gets built next, who gets listed — that isn't good enough.

Robinhood Chain gave us a fast, low-cost EVM network with serious infrastructure around it. What it did not have was a neutral place to ask a question and get an answer nobody controls. We built Voting Clarity to be that place, and to be the first of its kind on the chain.

What we set out to guarantee

  • Decentralized. Topics, options and tallies are stored in the contract. There is no admin key, no server-side count and no way to edit or delete a ballot.
  • Verifiable. Every vote is a transaction with a hash. The voter, the chosen option and the fee are public on Robinhood Chain.
  • Sybil-resistant by cost. One wallet gets one vote per topic, and each vote costs $0.50 — cheap for a real person, expensive for a bot farm.
  • Real time. The site reads the contract directly and streams new ballots from the chain's event log. There is nothing in between to fall out of sync.

How a vote works

  1. Sign in. Connect a wallet, switch to Robinhood Chain (chain ID 4663) and sign a free message. Signing proves you control the address; it is not a transaction.
  2. Open a topic (optional). Write a question, 2–10 answers, a closing time between one hour and 365 days, and optionally attach an image. Pay $0.50.
  3. Vote. Pick one answer and approve $0.50 in ETH. The contract rejects a second vote from the same wallet on the same topic.
  4. Get your receipt. The site shows the transaction hash as soon as your wallet broadcasts it, then the block number when it confirms, with a link to Blockscout.
  5. Watch the tally. Percentages update every few seconds. When the closing time passes, the contract refuses new votes and the result is final.

Fees

Fees are fixed in US dollars and paid in ETH, the native asset of Robinhood Chain. At the moment of the transaction the contract reads the Chainlink ETH/USD price feed, converts $0.50 into wei (rounding up by at most one wei), and:

  • forwards exactly that amount to the treasury 0x8a79aBcf67A130fc6A696560f2A0fecB2E1Db4ef in the same transaction,
  • returns anything sent above the fee to the sender, also in the same transaction,
  • holds no fees of its own in normal operation — the only exception is the safety valve below.

The site sends the quoted fee plus a 3% cushion so a price tick between quoting and inclusion can't make your transaction fail; the cushion comes straight back. Network gas is paid separately, in ETH.

Safety valves

The contract has no admin, so it was built to keep working on its own:

  • Price feed outage. If the Chainlink feed stops answering or its price is older than 25 hours, fees switch to a fixed 0.0002 ETH per vote or topic until the feed recovers. The app shows when this is happening.
  • Treasury refuses a payment. Voting never stops. The fee is held in the contract and anyone can call flushFees() to send it on to the treasury.

Smart contract

VotingClarity is a single Solidity contract with no owner and no upgrade path. Fees, the treasury and the price feed are fixed when it is deployed.

Network
Robinhood Chain · chain ID 4663

Rules enforced on-chain

  • Title 1–160 bytes, description up to 2,000 bytes, 2–10 answers of 1–80 bytes each.
  • Voting window between 1 hour and 365 days, fixed at creation.
  • One vote per wallet per topic; votes are final and cannot be changed.
  • No votes accepted at or after the closing time.

Main functions

  • createTopic(title, description, imageCid, options, duration) — payable, emits TopicCreated.
  • vote(topicId, option) — payable, emits VoteCast with the fee and the ETH/USD price used.
  • getTopics(offset, limit), getTopic(id), choiceOf(id, voter) — free reads.
  • quoteVoteFee(), quoteTopicFee() — the wei a transaction would be charged at the current price (it can move before yours lands).
  • priceFeedHealthy() — false while the fixed fallback fee applies; flushFees() — forwards any held fees to the treasury.

Cover images & IPFS

Every topic can carry one optional cover photo. It is stored on IPFS, not on a server we control, and the contract only records the image's content identifier (CID) — so the picture attached to a topic can never be swapped: a different image would have a different CID.

What you can upload

Formats accepted
PNG, JPEG (.jpg / .jpeg), WebP, GIF (animation is kept)
Not accepted
SVG, HEIC / HEIF (iPhone default), AVIF, BMP, TIFF, PDF, video
Maximum file size
4 MB (4,096 KB)
Maximum resolution
40 megapixels (for example 8000 × 5000 px)
Recommended size
1600 × 700 px (16:7), under 1 MB
Minimum useful size
800 × 350 px — smaller images look soft

What happens to your photo

  1. Checked. The file type is read from the file's own bytes, never from its name, and the image must decode cleanly. Anything that isn't a real picture is refused.
  2. Cleaned. The photo is turned the right way up and all metadata is removed — camera details and GPS location never reach IPFS.
  3. Resized. Images wider or taller than 2400 px are scaled down so the longest side is 2400 px. Smaller images are never enlarged.
  4. Converted. Everything is stored as WebP, which keeps the photo sharp at a fraction of the size.
  5. Pinned. The result is pinned to IPFS through Pinata and its CID is written into your topic when you open it.

How it is shown

  • On the topic page the cover is displayed at a 16:7 ratio; on ballot cards at 2:1. Keep the subject near the centre — the edges may be cropped.
  • Images load through public IPFS gateways with automatic fallback, so any gateway can serve them.

Who can upload

  • You must be signed in with your wallet, and the wallet must hold at least the $0.50 topic fee in ETH on Robinhood Chain.
  • Uploads are rate-limited per wallet and per connection to keep the service fair.
  • Once a topic is opened its image is public and permanent. Don't upload anything you don't want to keep online.

Wallets

Any EVM wallet that can add a custom network works on Robinhood Chain: Robinhood Wallet, MetaMask, Rabby, Coinbase Wallet, OKX Wallet, Rainbow and others. Installed wallets are detected automatically. If yours doesn't know the network yet, the site offers to add it, or you can enter it by hand:

Network name
Robinhood Chain
Chain ID
4663
RPC URL
https://rpc.mainnet.chain.robinhood.com
Currency
ETH

$VOTING token

$VOTING is the utility token of Voting Clarity on Robinhood Chain. The ballot box is its first product: it gives the token a reason to exist that is visible on-chain every time someone opens a topic or casts a vote.

Name
Voting Clarity
Ticker
$VOTING
Network
Robinhood Chain
Decimals
18
Contract address
Published at launch
Liquidity lock
Hoodlock · proof link pending

The ballot box does not depend on the token contract: fees are paid in ETH, so voting can go live before $VOTING launches, and nothing about the contract changes when it does.

Utility

  • Protocol revenue. Every $0.50 topic and vote fee flows to the Voting Clarity treasury on-chain, where anyone can audit it.
  • Community direction. $VOTING holders can use the ballot box itself to weigh in on where the project goes next, in public and on-chain.
  • A home for Robinhood Chain communities. Other projects on the chain can run their polls here instead of building their own, bringing more activity to the ecosystem around $VOTING.

Only trust the contract address shown on this page and on @votingclarity_. Anything else claiming to be $VOTING is not ours.

FAQ

Is signing in a transaction?

No. It is a free message signature that proves you own the address. Only opening a topic and voting are transactions.

Can I change my vote?

No. A vote is final once confirmed, and the contract rejects a second vote from the same wallet on the same topic.

Can anyone delete a topic or edit a result?

No. The contract has no owner and no admin functions. Not even the Voting Clarity team can alter a topic after it is created.

Why does voting cost money?

A fee makes mass fake voting expensive and funds the treasury behind $VOTING. At $0.50 it stays within reach for anyone who wants a say.

What if my transaction fails?

A failed transaction does not record a vote and does not charge the fee, though the network still consumes a little gas. The dialog shows the reason — for example a closed topic or a vote already cast.

Something missing? Reach us on X or go vote.