DRAFT v0.3July 2026

Parl: Parimutuel Prediction Markets Protocol

Infrastructure for infinite-scale, market-maker-free prediction markets on EVM-compatible chains. Permissionless market creation with auto-categorization, optimistic oracle, and Chainlink Functions integration.

License: MIT
Network: Avalanche Fuji (43113)
Status: Testnet (v2 contracts)

Abstract

Prediction markets are powerful tools for aggregating information and forecasting future events. However, existing implementations face a fundamental trade-off between liquidity and market breadth. AMM-based markets (like Polymarket) require active liquidity provisioning, which concentrates activity on a handful of high-volume markets. Long-tail markets — the thousands of niche or short-lived events — remain underserved.

Parl introduces a parimutuel pool mechanism that eliminates the need for liquidity providers entirely. Each market operates as an independent pool: all bets are collected, and winners split the pool proportionally. This design means any market — no matter how niche — can exist from day one with zero liquidity bootstrapping.

This paper presents the Parl protocol v0.3: its mathematical model, smart contract architecture (PoolEngine v2, MarketFactory, ParlOracle), resolution framework (Optimistic Oracle + Chainlink Functions), auto-categorization system, data API and indexer architecture, comparison with Polymarket, token economics, and value loop game design. The protocol is deployed on Avalanche Fuji testnet with full end-to-end functionality including permissionless market creation, auto-categorization, and a Polymarket-inspired user dashboard with probability displays.

1. Problem Statement

1.1 The Liquidity Bottleneck

Prediction markets require liquidity to function. In traditional order-book markets, market makers provide continuous quotes. In AMM-based markets, liquidity providers deposit assets into pools to enable trading. Both models suffer from a cold-start problem: a market with no liquidity is functionally dead.

This creates a power-law distribution of market activity: 80%+ of volume concentrates in fewer than 5% of markets. Niche, timely, or experimental events — the very class of events where prediction markets create the most informational value — never gain traction.

1.2 The Permission Barrier

In most prediction market platforms, creating a market requires either platform approval (Polymarket, Kalshi) or significant technical expertise (Augur, Gnosis). This gatekeeping limits the diversity of markets and slows the platform's ability to react to current events.

Parl solves this with permissionless market creation via a MarketFactory contract. Any user with an EVM wallet can create a market in a single transaction, paying only gas plus a minimal anti-spam creation fee. No approval, no KYC, no technical barriers.

1.3 Market Maker Incentives

AMM-based prediction markets require LPs to deposit capital into outcome-specific pools. This exposes LPs to adverse selection — informed traders bet against mispriced pools, and LPs absorb the loss. Over time, LPs demand higher fees or exit, reducing market efficiency.

Parl solves both problems by eliminating the concept of a "liquidity provider" entirely. In a parimutuel system, the bettors are the pool. Every new bet increases the pool, and the odds automatically adjust to reflect the new distribution.

2. The Parimutuel Mechanism

2.1 Historical Context

Parimutuel betting (from French pari mutuel, "mutual stake") originated in 19th-century horse racing. All bets on a race are pooled together; after deducting a commission, the pool is divided among winning tickets. The odds are not set in advance — they emerge from the distribution of bets.

2.2 Mathematical Model

Core Equations

Total pool (gross):
P = Σᵢ bᵢ where bᵢ = all bets in market
Pool after fee:
N = P × (1 − f) where f = platform fee
Winning pool (total bets on winner):
W = Σⱼ bⱼ where outcomeⱼ = winner
Per-bettor payout:
payout(b) = (b / W) × N
Implied odds for outcome k:
odds(k) = P / Σᵢ bᵢ for outcome i = k

2.3 Key Properties

Zero Slippage

Since all bets pool together, there is no slippage. Every bettor gets the same implied odds at the time of their bet.

Infinite Liquidity

A market can exist with just 1 wei deposited. The pool grows with every bet naturally.

No LPs Needed

No liquidity providers, no impermanent loss, no AMM curve math. Purely additive pools.

Fair Odds

Odds reflect the collective wisdom of all bettors, not the pricing model of an algorithm or LP.

2.4 Implied Probability & Price Display

