★ WHITEPAPER ★

OpinionMarketCap.
A Hardened Marketplace
for Opinions.

VERSION 3.0MAY 2026BASE MAINNET · V4 + V2
ABSTRACT

OpinionMarketCap (OMC) is a decentralized marketplace that lets anyone mint a question and have its current answer continuously discovered by an on-chain market. Where free platforms surface the loudest take, OMC surfaces the one with the most money behind it. Where centralized search ranks by SEO and ads, OMC ranks by economic conviction.

This paper describes the protocol as deployed on Base mainnet in May 2026: a modular 5-contract system, V3 dynamic pricing with market-regime simulation, and V4 exit mechanics (Self-Exit + Vacant Slot Reclaim) that prevent any participant from being permanently trapped in a stale position. Together they create a self-sustaining ecosystem where information providers — not intermediaries — capture the value they create.

Supersedes v2.0 (Jan 2025) and v1.0 (Apr 2025). For the changelog see Chapter 07.

CHAPTER 01

Motivation.

The internet's opinions are free. That's the problem. A free opinion is a noisy opinion — gameable by bots, SEO, engagement farming, and pure social pressure. OMC asks a simpler question: what does a market actually believe?

The $20 bet

My kids couldn’t agree which Harry Potter book was best. The elder said: ‘I’ll give you $20 if you agree with me.’ The younger took the bill. The next day they both agreed on Prisoner of Azkaban. Money settled a debate facts never could. That was the spark.

— Axel, OMC founder

From spark to protocol

  • A $1 economic commitment to an answer is more informative than 10,000 likes — because likes are free and money isn’t.
  • A market for opinions doesn’t need oracles, judges, or moderation — the price IS the verdict.
  • A perpetual market — one that never resolves — captures the way real arguments live. "Best CRM" gets re-litigated every year for a decade.
  • A protocol with exit mechanics — V4 Self-Exit + Vacant Reclaim — ensures no participant is trapped if a market goes stale.

OMC is the operationalisation of that insight: a question is a market, the current answer is its price, and the next person to disagree must pay for the privilege of being heard.

CHAPTER 02

Introduction.

Existing platforms determine information quality through opaque algorithms, centralized moderation, or ad-driven incentives that prioritise engagement over accuracy.

Traditional limitations

  • Reliance on algorithmic interpretation of content quality
  • Vulnerability to SEO manipulation and content farms
  • Misaligned incentives: advertisers — not information providers — capture value
  • Centralized control of ranking and visibility
  • No mechanism to settle perpetual debates (best CRM, GOAT athlete, best pizza)

What OMC does differently

  • Information value is set directly by market forces (price = consensus)
  • Question creators earn 3% royalty on every trade — forever
  • Answer owners capture 95% of every flip
  • Communities can pool funds to acquire high-value answers (PoolManagerV2)
  • No platform extraction beyond a 2% fee
  • Stuck positions can always exit — V4 introduces a hard guarantee
PlatformQuestionAnswerRankingValue Distribution
Google"Best programming language 2025?"Multiple SEO-driven resultsAlgorithm + AdsAd revenue to Google
OMC"Best programming language 2025?""Python (AI ecosystem)"Market price · 35 USDC95% owner · 3% creator · 2% platform

2.1 · OMC is not a prediction market

Prediction markets (Polymarket, Kalshi, Augur) and OMC share one ancestor: pricing information via wagers. But they solve different problems and the surface-area gap is three orders of magnitude wide.

DimensionPrediction marketsOMC
Market size~500 active markets (curated)Unbounded — every question is a market
Market lifespanResolves ONCE, then diesPerpetual — never resolves
Outcome typeBinary Yes/No (or short enum)Open-text answer; current king is consensus
ResolutionExternal oracle / committeeMarket itself (price IS the answer)
CreationPlatform-gatedPermissionless — mint in 60s
Addressable scale~500 questions you can bet on100M+ keywords on Google Ads alone

What that 200,000× gap unlocks: opinion topics that don’t resolve to an event (best CRM, GOAT athlete, best pizza, most overhyped CEO) can have permanent on-chain consensus. Brands can be the answer. Communities can collectively own a take. Creators mint markets and earn royalties forever. None of this works under "binary outcome, expires when the event ends."

