Hunch

Supporting articlesAdoption

Migrating a pool venue, step by step

λ = 0 is the rule you already run. The staged path from there to a vested pool, what to publish at each stage, and the two things that break if you skip one.

8 min readIn the paper: §4.5In the paper: §15In the paper: §12

Migrating a pool venue, step by step

You run parimutuel pools. You have decided the lock window and the flat multiple are costing you more than they save. This is the path from here to there.

The good news is structural: λ = 0 is the rule you already run. You are not replacing a settlement engine, you are moving a parameter that currently sits pinned at one end of its range. The bad news is that two things must be built before real money touches the far end, and skipping either is how this goes wrong.

Stage 0 — Decide the four published parameters

Before any code, decide what you will publish per market, because these are venue policy rather than mechanism and they belong in your rulebook next to the fee table:

parameterwhat it issane default
κcapacity coefficient — a maximum-odds cap9 for binary; unbounded for n ≥ 3
λvesting fractionstart at 0, end at 1 for the classes that want it
fee basethe reference convention charges on the accepted stake at entryyour current base, unchanged
residue ownerwho claims the fixed-point rounding residueyour fee sink

Two hard constraints. κ ≥ 1 is a domain requirement — below it no symmetric seed passes the clamp and creation voids. And the residue must have a named owner fixed before the market opens; an unassigned residue is funds nobody can withdraw.

The paper's recommendation is that all of these be committed on-chain per market, because §14 is explicit that verifiability of the settlement rule does not extend to trusting that you applied the parameters you said you would.

Stage 1 — Paper money, behind your existing payout authority

Run flow-vesting settlement in a paper twin. Not a testnet fork, not a staging environment — a live paper surface with real users making real decisions, settling behind whatever your production payout authority is today.

What you are checking. Not correctness; the conformance suite does that. You are checking behaviour: does volume actually migrate early, do your users understand a partial fill, does anyone complain that they cannot sell, and does your support load change shape.

What to instrument from day one:

  • Volume share by phase of market life. The study's shift is 32.9% → 43.9% into the first third, with late pool volume collapsing 5.1% → 1.7%. If yours does not move, the incentive is not reaching your users and something in the surface is wrong.
  • Refusal rate. At κ = 9 the study refuses 0.10% ± 0.02 of gross stake. If yours is materially higher, your markets are thinner or more skewed than the study's and κ needs raising.
  • Realized growth curves per market class. You will need these in Stage 3 and they take time to accumulate. L̂ = ln(T/t) is the naive estimator, and in thin markets it is catastrophically optimistic — agents using it realize −11.5% per entry in the sparse arm.

Stage 2 — Build the exit before you need it

This is the stage that gets skipped, and the paper is blunt that it is a precondition, not a follow-up.

Your current pools have no exit either, so it is tempting to treat this as no regression. It is not, and the reason is the late price. Under your current rule, late information enters the pool — badly, at everyone else's expense, but it enters, and your displayed ratio updates. Under λ = 1, informed late money has no reason to enter at all, so the ratio goes stale exactly when it matters most.

Two shapes, depending on market duration.

Markets long enough for a position market to form. Ship transferable positions and a cash-out affordance. A position is four numbers — outcome, principal, entry accumulator, vintage — so it trades cleanly, and its win-case payout splits into a floor tranche (principal plus accrued claims: a digital option with a known payout) and a flow tranche (whatever vests later). A holder can keep conviction and sell activity, or the reverse.

Short recurring rounds. No position market can form inside a fifteen-minute round, so the paper specifies the degenerate form: a venue-side RFQ cash-out at a published spread, and it attaches one structural requirement that is easy to get wrong —

The vault's quote must never be a mechanical function of the current pool ratio.

If it is, the manipulation the mechanism disarms comes straight back through the vault, at near-zero cost for a party that dominates both books. The quote must price from your own model over wash-excluded flow and off-market inputs.

The honest framing: this vault is a designated adverse-selection sink. It will widen or decline exactly when information is most valuable. The paper does not pretend to have solved its pricing, and lists it as an open problem. It is the acknowledged cost of this stage, and you should staff it accordingly.

What you get for building it is measurable. A stylized dealer where every late informed arrival prints at its belief shaded by half a spread produces a composite final-phase Brier of 0.054–0.057 at every spread from 2% to 20% — better than any pool arm, locked or not. That is an upper bound on what the layer can deliver, not a forecast of your vault's performance, but it establishes that the information is there and a thin layer is enough to surface it.