Parl calculates and displays implied probabilities for every outcome in every market, matching the pattern used by Polymarket. The probability of outcome k winning is:

probability(k) = pool(k) / totalPool

These probabilities are computed server-side by the Parl Indexer and served through the API. The frontend renders them as visual bars with percentage labels, giving users an intuitive sense of market sentiment. A market with 70% probability on outcome A and 30% on outcome B immediately signals crowd wisdom without requiring users to compute pool ratios manually.

3. Protocol Architecture

3.1 Design Philosophy

Parl is designed as a minimal protocol layer. The core contract handles three operations: create markets, place bets, and resolve + claim. Everything else — frontend UX, data indexing, notifications — is built on top as separate services.

3.2 Smart Contracts (V2)

Parl v2 introduces a three-contract architecture that separates concerns and enables permissionless market creation:

Core

PoolEngine

0xB3702B20900AE748A68287B75b6065284081be00

The core parimutuel engine. Handles market state, bet placement, payout calculation, and resolution. In v2, createMarket() is permissionless — any address can create a market. Single contract, no proxies, minimal attack surface.

Gateway

MarketFactory

0x95b38D36D50BcFd4E4c875c640EB1627b48585eC

Permissionless market creation gateway. Users call createMarket() with a small anti-spam fee (0.01 AVAX). The factory validates inputs, forwards to PoolEngine, and collects fees that can be withdrawn by the protocol owner.

Oracle

ParlOracle (Optimistic)

0xb650C22EB696F68EdB14fFEd62E528E7E1FCbDC2

An optimistic oracle with a challenge window. Anyone can propose an outcome with a bond; anyone can dispute within the window; after the window expires without dispute, the market is resolved. Bonds are slashed on dishonest proposals.

Future

ParlAutoResolver (Chainlink)

Not deployed (compiled)

A Chainlink Functions consumer for automated resolution via external APIs (CoinGecko, sports scores, weather). Registered as a resolver on PoolEngine; triggered by anyone paying for the request.

3.3 Off-Chain Services

Parl Indexer (Rust)

Monitors the chain for PoolEngine events using ethers-rs. Maintains a PostgreSQL database of markets, bets, claims, and fee ledger. Auto-categorizes markets on creation. Polls every 5 seconds with exponential backoff for rate-limit resilience.

Parl API (Rust, Actix-web)

REST API exposing market data, probability calculations, categories, simplified market listings (Polymarket-compatible format), and bettor queries. Six endpoints serving data to the frontend and third-party integrators.

Parl Frontend (Next.js)

Dune-inspired dark UI with Space Grotesk typography, gradient accents, and OLED backgrounds. Features include category-filtered market browsing, probability bars, real-time search, wallet connect via MetaMask, user dashboard with charts, and a Create Market modal.

End-to-End Data Flow

UserFrontendMarketFactoryPoolEngineEventsIndexerDBAPIFrontend

4. Resolution & Oracles

4.1 Resolution Model

Each market has a designated resolver address. Only this address can call resolveMarket(marketId, outcomeIndex, proof). After resolution, winners can claim their payout at any time via the claim(marketId) function.

4.2 Optimistic Oracle (ParlOracle)

The ParlOracle implements a propose-dispute-resolve pattern inspired by UMA's optimistic oracle design but simplified for Parl's use case:

1
Propose: Any address calls oracle.propose(marketId, outcome), posting a bond in AVAX. The bond size is set at contract creation (configurable).
2
Dispute Window: For a configurable period (default 4 hours on Fuji), any address can dispute the proposal by calling oracle.dispute(marketId). The disputer must also post a bond.
3
Resolve: If the dispute window expires with no dispute, anyone can call oracle.executeResolution(marketId). The ParlOracle calls PoolEngine.resolveMarket(). The proposer gets their bond back.
4
Slashing: If a dispute occurs, the dispute goes to a final arbitrator (initially the deployer, later a multisig or DAO). The losing party's bond is slashed and awarded to the winner.

4.3 Chainlink Functions (Planned)

For automated, data-driven resolution, Parl includes ParlAutoResolver, a Chainlink Functions consumer contract. This enables markets to resolve automatically based on real-world API data:

Crypto Prices

CoinGecko / Binance API — "Will BTC exceed $100k?"