CHAPTER 03

System Overview.

OMC is built as a modular 5-contract system on Base. At its core are three primitives: Questions, Answers, and Pools.

3.1 · QUESTIONS

The market unit.

Each question has a unique ID, a creator who pays a flat 2 USDC spam fee + locks an initial price (1–100 USDC) as recoverable stake, and a creator address that earns 3% royalty on every future trade — forever.

60 chars question · 60 chars answer · 120 chars description · 1–3 categories

3.2 · ANSWERS

The contested slot.

The current answer is the market-validated consensus. Ownership transfers via purchase at NextPrice — computed dynamically by PriceCalculator. Full history is on-chain. Ownership transfer (gifting) is free and supported.

3.3 · POOLS (V2)

Collective conviction.

Multiple users co-fund the purchase of an expensive answer. Pool creators pay 5 USDC; contributions are free (no per-contributor fee). Rewards distribute proportionally. V2 adds stale-exit dissolution (Ch. 05).

Modular architecture

OMC is deployed as a 5-contract system + 3 linked libraries. Each contract is UUPS upgradeable, role-gated, and under the 24 KB Base bytecode limit.

ComponentTypeRole
OpinionCoreV4ContractMarkets · trades · self-exit · reclaim
PoolManagerV2ContractPool lifecycle · stale-exit dissolution
FeeManagerContractAccumulated fees · creator royalties
OpinionAdminContractParameter governance · moderation
OpinionExtensionsV2Contract40 categories · extension slots
SelfExitLibLibraryExit math + state transitions (V4)
PriceCalculatorLibraryMarket-regime price calculation (V3)
ValidationLibraryLibraryInput bound checks
CHAPTER 04

Economic Model · Dynamic Pricing.

V3 replaced the original fixed +10% pricing with a market-regime simulator. Each trade samples one of four regimes weighted by topic activity, producing realistic price moves that respond to demand.

4.1 · Market regimes

Each new trade calls PriceCalculator.calculateNextPrice which samples one of four regimes:

RegimeBase prob.Price moveBehavior
CONSOLIDATION25%−10% → +15%Range trading, slight bullish bias
BULLISH TRENDING60%+5% → +40%Steady gains, most common regime
MILD CORRECTION15%−20% → +5%Limited pullbacks
PARABOLIC2%+40% → +80%Extreme moves on hot topics (capped at +80%)

Regime weights adapt to topic activity:

Activity tierThresholdAdjusted weights
COLD< 5 trades40% Consolidation · 45% Bullish · 2% Parabolic
WARM5–15 tradesBase weights (above)
HOT15+ trades15% Consolidation · 62% Bullish · 10% Parabolic

4.2 · Trading is unrestricted

OMC is built to stimulate activity, not throttle it. There are no per-block trade caps, no per-user rate limits, and no minimum trade size. Anyone can submit answers as fast as they want, as often as they want, with any price the contract accepts.

What the protocol does protect is the integrity of the regime detector — so a single bot can’t fake "this market is HOT" by spraying tiny trades. The guards below apply only to how each trade is weighted in the COLD / WARM / HOT calculation; they never block a trade.

GuardValueWhat it actually does
MIN_ACTIVITY_VALUE$10 USDCTrades below $10 still execute — they just don’t count toward the activity tier
MAX_USER_ACTIVITY_PER_DAY3Only the first 3 trades/user/day weight the activity score (more trades still execute)
MAX_USER_ACTIVITY_SHARE40%Any single user contributes at most 40% to a market’s activity score
MIN_USERS_FOR_HOT1Even a 1-on-1 bidding war can trigger the HOT regime — no quorum gate
absoluteMaxPriceChangeadmin-tunableCap on per-trade price delta (admin-set)
PARABOLIC_MAX_GAIN+80%Parabolic regime ceiling — prevents guaranteed-profit setups

