Skip to main content
In a parimutuel market, bettors do not wager against a house or a counterparty quoting fixed odds. Instead, every stake goes into a shared pool. When the market resolves, winners divide the pool in proportion to how much they staked on the correct outcome, after a small protocol fee. The key implication is that your return is not set when you bet, it is determined by the final composition of the pool at close.

How the pool works

Every market on counsel has a dedicated pool account on the XRP Ledger. When you send a Payment to that account, your funds enter the gross pool. Each outcome maps to a DestinationTag, so outcome 0 (“Yes”) and outcome 1 (“No”) accumulate in separate sub-pools within the same account. At resolution, the fee is deducted from the total pool, then the net pool is divided among winning-side stakers pro-rata by their individual stake.
1

Stake

Your XRP Payment reaches the pool account, tagged to your chosen outcome.
2

Pool accumulates

Every bet across all outcomes adds to the gross pool. The implied odds shift continuously.
3

Betting closes

Once bet_cutoff passes, the pool is frozen. No new bets are accepted after this point.
4

Resolution

The winning outcome is determined. The fee is applied and winners are paid.

Odds are indicative until close

Because any new bet changes the pool distribution, odds are never firm until bet_cutoff passes. Two values are useful for evaluating a position at any given moment:
implied_prob      = outcome_pool / total_pool
payout_per_unit   = net_pool / outcome_pool
implied_prob tells you what fraction of the total money is on a given side. payout_per_unit is the multiplier you would receive if that side wins, after the fee. Both numbers move with every new stake on any outcome.
Odds displayed before bet_cutoff are indicative. The pool can shift materially between the time you see a quote and the time your transaction confirms.

Anti-slippage: projected_implied_odds_after

Before you sign a bet, the bet-intent endpoint computes how your own stake moves the line. The response includes projected_implied_odds_after: the implied_prob and payout_per_unit for your chosen outcome after your stake is added to the pool. This is the closest thing to a pre-trade quote counsel can provide.
{
  "outcome": 0,
  "amount_xrp": 10,
  "projected_implied_odds_after": {
    "implied_prob": 0.624,
    "payout_per_unit": 1.555
  }
}
Check this number before signing. A large bet on a thin pool will meaningfully worsen its own odds.

Odds are final at close

Once bet_cutoff passes, no new bets are accepted. The pool state at that exact moment, the drops on each outcome, determines the final payout_per_unit for every bettor. There is no further price movement after close.

Worked example

Consider a 100 XRP market with 3% fee (fee_rate: 0.03):
OutcomePoolImplied ProbNet PoolPayout/Unit
Yes (0)60 XRP60%97 XRP97 ÷ 60 = 1.617×
No (1)40 XRP40%97 XRP97 ÷ 40 = 2.425×
  • Gross pool: 100 XRP
  • Fee (3%): 3 XRP
  • Net pool: 97 XRP
A bettor who staked 10 XRP on Yes would receive 10 × 1.617 = 16.17 XRP. A bettor who staked 5 XRP on No would receive 5 × 2.425 = 12.125 XRP. The house takes 3 XRP regardless of which side wins.
Individual payouts are floored to the nearest drop (1 XRP = 1,000,000 drops). Rounding residue (dust) accrues to the operator reserve rather than being distributed.

Parimutuel vs. fixed-odds

Parimutuel (counsel)

You bet against other bettors. Odds are set by the market. The house takes a fixed fee regardless of the outcome.

Fixed-odds bookmaking

You bet against a bookmaker who quotes and guarantees a price. The bookmaker absorbs the risk of a lopsided book.
On counsel, the protocol is never exposed to outcome risk. The fee is the only revenue, and it is deducted from the pool before any split.