🏀

Sports Scores

TheSportsDB / ESPN API — "Will Lakers win?"

🌤️

Weather Data

OpenWeatherMap API — "Will temp exceed 30°C?"

4.4 Oracle Options Summary

TypeTrust ModelBest For
EOA (Manual)Single partyTest markets, managed events
ParlOracle (Optimistic)Bonded proposer + disputeSubjective outcomes, sports, politics
Chainlink FunctionsDecentralized computationData-driven events (prices, weather)
Gnosis Safe (Multisig)Multi-party M-of-NCommunity-governed markets

5. Permissionless Market Factory

5.1 Motivation

In Parl v1, only the contract owner could create markets. While this was safe for initial testing, it fundamentally limited the protocol's utility. V2 introduces the MarketFactory contract — a permissionless gateway that any user can call.

5.2 Factory Design

User Flow

1
Connect Wallet: User connects MetaMask (or any EVM wallet) to the Parl frontend.
2
Fill Form: User enters: question, outcomes (one per line), resolver address, and fee percentage (1-5%).
3
Sign & Submit: User clicks 'Create Market'. The frontend computes a deterministic marketId via keccak256 and encodes the function call.
4
Transaction: MetaMask prompts user to confirm. The transaction calls MarketFactory.createMarket() with 0.01 AVAX creation fee.
5
On-Chain: MarketFactory validates inputs, forwards to PoolEngine, and emits MarketCreated event.
6
Indexed: Parl Indexer detects the event, auto-categorizes the market, and stores it in PostgreSQL.
7
Live: Market appears in the frontend immediately. Anyone can browse, bet, and eventually claim.

5.3 Anti-Spam & Economics

Market creation requires a 0.01 AVAX fee (~$0.0003 at current testnet prices, negligible in value but sufficient to prevent spam attacks). The fee is configurable by the protocol owner. Collected fees accumulate in the factory contract and can be withdrawn by the owner via withdrawFees().

Excess payments are automatically refunded to the user. If a user sends 0.1 AVAX for a 0.01 AVAX fee, 0.09 AVAX is returned immediately in the same transaction.

Factory Contract Interface

// Anyone can call
factory.createMarket(keccak256(...), ["Yes","No"], oracle, 200)
// with value: 0.01 AVAX

6. Auto-Categorization

6.1 Category Detection

Parl implements a server-side auto-categorization system that analyzes market outcome strings and assigns a category. Categories are stored in the database and served via the API, enabling Polymarket-style category filtering in the frontend.

6.2 Category Hierarchy

The categorization engine uses keyword matching with a priority hierarchy to avoid false positives. For example, "Party A wins election" contains "win" (sports keyword) but "election" (politics keyword) takes priority:

PriorityCategoryKeywordsExample
1 (highest)Politicselection, president, congress, senate, party, vote"Party A wins election"
2Cryptobtc, bitcoin, eth, ethereum, solana, defi, tvl, nft"BTC exceeds $100k"
3Weathertemperature, storm, hurricane, celsius, climate, rain"Temp above 30°C"
4Technologyai, gpt, openai, spacex, tesla, satellite, launch"GPT-5 launches"
5 (lowest)Sportsnba, nfl, team, win, match, goal, soccer, ufc"Lakers vs Celtics"

6.3 Frontend Integration

The frontend displays category badges with distinct colors:

SportsCryptoPoliticsWeatherTechnologyGeneral

Users can filter markets by category via tab buttons in the frontend, and the API supports ?category=sports query parameters for programmatic filtering. The /api/categories endpoint returns all categories with market counts.

7. Data API & Indexer

7.1 Indexer

The Parl Indexer is a Rust binary that connects to Avalanche Fuji via WebSocket/HTTP and listens for PoolEngine events (MarketCreated, BetPlaced, MarketResolved, ClaimProcessed). It maintains a PostgreSQL database with 6 tables:

TableRowsPurpose
marketsActiveMarket metadata, status, pool size, category
betsActiveBet receipts per user per market
claims0Claim records for resolved payouts
fee_ledger0Accumulated protocol fees
indexer_state1Last indexed block for resume

7.2 API Endpoints