Entropy. NextPrice mixes 14 sources (block.timestamp, prevrandao, opinionId, sender, balance, nonce, trade history…) — non-deterministic, non-replayable. This is why V4 disables the legacy V1 anti-MEV rate limit and the rapid-trade fee penalty: when the next price is unpredictable, there’s no profitable sandwich attack to defend against (Ch. 08).

4.3 · Fee distribution

On every trade, the buyer pays price. It splits 3 ways:

95%
Previous Owner
3%
Question Creator
2%
Platform

Worked example — $100 trade. Buyer pays $100. Previous owner receives $95. Question creator gets $3 royalty (claimed via FeeManager.claimAccumulatedFees). Platform fee $2 accrues to treasury. MEV penalty in V4: 0% (admin-tunable).

4.4 · Pool economics

  • Pool creation: 5 USDC fee (split: platform + question creator)
  • Contribution: free (0 USDC fee)
  • Target: NextPrice (set automatically by PriceCalculator at execution time)
  • Max pool duration: 60 days
  • Pool reward distribution: proportional to contribution at sale time (95% of resale)
  • Early exit: 20% penalty (prevents pump-and-dump)
CHAPTER 05

V4 Exit Mechanics. Self-Exit & Vacant Reclaim.

V4 (May 2026) introduces two mechanisms that guarantee no participant is permanently trapped on a stale slot — and that a stale slot doesn't drag a market dead. Both are admin-toggled feature flags.

5.1 · Self-Exit (for the current king)

After the configurable cooldown (production setting: 60 seconds solo · 24 hours pools · 72 hours extended pools), the answer owner can call selfExit(opinionId) to walk away. Refund = 80% of the locked stake; penalty 20% splits 50/50 between creator and platform.

IMPORTANT — WHAT IS LOCKED?

In V4, lockedStake is the bootstrap amount the question creator set at mint (e.g. $5) and stays constant through normal trades — the math balances exactly. Self-Exit therefore refunds 80% of that bootstrap amount, not 80% of what the current owner paid. It’s a recovery floor — not a position refund. Reclaim (5.2) does reset the stake to ~95% of the reclaim price.

5.2 · Vacant Slot Reclaim (for the next bidder)

When the king exits, the slot becomes vacant with currentAnswerOwner = address(0). The next claimant calls reclaimVacantSlot(opinionId, …) and pays the reclaim price = max(50% × lastPrice, $2 floor). 95% of that payment becomes the new lockedStake — so future Self-Exit refunds scale with the reclaim price.

5.3 · Pool stale-exit dissolution (V2)

PoolManagerV2 mirrors the same logic at the pool level. Large holders (≥10% contribution) can trigger a pool exit after 24 hours; any contributor can trigger after 72 hours. Pool funds redistribute proportionally with the same 20% penalty.

5.4 · Parameter table

ParameterProductionBounds
soloCooldown60 s60s — 90 days (admin-tunable)
poolCooldown24 h60s — 90 days
poolExtendedCooldown72 h≥ poolCooldown · ≤ 90 days
exitPenaltyBps2000 (20%)500 — 5000
penaltyCreatorShareBps5000 (50/50)0 — 10000
reclaimDiscountBps5000 (50%)1000 — 9000
largeHolderThresholdBps1000 (10%)1 — 5000 (pool-only)
minReclaimPrice2 USDC> 0
spamFee2 USDC≤ 100 USDC

MIN_COOLDOWN = 60 seconds (constant) is the contract floor — production runs at that floor for solo exits so the 20% penalty (not a multi-day wait) is the anti-grief lever. Pool cooldowns escalate (large-holder window then public window) because pools are a commitment device — a single contributor shouldn't be able to instantly torpedo the rest.

CHAPTER 06

Key Roles.

Four participant roles, each capturing value in different ways.

6.1 · Question Creators

  • Earn 3% of every future trade on their question — forever
  • Earn 50% of the 20% Self-Exit penalty (= 10% of locked stake) whenever a king exits their question
  • Set initial framing through question + initial answer + initial price
  • Can attach descriptions and external links (120 char description · URL)
  • May enhance with extension content (V2 ExtensionsV2)