Stage 3 — Real money, where P4 bites hardest

Start where the mechanism's cost is lowest and its benefit highest: short-duration recurring markets at λ = 1, with the RFQ cash-out from Stage 2 built in.

Why these first:

  • Carry is negligible over fifteen minutes, so the carry limitation does not bite.
  • No exit existed anyway, so you are not taking anything away.
  • The lock window on these markets is proportionally enormous — a 60-second close on a 15-minute round is 6.7% of the market's life.
  • Binary, so finite κ is safe.

Turn the dial rather than flipping it if you want a gentler path. The λ table, from 20 seeds × 2,000 markets:

λlast-decile multipleearly-winner dilutionseed straddle: mean / worst / % positive
01.416×13.5%−18.0% / −44.4% / 16.6%
0.251.315×9.0%+27.7% / −30.6% / 70.8%
0.51.213×5.5%+73.4% / −16.8% / 97.0%
0.751.112×2.6%+119.0% / −3.0% / >99.9%
11.004×0.2%+164.7% / +10.9% / 100%

Two things to know before you park at an interior value.

The creation floor is void at every λ < 1. Not weakened — void. At λ = 0.5 the seed's measured worst case is −16.8%, and even λ = 0.75 dips to −3.0%. If your seeding programme depends on the floor, interior λ is not a halfway house, it is a different deal.

The lock-window incentive returns in proportion to 1 − λ. A buzzer snipe at interior λ pays λ + (1−λ)·M. So a market at λ = 0.5 still needs a lock, and you have given up the floor without having bought the deleted window.

There is one pleasant surprise in the table: degradation is monotone but not uniform. The late entrant's reward is exactly linear in λ, while measured mean dilution sits strictly below the linear reading at every interior λ. The dial protects early capital better than a naive reading suggests.

Stage 4 — Permissionless creation

Open vintage 0 to whoever wants to take it, with the resolution rules in place from day one rather than added later. §12's requirements are not optional hardening:

  • Freeze the accumulator at a resolution timestamp fixed at creation (or, for event-driven markets, at the earlier of a fixed outside date and the first bonded attestation). Without this, a resolver holding a winning position has a weakly dominant incentive to delay, because every extra opposing dollar vests to them at no risk. That incentive is new relative to your classic pools, where delay dilutes the winner.
  • Timeout forfeits the resolver's seed. A resolver on the losing side of a large vested payout has a strictly profitable strategy of never resolving. Forfeiture makes the stall cost 2× seed.
  • Fallback resolution is permissionless, with a bonded void declaration through the same escalation path so an honest creator of a genuinely unresolvable market is not punished for ambiguity.
  • Escalation bonds scale with the disputed payout. The seed is fixed at creation while what it secures grows: the study's $100 seed against a $2,254 mean pool is 4.4%, and the ratio only falls as a market succeeds.
  • Display the resolution premium live. Because the winning seed leg farms the losing flow, the seed always pays more in the branch with more opposing volume. The gap is two accumulator reads and it is a publicly computable bribe. Displaying it converts it into a bond at risk.

Two things that will surprise your team

Volume falls. In the behavioural study, $2,254 a market against classic's $2,845 — about 21% lower. You are trading volume for time-placement. You recover some of it from the deleted lock window, and for a real venue that closes for hours rather than 5% of a market's life that recovery is much larger than the study shows. Model both; do not assume they cancel.

Your trust metrics stop working. P5 shows that a party dominating both books of a market can print wash volume at near-zero mechanism cost — the donation is (1−f)-scaled in the washer's own share of the opposing book, so for a book-dominant participant the mechanism-level cost falls toward zero and the binding cost is your fee. In exactly the whale-seeded regime that §9 flags as the most likely real-world drift, headline volume stops being evidence of anything.

The paper's consequence: creator track-record metrics must exclude self-vested flow — flow whose vesting lands on positions of the same funding cluster, which is identifiable from the public log — and weight bonded, aged, distinct counterparties instead. Distinct-counterparty counting alone is sybil-purchasable, and volume alone is worse.

What does not change

  • Conservation, per branch, in integer units.
  • Your operator position: none, same as now.
  • Fees, custody, KYC, settlement asset.
  • Resolution mechanics (the incentives change; the oracle does not).
  • Settlement cost: O(1) per entry and per claim.

Next: What it saves, what it costs — the numbers to put in the model.