EndpointDescriptionParams
GET /api/marketsList markets with probabilities?status=&category=
GET /api/markets/:idSingle market detailUUID or hex ID
GET /api/markets/:id/betsBets for a marketUUID
GET /api/markets/:id/payout/:addrCalculate payoutUUID + address
GET /api/betsBettor's bet history?bettor=0x...
GET /api/simplified-marketsLightweight market list?category=
GET /api/categoriesCategories with countsNone
GET /healthService healthNone

7.3 Simplified Markets Format

The /api/simplified-markets endpoint returns a lightweight JSON format designed for frontend tables, inspired by Polymarket's API format:

[
  {
    "id": "9a228815-...",
    "question": "BTC exceeds $100k | BTC below $100k",
    "outcomes": ["Yes", "No"],
    "status": "active",
    "category": "crypto",
    "total_pool_avax": "0.0100",
    "volume_avax": "0.0100",
    "probabilities": [55.0, 45.0],
    "created_at": "2026-07-02T00:26:50Z"
  }
]

8. Token Economics

8.1 Fee Model

Parl generates revenue through platform fees on each market. Market creators set the fee at creation time, expressed in basis points (100–500 bps = 1%–5%). Fees are deducted from the total poolbefore payout distribution.

Fee Tiers

TierFee (bps)RequirementBest For
Standard200 (2%)NoneGeneral markets
Premium100 (1%)Stake 1,000 $PARLPower creators
Zero0 (0%)Stake 10,000 $PARLBootstrapping
Negative−100 (−1%)DAO approval + stakeSubsidized / featured

Fee Distribution Flow

Protocol treasury50%Accumulated, governed by DAO
Market creator25%Direct incentive for creators
$PARL stakers25%Distributed pro-rata to stakers

💡 Negative fees are a powerful bootstrapping tool. A market creator (or third party) can subsidize a market so that winners receive morethan the total pool — the difference is covered by a subsidy pool. This lets platforms attract users with “boosted odds” events.

8.2 $PARL Token Model

$PARL is the native protocol token, designed to align incentives across market creators, bettors, stakers, and the broader ecosystem. No token is deployed on testnet; all mechanics below are planned for mainnet launch.

Token Utility

Fee Discounts

Stake $PARL to access lower fee tiers — from 2% down to 0% or even negative fee markets.

Staking Rewards

25% of all protocol fees are distributed to $PARL stakers pro-rata. Yield scales with volume.

Market Creator Bonds

Creators stake $PARL to signal quality. Higher stakes unlock lower fees and featured placement.

Governance

$PARL holders govern fee splits, treasury allocation, oracle whitelists, and protocol parameters.

Oracle Staking

Resolvers stake $PARL as a bond against dishonest resolution. Slashed on dispute loss.

Buyback & Burn

A portion of treasury fees is used to buy back $PARL from the market, creating deflationary pressure.

Token Supply & Distribution (Proposed)

Allocation% of SupplyVesting
Ecosystem & Rewards40%4-year linear vest
Team & Advisors20%3-year cliff + 2-year linear
Investors15%2-year cliff + 1-year linear
Community Sale10%No lock, TGE available
Treasury10%DAO-governed
Liquidity Pool5%Initial DEX listing

Token Flywheel

More VolumeMore FeesBuyback $PARLPrice SupportHigher StakingLower FeesMore Volume

💡 Tokenomics is in active design. All figures above are proposals for community discussion. No $PARL token is deployed or available for trading. TGE is not before mainnet.

9. Value Loops & Game Design

Prediction markets, at their core, are games of coordination and prediction. The parimutuel model unlocks game-design primitives that AMM-based markets cannot replicate. This section explores the engagement loops, social mechanics, and game systems that turn Parl from a financial protocol into a platform people want to use.

9.1 Pool Boosters (Tipping)

Anyone can deposit additional funds into a market pool aftercreation. This increases the total payout for winners without affecting the distribution of existing bets.

Use Cases

Community Tipping: A YouTuber promotes a market and tips the pool to create buzz. Everyone who bets wins more.
Subsidized Promotions: A brand sponsors a prediction market about their product launch. The boosted pool attracts bettors.
Creator Rewards: Market creators can donate a portion of their fee earnings back into the pool to signal confidence.

