All articles

Honest losers wanted. A Kaspa prediction market with no owner plans to settle its own bets

A brass and glass lottery drum full of mint and coral tokens, with one golden token flying out, beside the headline Honest losers wanted.
Illustration by kaspa.news, AI-generated.

Every betting market has to answer one awkward question at the end. Who decides what actually happened? Manyfest, one of the authors of the KCC-20 token standard, has spent the last few months building an answer that needs no company, no referee and no outside oracle. It is a prediction market on Kaspa where anyone can open a yes-or-no question, every bet is a token you can trade, and the bettors settle the result themselves.

The twist comes from BitCat, who designed the voting. People who bet on the wrong answer get a shot at a prize for admitting it.

There is no app to use yet. The code is not public, there is no user interface, and Manyfest aims to release a mainnet version around the end of the year. Manyfest is also blunt about the risk. Small markets will be easier to manipulate, and "inevitably, people would lose money in this social experiment" (announcement).

The hard part is not the betting

Trading on a prediction market is the easy half. You buy a share that pays out if something happens, such as "Will France win the World Cup?", and you sell it if you change your mind. The hard half is the ending, when someone has to declare the result and release the money.

Polymarket, the biggest crypto prediction market, hands that job to UMA, a separate oracle network. In 2025, anyone could propose a result by putting up a $750 bond. If someone disputes it, holders of the UMA token vote on the answer (The Block). Most of the time that works. When it fails, it fails loudly.

In March 2025 a $7 million market asked whether Ukraine would agree to a minerals deal with the United States before April. No deal had been agreed, and Polymarket itself had clarified that it was too early. The market still resolved "yes". One researcher counted 5 million votes cast from three accounts tied to a single large UMA holder, about a quarter of the total. Others argued that the regular UMA voters had simply ignored Polymarket's clarification. Either way, Polymarket said it could not refund anyone because it "wasn't a market failure" (Cointelegraph). A few months later, a market of more than $200 million on whether Volodymyr Zelenskyy would wear a suit resolved "no", even though he had appeared at a NATO summit in an outfit many outlets called a suit (Decrypt).

The deeper problem in both cases is who was voting. The people who decided the result were mostly not the people who had bet on it. They held a different token and had their own reasons to vote one way or the other.

Let the bettors decide

BitCat's idea, first sketched on Kas Smiths, the Kaspa builders' forum, starts from the opposite end. The people who vote are the people holding the market's own tokens (BitCat's sketch).

It works like this. Anyone can create a market with a question and a deadline. Anyone can then lock KAS into it, and every time they do, the market creates exactly one YES token and one NO token as a pair. That rule is what keeps the market able to pay everyone. There are always as many YES tokens as NO tokens, and all of them are backed by KAS that is already locked. The tokens follow the KCC-20 standard, with some extra rules for voting, so they are meant to be traded like any other KCC-20 token. If you think the answer is yes, you keep your YES token and sell the NO one.

When the deadline passes, every token holder can vote on the real outcome. A token only gets paid if it voted with the final result.

That creates an obvious puzzle. There are exactly as many NO tokens as YES tokens. If everyone simply votes for their own side, the vote is a perfect tie. BitCat's answer is a lottery for honest losers.

In the example numbers BitCat uses, 95% of the locked KAS goes to the winning side and 5% goes into a lottery. Only tokens from the losing side that voted for the real result can enter it. Picture a market where 100 pairs were created at 2 KAS each, so 200 KAS is locked. If the answer is yes, every YES token that voted yes collects 1.9 KAS. The other 10 KAS goes into a lottery for NO holders who voted yes anyway. If the vote ends in an exact tie, the market is cancelled and every token gets 1 KAS back.

Why one small loser can tip the whole vote

The lottery is what breaks the tie. Imagine every YES holder votes yes and every NO holder votes no. Everyone would get their 1 KAS refund. Now imagine one small NO holder switches to yes. Yes now has a majority, and that holder is the only one in the lottery, so the prize is worth more to them than their refund.

Once yes is ahead, nobody on the NO side can change the result any more. Voting no now pays nothing, and voting yes buys a lottery ticket. So every other NO holder has a reason to join. One switch starts a cascade, and the market ends with everyone voting for what really happened.

BitCat wrote this up as a formal analysis, Truth Selection in Participant-Resolved Prediction Markets, and revised the design while working on the proof (forum update). Two rules stop people from gaming the payouts. Winnings that nobody claims are burned, not shared out, so nobody earns more because others failed to vote. And the lottery is calculated as if a minimum number of losing tokens had entered, with the empty part of the prize burned too. That stops one tiny holder from forcing a false result just to grab a huge jackpot from an empty lottery.