6.2 · Answer Owners

  • Hold the contested slot — and the narrative; every visitor reads YOUR take first
  • Receive 95% of the next purchase price when their answer is bought
  • Establish on-chain reputation through ownership history
  • Can be EOAs, smart wallets, or pools
  • Can Self-Exit after cooldown if the slot goes stale

6.3 · Pool Creators & Contributors

  • Coordinate collective conviction at price points individuals can’t reach
  • Contributors pay no per-contribution fee (free entry)
  • Rewards distribute by contribution percentage at sale time
  • Stale pools dissolve through V2 mechanism (10% holder triggers @ 21d · any contributor @ 35d)

6.4 · Governance Roles

  • DEFAULT_ADMIN_ROLE — root authority. Rotatable via transferFullAdmin() across all 5 contracts in a single transaction.
  • ADMIN_ROLE — parameter updates and contract upgrades (72-hour timelock on upgrades)
  • MODERATOR_ROLE — opinion deactivation and answer moderation
  • TREASURY_ROLE — treasury rotation (48-hour timelock + confirmation)
  • CORE_CONTRACT_ROLE — fee-accrual gateway granted to OpinionCore by FeeManager
CHAPTER 07

Technical Architecture.

The monolithic V1 contract (25.1 KB) exceeded the 24 KB Base bytecode limit. The May 2026 system splits responsibilities across 5 UUPS-upgradeable contracts and 3 linked libraries.

7.1 · Contract sizes

ContractSize (KB)UUPS upgradeable
OpinionCoreV419.0
PoolManagerV218.1
OpinionExtensionsV213.2
FeeManager10.5
OpinionAdmin9.6
ValidationLibrary0.02— library

7.2 · Version history

VersionDateChanges
V1Jan 7, 2025Initial deployment of modular system
V2Jan 12, 2025Fixed fee-transfer bug; added pause/unpause + emergencyWithdraw
V2.1Jan 14, 2025Empty-categories validation fix (ExtensionsV2)
V3Jan 15, 2025Dynamic pricing — PriceCalculator with market regimes
V4May 6, 2026Self-Exit + Vacant Reclaim; PoolManagerV2 stale-exit dissolution

7.3 · Base Layer 2

  • Low transaction costs (sub-cent gas)
  • High throughput (thousands of tx/s)
  • Ethereum security guarantees via OP Stack fault proofs
  • USDC-native; Coinbase on/off-ramp integration
ChainTx (submit answer)Gas unitsCost (May 2026)
EthereumsubmitAnswer #567120,000$3.75
PolygonsubmitAnswer #567120,000$0.12
ArbitrumsubmitAnswer #567120,000$0.03
BasesubmitAnswer #567120,000$0.004
CHAPTER 08

Security.

OMC ships with layered protections. V4 hardens against price manipulation, enforces non-custodial fund flows, and gives admins emergency control via pause + role separation.

8.1 · Price manipulation defenses

  • 14 entropy sources for NextPrice — block.timestamp, prevrandao, opinionId, sender, balance, nonce, trade history, etc.
  • Configurable max price-change (absoluteMaxPriceChange) prevents extreme single-trade moves
  • Parabolic regime capped at +80%
  • Minimum price floors prevent devaluation below 1 USDC

8.2 · Anti-MEV

Original V1 included a per-block trade limit and a rapid-trade fee penalty. Both are disabled by default in V4 (maxTradesPerBlock = 0 = unlimited; mevPenaltyPercent = 0%) because V3 dynamic pricing — non-deterministic, non-replayable — already neutralizes the value of sandwich attacks. Both remain admin-tunable.

ParameterV1 (apr 2025)V4 (may 2026)Notes
MAX_TRADES_PER_BLOCK30 (unlimited)V3 entropy makes MEV unprofitable
mevPenaltyPercent20%0%Admin-tunable, retained for emergencies
Cooldown (Self-Exit)14d / 21d / 35dNew in V4 — prevents rage-quit

8.3 · Fund security

  • Non-custodial — contract holds only locked stakes and accumulated fees
  • Pull pattern — creators withdraw fees via claimAccumulatedFees()
  • ReentrancyGuard on every external state-mutating function
  • Checks-Effects-Interactions on every transfer
  • Emergency pause + emergencyWithdraw (admin-only, only when paused)
  • SafeERC20 throughout (no naked transfer / transferFrom)