9.2 Outcome NFTs (Bets as Collectibles)

Every bet is minted as an NFT — a non-transferable or optionally transferable token representing a position in a market. This turns betting into a collecting mechanic.

Bet Provenance

Each NFT tracks when you bet, how much, and at what implied odds. A permanent on-chain record.

Collector Rarity

Early bets on long-shot outcomes that win are rare artifacts. A bet on an event at 100:1 odds is a trophy.

Outcome Badges

Correctly predicting a series of events earns composite badges (e.g., 'Perfect Week', 'Oracle Tier 3').

Secondary Markets

Transferable bet NFTs enable a secondary market for positions. Sell your winning ticket before resolution.

9.3 Manager Mode

Inspired by the engagement systems behind EA Sports, Monopoly Go's event loops, and NBA Top Shot's collection mechanics, Manager Mode is a gamified layer over Parl markets:

🎮

Manager Mode Mechanics

Prediction Streaks: Consecutive correct predictions earn streak multipliers. A 5-streak doubles your next payout. Streaks reset on a miss — creating tension and comeback narratives.
Market Quests: Daily or weekly challenges: 'Bet on 3 crypto markets today', 'Correctly predict an underdog', 'Claim 5 payouts in a week'. Quests reward $PARL or exclusive badges.
Level & XP System: Bettors earn XP per bet and per correct prediction. Levels unlock: custom profile themes, priority queue, reduced fees, and early access to curated markets.
Squad / Syndicate: Users form prediction syndicates. Combined correct-prediction streaks earn squad bonuses. Leaderboards per squad create social competition.
Mystery Markets: Periodic blind markets where the description is hidden until a threshold pool is reached. Creates FOMO and collective discovery.
Market Crafting: Combine 3 correct bet NFTs to 'craft' a special prediction ticket with boosted odds on a curated market.

9.4 Bettor Reputation & Trust Scores

Every address builds an on-chain reputation based on prediction accuracy, volume, and longevity. This reputation feeds into market creation trust scores.

92%

Oracle Score

% of correct predictions over lifetime.

💰

Volume Score

Total AVAX wagered across all markets.

Sybil Resistance

Linked to on-chain identity (ENS, Gitcoin Passport).

9.5 Social & Viral Mechanics

Shareable Prediction Cards

Auto-generated images of your bet and implied odds. Designed for Twitter, Telegram, and Farcaster.

Referral Loops

Refer a friend, earn a % of their first week's fees.

Market Embeddings

Any market can be embedded as an iframe or widget.

Reaction Markets

Quick one-click prediction on live events. Snackable, shareable.

9.6 The Flywheel

Game MechanicsRetentionReferralsMore UsersMore MarketsVolumeReturns to Game

10. Comparison with Polymarket

Polymarket is the dominant prediction market platform by volume, using a CLOB (Central Limit Order Book) model with AMM-like liquidity provision via CTF (Conditional Token Framework). Below is a detailed comparison with Parl's parimutuel approach:

DimensionParlPolymarket
Market ModelParimutuel poolCLOB + CTF (ERC-1155 tokens)
LiquiditySelf-funding (bettors = pool)Requires LP deposits
SlippageZeroConcentration-dependent
Gas per bet~80k wei~200k wei (token mint + swap)
Market CreationPermissionless (via Factory)Platform-approved / gated
Long-tail Viability✅ Any event works day 1❌ Needs LP bootstrapping
Oracle ModelOptimistic + ChainlinkUMA Optimistic Oracle
Dispute MechanismBonded challenge windowUMA DVM (governance vote)
Data APIOpen, 8 endpointsOpen (Gamma, Data, CLOB APIs)
FrontendOpen source, customizableProprietary
Token$PARL (planned)No native token
Game MechanicsBuilt-in (Manager Mode)None
Auto-Categorization
Implied Probability✅ Pool ratio display✅ AMM price display
ChainsAvalanche Fuji (testnet)Polygon (mainnet)
Audit StatusNot yetAudited
SDK / API AccessREST API, openREST + WebSocket, gated

10.1 Key Takeaways