The result is a guarantee with clear conditions. With BitCat's example numbers, the guarantee holds if people believe the true answer is even slightly more likely to win the vote and the losing side is spread across more than ten separate owners. Then the design pushes everyone toward the truth. BitCat calls it "a truth amplifier" and is careful about what that means. It makes a widely recognised truth win. It cannot create the truth if the question is unclear or the facts are disputed.

That is also why the questions have to be sharp. When a forum member suggested using it for inflation data, BitCat explained that only yes-or-no questions work. You can still ask "Will the May CPI be higher than X?", and "the question should ideally be as little ambiguous as possible" (forum reply). The Zelenskyy suit market shows what happens when a question leaves room to argue.

How Manyfest is building it

Manyfest took BitCat's design and wrote it as an Argent app. Argent is a language for Kaspa contracts in which each piece of an app is an actor, a coin on Kaspa that holds some state and decides by its own rules what it turns into next (how Argent apps are built). Each step is an ordinary Kaspa transaction, and every Kaspa node checks it against those rules.

The diagram Manyfest shared shows how a market moves through its life. A launcher creates the market. While the market is open, a mint actor issues equal amounts of the two outcome tokens. After the deadline, someone proposes a result. If nobody challenges it, the market closes and pays out, with no vote at all. If someone does challenge it, the market becomes disputed and the vote begins.

Voting happens in two rounds so that nobody can copy the crowd. First, holders commit to a sealed vote. Then they reveal it. The market ends in one of two ways, a clear result or a tie with refunds.

That propose-and-challenge step answers a question from saefstroem, who is building the Kaspa Dollar. saefstroem asked whether KAS itself is used for dispute voting, like UMA. No, BitCat replied. Token holders vote, "but like UMA, there should be an optimistic resolution that should make voting unnecessarily in most cases" (reply). The vote is the backstop for a disputed result. It is not meant to be the normal path.

Manyfest says the design fits Kaspa unusually well. "This idea could also be written as a single EVM program, but when mapping it to the state machine it actually is, it feels natural and obvious to implement it as a UTXO covenant application." smartgoo picked out exactly that line. In smartgoo's view, the huge amount of work that went into Kaspa contracts, SilverScript, Argent and the KCC standards "is starting to find 'fit'" (reply).

Nobody runs this market. Anyone could create a market on any question, and anyone could run the app's code themselves. There is no owner and no fee collector. In Manyfest's words, the system "would only benefit the network miners", who earn the ordinary transaction fees.

Michael Sutton listed four things that excited him, from the two builders working together to "the potential for a viral kaspa app" (post).

Drawing a lottery nobody can rig

A lottery needs a random number, and on a public network someone always wants to choose it. Petridish asked the obvious question, "who decides the lottery and how" (question). BitCat's answer is that the sealed votes decide it. When they are revealed, they "aggregate into a nonce that decides the lottery" (reply). Nobody can know the final number until every vote is open.

Sutton suggested an extra source of chance that comes from Kaspa itself (post). Kaspa contracts can already read recent block data for about 12 hours back, the same feature behind his idea for a steady contract clock. His proposal is to make people submit two blocks almost 12 hours apart. Both still have to be readable, so one of them must be very recent, and that leaves little room to pick a convenient block.

BitCat pushed back. At ten blocks a second, even a short grace period gives a miner many blocks to choose from, "and if it gets to 100 bps in the future even more!" (reply). Sutton then sharpened the idea into a race. After the votes are revealed, there would be a short window where anyone can submit a pair of blocks, and the pair with the largest gap between them wins, because that one is the closest to real time and the hardest to manipulate (follow-up). BitCat agreed that "that max thing does make it much stronger" (reply). Sutton also noted that timing and withholding incentives "still need thought".

What could still go wrong

The biggest risk is money from outside the market. BitCat's guarantee assumes people only care about their winnings inside this market. Someone with a large bet elsewhere, or someone willing to pay voters, could still push a false result. BitCat names the classic version, Vitalik Buterin's "P + epsilon" attack from 2015. The attacker promises to pay everyone who votes for the false answer, but only if that answer loses. If the bribe works, the false answer wins and the attacker pays nothing. Sealed votes help during the vote, but a bribe can still be paid afterwards if votes are later revealed. BitCat calls vote secrecy that stays hidden even after the result a useful next step that the current design does not cover.

Size matters too. A market with few holders and little money behind it is cheap to take over, which is why Manyfest warns that small markets can be manipulated. Only yes-or-no questions are supported. And a vague question can be argued either way, however clever the voting is.

For now this is a design and an unreleased build. No testnet version has been announced, no code has been published and no audit exists. The name is not settled either. Manyfest floated OPred, short for open prediction market, and some replies pushed back on it. Manyfest has offered to walk IzioDev through the contracts (reply), and says the project will count as a success "if it would encourage and inspire more such covenant dapps" (reply).

More Kaspa Articles

All articles