8.4 · Treasury & governance hardening

  • Treasury changes require 48-hour timelock + confirmation
  • Contract upgrades require 72-hour timelock
  • Role-based access via OpenZeppelin AccessControl
  • transferFullAdmin() for single-call admin rotation across all 5 contracts
CHAPTER 09

Community Features.

OMC is designed to make information communities legible, durable, and tradable.

9.1 · Pool coordination

  • Shared goals around specific answers
  • Transparent contribution tracking on-chain
  • Collective ownership of high-value slots
  • Proportional reward distribution at resale
  • Stale-exit dissolution (V2) — no pool stays trapped

9.2 · Information provenance

Every answer change writes a full history record on-chain: timestamp, owner address, price paid, answer text, description, link.

#DateAnswerOwnerPrice
1Jan 2025"Solidity with formal verification"security_dev.base.eth$1.00
2Feb 2025"Rust + Solana support"solana_builder.base.eth$2.30
3Mar 2025"Vyper for EVM contracts"vyper_expert.base.eth$8.20
4Apr 2025"Move language (Sui / Aptos)"move_advocate.base.eth$14.50
5May 2026"Solidity + AI auditing"current_owner.base.eth$32.10

9.3 · Categories

40 categories shipped at launch — covering tech, sports, music, food, crypto, local knowledge, brands, and culture. New categories require ADMIN_ROLE via addCategoryToCategories().

CHAPTER 10

Applications.

A market for opinions is also a market for brand positioning, prediction-style consensus, expert reputation, and creator monetisation.

📊 INFORMATION MARKETS
  • Perpetual consensus on expert questions
  • Real-time opinion aggregation
  • Reputation through ownership history
  • Crowd-sourced knowledge curation
🎨 BRANDS

Luxury houses competing for “Most prestigious watch?”. Advertising with built-in exit liquidity — a marketing spend becomes a potential investment.

🤝 COMMUNITIES

DAOs pooling capital on contested takes. Crypto Twitter backing positions with bags. Collective conviction priced and resolvable on-chain.

📝 CREATORS

Mint questions. Earn royalties forever on every flip. Creator ownership economy — not just a creator economy.

CHAPTER 11

Deployed Contracts.

Everything described in this paper is live on Base mainnet (chain ID 8453) and verified on BaseScan. Addresses below are proxies — readable storage and method ABIs included.

OpinionCoreV4

Main markets · self-exit · reclaim
0xAdc44c00dc6A45B8776fDDBB1f977950838EafC1
basescan ↗

PoolManagerV2

Collaborative pools · stale-exit
0x34537a749F4b16E7542a59e5322338372A6a1E3c
basescan ↗

FeeManager

Fee accumulation · royalty claims
0x5dc8502Db4ed7Fb3689703F5B8D4fa1F2bD305AA
basescan ↗

OpinionAdmin

Parameter governance · moderation
0x202Bc4E3aB50147212bee0506bF5f2B544333b5D
basescan ↗

OpinionExtensionsV2

Categories · extension slots
0x2eD0DC454043A768cB3FA7e480c41Be7b8954394
basescan ↗

SelfExitLib

Library · exit logic (V4)
0x30c465f5772dc86555d37fE1376218Cbf79a4D93
basescan ↗

PriceCalculator

Library · dynamic price (V3)
0xb6cEB6F62e929aC99068255AA3E380F01Ed69cB7
basescan ↗

ValidationLibrary

Library · input validation
0x95a60C951BCB6E77644081f0501c9d2dDDfDb681
basescan ↗

USDC (Base)

Trading currency
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
basescan ↗

Treasury: 0x67902d93E37Ab7C1CD016affa797a4AF3b53D1a9 · Admin: 0x9786eDdf2f254d5B582DA45FD332Bf5769DB4D8C

DON’T TRUST THE PAPER.
READ THE CONTRACTS.

Every claim in this paper is encoded in Solidity on Base mainnet — verified, audited, immutable. Verify yourself.