HIP-4: outcome markets
HIP-4 lets a staked deployer list fully collateralised contracts settling between 0 and 1, built from validator-approved templates, which it then settles.
An outcome pays between 0 and 1 per contract, with no leverage or liquidation, so a buyer risks only the price paid. Typical subjects: a price above a level at a time, a rate inside a band, who wins a contest.
Say you buy 200 Yes at 0.35 USDC, paying 70 USDC. Settled at 1, you receive 200 USDC; at 0, nothing. A standalone outcome can settle between: at 0.25, you receive 50 USDC and No pays 0.75.
Such markets are defined by words, so validators vote in templates that fix the wording, and deployers fill typed keywords.
Yes, No and the merged book
Section titled “Yes, No and the merged book”Each outcome has two token sides, usually Yes and No (Long and Short in the scalar template). One unit of quote collateral splits into one of each, and a pair merges back. The first side pays settleFraction (0 to 1), the second 1 - settleFraction.
Both sides share one book: buying Yes at p is selling No at 1 - p, with priority by price, side, then time. A question groups outcomes of which exactly one settles to 1, plus a fallback the protocol adds (split, merge, negate).
Protocol and deployer markets
Section titled “Protocol and deployer markets”- Protocol markets recur on a fixed cadence, deployed and settled by the protocol; descriptions start
class:priceBinaryorclass:priceBucket. The first was a daily BTC mark price binary settling at 06:00 UTC. - Deployer markets are template instances under a staked deployer’s venue. On 2026-09-20 mainnet had 228 active outcomes, 21 questions and 3 deployer venues.
A deployer activates once, in Standard account mode with stake in its own staking account, claiming a permanent venue name of 2 to 4 lowercase letters (becoming an outcome deployer). It fills templates, sets a fee scale per market, and settles itself or through a sub-deployer, with no protocol deadline. The protocol checks form, not correctness.
You pay only when you close
Section titled “You pay only when you close”Each market’s deployerFeeScale sets the split: a trader pays base times scale + max(scale, 1), scale times base to the deployer and the rest to the protocol. Measured on mainnet (7,256 fills, 2026-09-12): the base is the spot schedule, referral discounts apply, only the closing side pays (every buy billed 0, every sell charged), and maker rebates are never paid.
Opening is free; closing at scale 1 costs twice the base.
Collateral is USDC by default
Section titled “Collateral is USDC by default”Each spec names a quoteToken, USDC by default; mainnet outcomes moved from USDH to USDC around June 2026. The docs say a future upgrade will require AQAv2 quote assets on HIP-4 markets.
What was announced versus what shipped
Section titled “What was announced versus what shipped”| Topic | Announced | Documented now | Observed on chain |
|---|---|---|---|
| Stake | 500k HYPE locked for 6 months | “the staking requirement”, unnumbered; 183 days must pass before deactivation | every mainnet venue deployer held just over 500k HYPE; testnet requires 100 HYPE |
| Slashing | for badly specified markets, wrong settlement, or a market left unsettled for over a week | markets contradicting their template’s semanticRestriction are malformed and slashable |
none on record; the testnet release disclaimed disputes and late-settlement slashing |
Slashing is specified but unobserved: in all 12 mainnet HIP-3 and HIP-4 deployer accounts (2026-09-20), HYPE left only by requested withdrawal.
The numbers
Section titled “The numbers”| Parameter | Mainnet | Testnet |
|---|---|---|
| Deployer stake | 500k HYPE | 100 HYPE |
| Minimum stake period | 183 days | 183 days |
| Active outcomes per deployer | 100 | 10 |
| New outcomes per deployer per day | 500 | 50 |
| Question outcomes per question | at most 100 | at most 100 |
| Deployer fee scale | 0 to 10 | 0 to 10 |
| Trader fee | base x (scale + max(scale, 1)) |
same |
| Price grid | 1e-5 ticks, 0.00001 to 0.99999 | same |
| Size decimals | 0 (whole contracts) | same |
| Deployment gas | none | none |
Encoding: side s of outcome o is 10 * o + s, appearing as the coin #<enc>, the token name +<enc> and the asset id 100_000_000 + enc (asset ids).
Before you trade an outcome
Section titled “Before you trade an outcome”- You trust a deployer. The description is the contract: read the template, values and venue.
- Positions are spot balances in
spotClearinghouseState, not perp state (settlement).
Deploying from code
Section titled “Deploying from code”Deploy with a top-level outcomeDeploy carrying venue and operation; the old spotDeploy with an outcome key is rejected. keywordToValue is signed as a sorted array of pairs (market shapes).
- Deploy responses carry no outcome id. Find it in
outcomeMetaby name and description. - The
userOutcomenegate key isnegateOutcome, notnegateQuestionas earlier documentation and some SDK examples had it. - Fallback capacity is unresolved. The docs say a question of N outcomes registers N + 1, all counting toward the active cap; deployer codebases disagree, nothing measured settles it, and the daily cap is undocumented. Check
outcomeDeployerLimitsbefore and after.
For the trader’s view, see what an outcome market is; for the deployer’s duties, outcome templates and keywords and settling outcomes.