In a nutshell
Here's a summarised explanation of how market / event resolution and bonding works with Polkamarkets. Below, we discuss the concepts in more detail, with some examples.
Market/event resolution is crowdsourced in the Polkamarkets Protocol, making it truly decentralized and participant-led.
After the market/event expiration date has elapsed, POLK holders can place a bond on the outcome that they believe is correct.
Bonds can be challenged by posting a higher bond on a different outcome.
The minimum bond amount for each challenge is the double of the previous amount bonded (making it exponentially more expensive and risky to cheat).
Every time a bond is placed, a 3-day lockup period starts.
When the lockup period lapses, the final unchallenged bond wins and the chosen outcome is accepted as correct and final.
The individual who placed the final bond can claim their entire bond amount back, plus any amount bonded to incorrect outcomes, minus any amount previously bonded to the correct outcome.
Any individual who bonded the correct outcome can claim back the amount they bonded on that outcome.
Individuals who bonded the wrong outcomes will lose the right to claim back the amount they bonded.
Note that it doesn't make sense for an individual to place a higher bond on an outcome unless they're challenging a bond (ie. bonding a different outcome). Indeed, that individual will have to pay back any amount bonded to the same outcome, without having won additional tokens from a challenge.
How can I resolve markets in the Polkamarkets web application?
What is market or event resolution?
Prediction Markets, also known as Event Contracts, require that someone “decides” the correct outcome of an event. What truly happened in the real world. That someone is called an Oracle, and deciding the correct outcome is called “resolving a market”.
How are markets resolved?
Whether it is economic indicators, outcomes of political or societal events, weather data, traffic status, stock and crypto prices, or even sports results, real world data is needed to resolve a market.
In Polkamarkets Prediction Markets, a “resolution source URL” is required when creating a market, so that all participants know what the source-of-truth for resolving the market is.
For example, consider the market “Will monkeypox be named a pandemic by the WHO by the end of January 2023?”. The resolution source for this market will likely be official WHO data. How can that data be passed on the market, so that it can be resolved?
Smart contracts are only aware of what happens on-chain, and oftentimes need inputs of reliable external data. Ideally, real-time and automated data, but obtaining correct data this way is not always possible. Above all, market resolution needs to be undisputable.
So, where does the off-chain information used to correctly resolve markets come from? It can come from a centralized third party, such as an automated data feed run in an Oracle Protocol like Chainlink. Or it can come from individuals, the crowd, whose wisdom can be tapped into and incentivized using web3 mechanisms.
Polkamarkets currently uses a distributed consensus model, tapping into the wisdom of the crowd and rewarding those who participate, to determine the correct outcome of each prediction market once they expire.
What happens when a prediction market expires?
Every prediction market on Polkamarkets has an immutable expiration date, set when the market is created. When a prediction market expires, no outcomes can be bought or sold anymore, and the market enters the resolution phase.
At the resolution stage, the correct outcome must be defined so that the market can close – Outcome A (for example “Yes”), Outcome B (for example, “No”) or Invalid.
POLK token holders place bonds on the outcome they believe to be the correct (truthful) one. As soon as someone places a bond, a 3-day lock period starts. Before the lock period lapses, any user can place a bond on a different outcome, effectively disputing the previous user’s resolution.
Every time a new bond is placed, the 3-day period restarts, and the POLK amount needed to place a bond doubles. When the 3-day lock period lapses, the market is closed and the last outcome bonded is chosen as the winning outcome. At this point, participants can claim their earnings.
Note that placing a bond on the same outcome that was previously chosen is pointless, and that you will lose the amount bonded. In technical parlance, these penalizations are the equivalent to “slashing” an oracle that is providing incoherent information.
When a market resolves as invalid, users can claim back/receive the amount of outcome shares that they bought, but at the price of the outcomes at the moment of market closure, not at their original price. Markets are considered Invalid when/if the question or outcomes are considered unclear, ambiguous, or impossible.
For instance, consider the market “Which of these will replace Boris Johnson as the leader of the UK Conservative Party: Rowan Atkinson or Ed Sheeran?”. If someone other than Rowan Atkison or Ed Sheeran replaces Boris Johnson, the outcome will be “Invalid”, as the market didn’t resolve within the range of possible outcomes.
As a developer, can I use other resolution mechanisms with Polkamarkets?
Polkamarkets uses reality.eth, a battle-tested smart contract for bond escalation.
Since Polkamarkets is an extensible open source protocol, developers can modify the source and/or plug other mechanisms to resolve markets differently.
For example, developers can use Kleros to use decentralized dispute courts to resolve markets in Polkamarkets, or even modify the resolution mechanism’s source code to use an automated data feed, powered by Chainlink.