Submitting an Opinion
Submitting an opinion is the core mechanism that powers Yolomarkets’ resolution process. Only verified humans, either through World ID or through a Twitter account classified as a genuine human are allowed to participate. This ensures that market outcomes are decided by real, unique individuals rather than bots or sybil attackers.
Eligibility Check
Before a vote can be submitted, the user must be recognised as a human. If they hold a valid World ID proof, they pass instantly. If they connect with a Twitter account that is flagged as human by our verifier, their wallet address is signed and approved. Only after one of these checks succeeds is the user added to the Opinion Eligibility Registry. Anyone who does not pass this validation simply cannot submit an opinion for that market, and the protocol rejects their commit transaction at the contract level.
Commit Phase (Hidden Vote)
Once eligible, the user can submit a hidden vote during the commit phase. Instead of sending the vote directly, they submit a commitment hash constructed as commit = keccak256(choice, nonce, userAddress). This hash fully conceals their actual choice. The commit phase exists to prevent early manipulation, to ensure that nobody can see vote trends while the market is active, and to make sure that even the Yolomarkets team has no visibility into which side any user picked. During this period the system only observes that a particular user has submitted a commit, without revealing anything about the content of their vote. No side information leaks whatsoever.
Reveal Phase (Actual Vote)
When the reveal phase opens, users must disclose the actual vote and the nonce they used during commit. The smart contract recomputes the hash and checks that keccak256(revealed choice + nonce + userAddress) equals the stored commitment. If it matches, the vote is accepted and counted. If the user does not reveal, their vote is ignored entirely. This ensures that the commit–reveal flow maintains full integrity while still preserving privacy during the earlier phase.
Counting the Opinions
After reveal begins and all valid votes are revealed, the contract tallies them and produces values such as votesForA, votesForB, and totalVotes = votesForA + votesForB. For example, in a market like “Polymarket vs Kalshi,” if sixty voters choose Polymarket and forty choose Kalshi, the resulting percentage becomes sixty percent. This percentage is then mapped to the correct bucket such as fifty to sixty percent, which later becomes the official result passed to the betting engine.
Resolution Output
Once counting is complete, the OpinionMarket contract publishes the finalPercentage and the finalBucketIndex. These values are then transmitted into the CTF market, which finalises the winning outcome and triggers settlement for traders holding the corresponding outcome tokens.
Opinion Givers Get Rewarded
All trading fees from the associated betting market flow into a FeeVault throughout the lifecycle of the event. After resolution, every address that voted for the correct side becomes eligible to claim its proportional share of this fee pool. Claims are processed through a Merkle-proof system, allowing each winning voter to withdraw their reward trustlessly. This mechanism directly connects truthful, accurate opinions to real economic payout, reinforcing the integrity of Yolomarkets’ human-driven resolution layer.
Last updated