■ Vader Hairitai
EmailLinkedInGitHub ■

OPick, a market for opinions and then for attention

Market Design · 2026

A market for betting on opinions, built on Base. It started as markets that never end and became markets that settle on how much attention a topic actually gets.

StatusPaused, May 2026
TimelineApr 4 to May 7, 2026 · 194 commits
StackSolidity · React · Node · Privy · Base
Traction29 markets, 32 wallets in week one
Oracle cost$11.71 in X API calls, total

Sports fans keep having the same argument. Is it Messi or Ronaldo, LeBron or Jordan? People care, people argue, and nobody can ever be proven right. I wanted to find out whether an opinion like that could trade like a share, where you win by getting to where the crowd is going before everyone else, rather than by being declared correct.

Prediction markets need an ending. Kalshi and Polymarket pay out when an event is decided, which is why they cannot touch the questions people argue about most. But markets without an ending already exist, because a stock never resolves either. In 1936 Keynes compared the stock market to a beauty contest where you win by picking the face other people will pick, not the one you find prettiest. That was my design premise. You do not get paid for being right about Messi. You get paid for getting to the consensus early.

The timing felt right in early 2026. Polymarket traded about $21.5 billion in 2025 and was cleared to return to the US, attention-for-pay products were everywhere in crypto, and embedded wallets meant a new user could trade without ever seeing a seed phrase.

Each opinion was a two-sided market priced on a constant-product curve, where the price of each side shows its share of belief. Buying was free, and selling cost a 1% spread. Thirty percent of that spread went to whoever created the market and seventy percent to the protocol, so people were paid for starting debates others cared about. Markets had no resolution and no expiry.

It went live on Base's test network with 26 markets on April 4 and on Base mainnet on April 5. I spent most of the next two weeks making it feel alive. The virtual liquidity started at $1 million per side, where it took $500,000 to move a price to 60%, so I cut it to $10,000 and then to $3,000 so that a small trade would visibly move the price. Privy wallets with sponsored gas let people sign in with an email and trade USDC without holding any ETH. A $2 welcome bonus capped at 250 people and a referral system brought the first week to 29 active markets and 32 unique wallets.

People tried it and did not come back. Without an ending, the only way to make money is for someone later to buy at a higher price, so the only reason to play is the next buyer. That is the same wall friend.tech hit, when its volume fell about 95% within weeks of launching in 2023, and the same one Football Index hit in 2021, when it cut the dividends that anchored its player shares and collapsed.

The conclusion I drew, and still believe, is that a market needs a reason to exist beyond the next buyer. It needs an anchor.

My first attempt, on April 19, was a pooled bet that paid out once the pool reached a set size, with the majority side winning. Nobody created a single market on it, because it still had no real anchor and it had worse liquidity.

The second attempt, on April 22, changed the question. Who is greater, Messi or Ronaldo, can never be settled. Who got more attention this week can be settled, as long as attention is measured honestly. Version six markets are yes and no shares on a constant-product curve with 3,000 USDC of virtual liquidity. A market is either a head-to-head between two subjects or a bet on whether one subject goes above or below a level, measured by mention count, engagement-weighted attention, engagement density or velocity. Every market is a cheap copy of one template contract. A signed report from the oracle settles it, and if no report arrives within 48 hours of close, anyone can trigger refunds for everyone, so a dead oracle can never trap money.

X API V2counts/recentsearch/recent (100)public metricsRELEVANCE CHECKis this post aboutthe subject?upstream onlyORACLE(m + .1L + .5R + .3Re)× √(authors / sample)twice daily · SQLiteHMAC audit logSIGNED REPORTkeccak(market, A, B,address, chain)EIP-191 signatureATTENTION MARKETYES / NO on CPMMhead-to-head or thresholdclone of one template1% protocol feePAYOUTwinning side redeemsno settle in 48h →pro-rata refundTRADERSPrivy embedded walletsgas sponsoredno ETH neededverify signaturesettleV1–V5 · APR 4–19opinion markets with no ending, two-sided curve, 1% spread on sells, 30% to the creatorV6 · APR 22attention markets settled against the pipeline above
Hover any node for detail.
Version six attention markets. The settled number comes from a fixed formula over public counts that anyone can recompute, and the model only helps decide which posts count. The oracle signs the result, the market contract verifies the signature, and if nobody settles within 48 hours anyone can trigger refunds.

For each subject the oracle pulls two things from the X API, the recent mention count and a sample of up to 100 recent posts with their likes, reposts, replies and authors. Engagement-weighted attention adds the mentions to 0.1 times likes, 0.5 times reposts and 0.3 times replies, then multiplies by the square root of unique authors divided by sample size. That square root is the important part, because it discounts attention that a handful of accounts are manufacturing. A public attention rating from 0 to 100 puts every subject on a log scale against the rest of the pool.

It runs twice a day, keeps a signed log of every value it produces, and signs each settlement together with the market ID, both values, the market address and the chain ID, so a report can never be reused on a different market or chain. The whole oracle cost $11.71 in API calls. The real limit was cost rather than code. In the April 24 run, 33 of 50 candidate subjects failed because the API credits ran out, and the 17 that worked covered 911,238 posts.

Anyone who doubts a settled number has to be able to recompute it, so the number that settles a market comes from a fixed formula over public counts and never from a model's judgment.

The model belongs earlier in the pipeline. A keyword is not the same as a subject, because Messi also matches a café, a meme account and a jersey sale. A classifier reads the sampled posts and decides which ones are actually about the subject being traded before they reach the formula, and it also helps choose which subjects are worth listing. Using the model for relevance and plain arithmetic for settlement is the split I would keep in any system where money depends on a model's output.

OPick has been paused since May 2026. The oracle last wrote data on April 24 and the last commit was on May 7. I wrote up the thesis in an essay called Attention Is a Market Without a Market Maker. It argues that pump.fun, friend.tech and Kaito failed because of how their markets were built rather than because of a lack of demand, and that the two unsolved problems are consent from the people being traded and who provides liquidity. Both have become more visible since. X cut off apps that paid people to post in January 2026, and the NO FAKES Act moved forward in the Senate in June 2026.

FIVE WEEKS, THREE CONTRACT GENERATIONS2026 · from git historyAPR 4Test network26 test marketsAPR 5Base mainnetmarkets with no endingAPR 7Version five3K liquidity, free creationAPR 19Pooled bets0 markets createdAPR 22Attention marketsoracle and Foundry testsMAY 7Pausedessay published
Dates from the protocol and oracle repositories.
OPEN OPICK ↗

Choose what the market is really about first. Once it was about measured attention, the measurement pipeline became the product and everything else became scaffolding.

Incentives matter more than the interface. I spent the first two weeks on how it felt, and what decided whether people stayed was why they would.

Settlement should be boring. The more a settled number depends on judgment, the less anyone should trust the market built on top of it.

■ 2026
Colophon ■