Polymarket's CLOB model provides deep liquidity for high-volume markets (like political events) and enables sophisticated trading strategies. However, it suffers from the cold-start problem — new markets require LP deposits before any trading can occur.

Parl's parimutuel model is fundamentally better suited for long-tail markets the thousands of niche events where prediction markets create the most informational value. A market for "Will it rain in Jakarta tomorrow?" can exist with just 0.01 AVAX in the pool and still function perfectly.

Additionally, Parl's permissionless creation, game mechanics, and open-source frontend make it more accessible for developers and communities to build on top of the protocol.

11. Product Roadmap

Phase 0 — Testnet

✅ Active (v2)
  • PoolEngine v2 deployed (permissionless createMarket)
  • MarketFactory live with 0.01 AVAX creation fee
  • ParlOracle (Optimistic Oracle) deployed & verified
  • ParlAutoResolver compiled (Chainlink Functions)
  • Indexer + API + Frontend with categorized markets
  • Auto-categorization (sports, crypto, politics, weather, tech, general)
  • Probability calculations & implied odds display
  • Polymarket-inspired UI with Dune design tokens
  • User dashboard with wallet connect, charts, bet history

Phase 1 — Mainnet Alpha

🔜 Q3 2026
  • Smart contract audit (third-party)
  • Multi-chain deployment (Ethereum, Base, Arbitrum)
  • Multisig oracle support (Gnosis Safe)
  • Pool boosters (market tipping)
  • Creator reputation system
  • SDK / API public documentation
  • Token generation event ($PARL)

Phase 2 — Gamification

🔜 Q4 2026
  • Manager Mode (streaks, XP, quests)
  • Outcome NFTs & crafting
  • Bettor reputation & trust scores
  • Dispute mechanism with bonded challenges
  • Leaderboard and squad systems
  • Mystery markets

Phase 3 — Social & Ecosystem

🔜 2027
  • Referral & syndicate systems
  • Shareable prediction cards (OG images)
  • Market embeddings / widgets
  • Aggregator API for third-party frontends
  • Push notifications / webhooks
  • Conditional markets (if-this-then-that)
  • Permissionless oracle network
  • Mobile SDK (React Native)

12. Risk Factors

Smart Contract Risk

High

The PoolEngine contract has not been formally audited. Bugs could result in loss of funds. Users should only deposit what they can afford to lose.

Oracle / Resolver Trust

High

The resolver address controls market outcomes. A malicious or compromised resolver can resolve dishonestly. Production systems should use multisig, ParlOracle, or Chainlink.

MarketFactory Fee Risk

Medium

The creation fee is configurable by the owner. While locked to 0.01 AVAX for testnet, a malicious owner could raise it. Future versions will include fee caps.

No Dispute Mechanism (v0.1)

Medium

There is no on-chain dispute or challenge mechanism in the current version. Resolved outcomes are final from PoolEngine's perspective. The ParlOracle provides this at the oracle layer.

Testnet Limitations

Low

Parl is deployed on Fuji testnet. AVAX on testnet has no real value. The protocol may behave differently on mainnet with real economic stakes.

Regulatory Risk

Variable

Prediction markets operate in a complex regulatory landscape. Operators should seek legal counsel before launching production markets.

⚠️ Disclaimer: This whitepaper describes a protocol in active development. All specifications are subject to change. Nothing in this document constitutes financial or legal advice.

13. Conclusion

Parl introduces a novel approach to on-chain prediction markets by leveraging the parimutuel mechanism. By eliminating the need for liquidity providers and AMM curves, Parl enables a fundamentally different market structure — one where any event, no matter how niche, can have a liquid market from the moment of creation.

The protocol is live on Avalanche Fuji testnet (v2 contracts) with full functionality: permissionless market creation via MarketFactory, auto-categorization across six categories, an Optimistic Oracle for honest resolution, Chainlink Functions integration for automated data-driven resolution, a comprehensive data API, and a Polymarket-inspired user dashboard with probability displays.

With the inclusion of token economics designed to align incentives and game mechanics inspired by the best engagement systems in consumer technology, Parl is positioned not just as a financial protocol — but as a platform that people genuinely enjoy using.

Parl Protocol Whitepaper — DRAFT v0.3July 2026 · Open source (MIT)