BETAANYONE is in beta on Base Sepolia. No real money is involved.What the beta means →
Skip to content

PMM V2: the market engine ​

Every market on ANYONE runs on PMM V2, the second version of our Parimutuel Market Maker: a set of smart contracts on Base that hold the money, record the positions and pay out the result. This page explains exactly how it works, from the moment you take a position to the moment you claim.

The idea in one paragraph ​

Everyone's money goes into one pool per market. When the market is resolved, the winners take the whole pool. On top of that, PMM V2 rewards being early: every position taken against you after you entered adds to what you are owed if you win. So the same amount pays more the earlier it comes in, and each new position on a side gets a little less than the ones before it.

1. Taking a position ​

You pick an outcome and an amount. Then, in a single transaction:

  1. The fee comes off the top. 1% of the amount. What is left is your principal: the part of your money that goes into the pool.
  2. Your principal joins the pool on your outcome. The market keeps one total per outcome (its stake) and the total of all of them (the pool).
  3. You get a position. It records the market, your outcome, your principal, what you paid and the moment you entered.

Each buy is its own position. Buying twice gives you two positions, each with its own entry point.

2. Being early pays: the rising floor ​

When someone takes a position, half of their principal is credited to everyone already on the other side, in proportion to how much each of them has in.

  • The credit is recorded on-chain the moment the opposing position lands. It is not an estimate.
  • It only counts flow that arrives after you entered. A position never earns credit from what came before it, and never from its own side.
  • It is paid only if your outcome wins: it is part of your winnings, not a separate payment.

The share credited is the market's counterflow rate. It is set in the factory and fixed for each market when the market is created. Markets use 50%.

This is what makes the next person on a side get in "more expensive": the positions already there have a claim on the flow that comes after them, and a newcomer does not share in what came before.

3. Resolution ​

When the race ends, the resolver records the winning outcome on-chain. From then on, every position can be claimed. See Resolution.

4. What a winning position is paid ​

payout = principal
       + rising-floor credit
       + principal × (losing pool − all credits owed to the winning side) ÷ winning stake
       + rebate

In words:

  1. Your principal back. A winning position always gets back at least what it put in.
  2. Your rising-floor credit: what opposing positions taken after yours added to your side.
  3. Your share of what is left of the losing side, after every winner's credit is paid, in proportion to your principal.
  4. The rebate: your share of the fees set aside for traders who held to the end. See Fees and the burn.

A losing position gets no part of the pool, only its rebate. The pool always adds up: winners together receive exactly the whole pool.

A worked example ​

A race, Yes against No. Amounts are principal (after the fee), and the market uses the 50% counterflow rate.

StepWhoPositionCredit recorded
1Ana100 on YesNobody is on No yet: no credit
2Bruno100 on NoHalf of 100 = 50 to Ana (the only one on Yes)
3Carla100 on YesHalf of 100 = 50 to Bruno (the only one on No)

The pool is 300: 200 on Yes, 100 on No.

If Yes wins. The losing side has 100. Ana is owed 50 of credit, so 50 is left to share between Ana and Carla by principal (100 each):

PrincipalCreditShare of the restPayout
Ana1005025175
Carla100025125

Same amount, same side: Ana entered before Bruno's position and Carla after it, so Ana is paid 50 more. Together they receive 300, the whole pool.

If No wins. The losing side has 200. Bruno is owed 50 of credit and the other 150 is his share of the rest: 300, the whole pool.

The rebate is added on top of these numbers.

The chance ​

The chance shown for an outcome is its share of the pool: stake on the outcome ÷ pool. If 200 of 300 are on Yes, Yes shows 67%. It moves with every position. See Probability and payouts.

Selling before the end ​

You can sell a position at any moment before the market ends. The sale goes to the best offer:

  1. Other traders first. You can list a position at your price; any trader can buy it, and a new position on the same outcome can take it instead of entering fresh.
  2. Then the market maker pools. Each market maker runs its own pool with its own rules, and the pools compete on price.

A position's value for a sale is its chance of winning times what it would be paid if it won. Market makers buy at that value minus their discount, then hold the position to the end and collect what any holder would.

The buyer gets the position as it is: its rising-floor credit travels with it, which is why an early position is worth more than a new one. The rebate does not: it stays with traders who hold to the end. See Can I exit early?

A sale never touches the market's pool: it is money changing hands between the seller and the buyer.

If a market is NUKEd ​

A NUKEd market never resolves. Every position can claim back its principal plus its share of the fees the market was holding. The referral part of a fee, paid at the moment of the trade, is not part of the refund. See NUKE and refunds.

The contracts ​

ContractWhat it does
FactoryCreates markets and holds the protocol settings: fee split, burn, counterflow rate, minimum position and the list of approved resolvers
Market hostHolds the pool of every market it hosts, the positions and the exit list. One host holds many markets, each with its own separate pool
Market maker poolsHold each market maker's money and the positions it bought, and enforce its mandate
Fee burnerReceives the burned share of the fees and destroys it with the token's own burn

Guarantees built into the contract ​

  • Each market's pool is isolated: one market's money can never pay another market's winners.
  • A winning position held to the end is paid at least its principal.
  • Rising-floor credits can never exceed what the losing side holds: each credit is at most half of an opposing position, by construction.
  • Claims can never be paused. Once a market is resolved or NUKEd, positions can always withdraw what they are owed.
  • The pool is never used to buy positions back. Early exits are paid only by other traders and market maker pools.