Ohan

22 posts

Ohan

Ohan

@seemeohan

pred degen

Sumali Nisan 2026
16 Sinusundan644 Mga Tagasunod
Ohan
Ohan@seemeohan·
@devjoshstevens @variance_lover @Polymarket @shayne_coplan Have you guys considered writing public postmortems? I think people could regain a lot of trust if, after a bad latency regression, we could hear what the problem was, why it wasn't caught in staging, and how you're going to catch these things going forward.
English
0
0
15
446
Josh
Josh@devjoshstevens·
Hey, thanks for writing this out. You do have some valid points on everything you said. I have touched on some of these points before in tweets, but I joined a few months ago as VP of Engineering, DeFi, to set standards for how we build at Polymarket. We, as a team, have hired many new senior people over the last few months, and we feel the difference internally and how we are starting to work together. The CLOB was built over 4 years ago and has inherited technical debt due to wrong core low-level decisions; fixing these core parts isn't easy when you have so many parts to consider and continue to serve a huge amount of traffic. Note that the success of Polymarket would not have been possible without the speed of development, so no blame on these systems at all; it happens. We now have a dedicated trading team working solely on the CLOB, fixing and rebuilding those core components from the ground up. Every issue you raised was an issue before and has been fixed / is known and being fixed. A few things which have been improved over the last 2 months: 1. Full observability into the systems with traces and alerts 2. Eliminated ghost fills for takers that were causing a high failure rate for trades. 3. We improved the core matching engine latency via faster summary generations by 41.2% 4. Introduced a new validation layer that helps us keep the core engine healthy; with this one, the p90 improved by 32% during highly volatile periods. Also, we currently support 50% more user requests on the engine. Here are the things coming in the next weeks and months: 1. Feature flags in the clob to allow us to turn on and off features when doing critical deployments, eliminating unnecessary downtime for users while still allowing the team to safely ship 2. Revamped rate limit system that is maker-focused, improving latencies for both takers and makers. As we improve latency on the core engine, we're seeing more requests, which is causing degradation, so revamping the rate limits is key. 3. We are moving to an async flow on our current engine to support higher throughput. 4. Introduce new order types that allow makers to preserve their queue positions. 5. Decreasing the startup time so deployments can be easily put out and reverted if needed quickly 6. Way more improvements to the internal systems but can't list them all Taker delay bypass exploits - This was implemented incorrectly initially, allowing cancellations for already delayed orders. We prevent this by preventing these cancellations and properly reserving the capital for all taker-delayed orders. Ghost fill exploits - The clob is synced with the user's deposit wallet state, so whenever the user wants to perform a clob action, it is informed in advance, helping it consolidate the state. There is still a small amount of ghost fills (0.001%), as we still support the old wallet types and have edge case race conditions, but this will be fully eliminated once all users are on the deposit wallets and with the new async architecture. Order spam exploits - Atm, we keep an open rate limit model; this means that users get the same limit across markets. We want to introduce a token-based system to make it harder for bad actors to exceed current limits. RTDS: We missed observability on this, and that's on us. We fixed it, and now we have proper alerts. Sorry about that. Stability is something we are actively solving; as said, it's our core focus with the trading team. We're growing the team by 2x and bringing in very senior ex-exchange engineers to rethink and rebuild a bunch of things. Our plan is to be the best exchange in the world, and we have a long way to go, but we will get there with the core improvements we are making highlighted above. Most of our trading changes at the moment are fixes, and we alert Discord because it's our main place people trade alongside some signals; most don't require documentation, mainly because there are no breaking changes and it's a fix to address tech debt. We do need to work on communication; we're trying to improve this with Friday updates and improvements to our core documentation and Discord/Signal channels. We are also working on better communication overall, with restarts and downtimes being announced in advance. Also, we have a direct line to you on Signal; we should chat more there. The team is always on call to help with any issues you face. Taker tiers was something we slipped on, and we should have done better with the communication around when it is coming. We have started splitting certain tasks like this into smaller pods, with ownership and accountability for each. A lot has got better internally, but there is loads of room to improve, and this is a good example of how core communication could have fixed this; sorry about that. We, of course, have staging, but most, if not all, of our issues only occur under production load. We just finished a full, dedicated environment powered by a Tenderly VNET, allowing us to run proper load tests and simulate production load before we put stuff out. We have hired a head of QA who is also working on proper e2e automated tests on the CLOB to catch these issues in CI before they go out. Moral of the story: we really do care about building the best systems in the world. Polymarket moves very fast, and it wouldn't be here today without it, but we know that improving core stability is key to us thriving, and we're working on that right now, step by step. You are a smart person; you know that fixing these foundations cannot happen overnight, but we are on it and hear you.
English
12
7
112
6.4K
Ohan nag-retweet
Variance Lover
Variance Lover@variance_lover·
Open letter to @Polymarket and especially @shayne_coplan: I've been trading on Polymarket for a long time. I am one of the biggest traders on the entire platform and I interact with it on a daily basis. And at this point I'm seriously questioning whether the team has simply given up. I'm not even trying to be dramatic. Wtf is actually going on? Has everyone made enough money that nobody cares anymore? Is the team completely overwhelmed? Are priorities completely broken? Is there no leadership? Is it incompetence? Because the current state of the platform is honestly embarrassing. Every maintenance seems to follow the exact same script: announce 10 minutes of downtime start 20 minutes late stay down for an hour deploy changes that break multiple existing systems leave the bugs in production for weeks And somehow nobody seems concerned. Example: ~1.5 weeks ago an update broke tick sizes. The matching engine started rejecting orders that matched the correct tick size after a tick size change was published. This was immediately visible after deployment. It's still broken. Nobody seems to care. Then for the last two days Polymarket's own RTDS feed, the feed used for all crypto markets, has been broken. The issue was marked "resolved" 10 hours ago. It still isn't resolved! Did anyone spend literally 5 seconds checking whether data was actually being published before closing the incident? Because it sure doesn't feel like it. Communication is somehow even worse than the bugs. Half the changes never get announced. The other half are hidden in random Discord side conversations. Major trading-impacting changes get silently rolled out with zero documentation. You ask support. They say they'll ask the team. Then you never hear back. Or you get the same canned response you've already received three times. The team keeps saying communication will improve. It never does. Then there's the rebate and fee situation. Taker tiers were supposed to launch on May 28. A week later they still weren't live. Nobody acknowledged the delay. The docs still said May 28. To this day there still hasn't been a single taker rebate payment. And the official position is apparently that missed rebates won't be back-paid. How is that acceptable? How are traders supposed to adjust strategies, thresholds, and risk when nobody knows what fees they are actually paying, what rebates they are actually earning, or how much of the promised rewards the platform simply decides not to distribute? That isn't transparency and it is clearly destroying trust. The craziest part is that every update creates fresh opportunities for exploiters. Just in the last couple weeks we've had: queue position jump exploits taker delay bypass exploits ghost fill exploits various matching and infrastructure bugs order spam exploits Millions of dollars have been extracted from legitimate users through platform failures. The response? Increase rate limits. Seriously. A huge amount of latency issues today are caused by order spam that is directly incentivized by broken infrastructure and exploitable mechanics. Fixing the root causes would help. Instead we get band-aids. Which raises another question: Does Polymarket have a testing environment? Does it have staging? Can updates be rolled back? Because from the outside it honestly looks like production is the testing environment. Every maintenance introduces new failures. Every maintenance gets partially reverted. Every maintenance creates more issues than it solves. This shouldn't be happening at a company valued in the billions. Meanwhile manipulation that has been repeatedly reported for months continues largely unchecked while manipulators keep extracting money from normal users. And surprise: Volume is declining. Prediction markets as a whole are growing. Yet Polymarket just posted its second consecutive month of declining volume. Meanwhile Kalshi has become the clear market leader in many categories and is now outperforming Polymarket by large multiples in areas where Polymarket used to dominate. Honestly? It's not hard to see why. Every serious trader I've spoken to says the same thing: Kalshi feels stable. Polymarket feels like you're one deployment away from disaster. I know multiple people who would happily trade Polymarket full-time if they trusted the platform. They don't. Not because of competition. Because they don't trust Polymarket itself. My trust in this platform is at an all-time low. And I genuinely don't understand what is happening internally. Maybe the response will be that the team is busy with the World Cup or other initiatives. Fine. Then stop shipping half-finished features. Stop deploying untested fixes. Stop breaking live trading. Slow down. Focus on fewer things. Do them properly. The most concerning part is that so many decisions feel like they were made by people with no actual trading experience. The product decisions show it. The infrastructure decisions show it. The market structure decisions show it. Building the future of prediction markets requires understanding how markets actually function. Right now it often feels like nobody is steering the ship. I want Polymarket to succeed. But from the perspective of someone who uses the platform every day, this is bordering on unusable. @Polymarket @shayne_coplan What is going on?
English
110
55
717
71K
Ohan
Ohan@seemeohan·
@datadashboards I think all prediction market volumes should be reported in terms of implied variance (i.e. contracts * price * (1 - price)). That basically solves all these inflated volume issues.
English
0
0
0
141
dash
dash@datadashboards·
Can’t parlays inflate prediction market notional volumes infinitely? Take Kalshi combos as an example. Imagine a user wants to place a $1 bet on some obscure parlay that pays 10,000x, meaning a $10,000 payout if it hits. Suppose they request a quote on a 3-leg parlay and receive fair odds. Leg A: 1% probability Leg B: 10% probability Leg C: 10% probability Assume all legs are independent. Then the probability of all three hitting is: 0.01 × 0.1 × 0.1 = 0.0001 = 0.01% So the fair payout on a $1 bet is $10,000. Now imagine a market maker takes the opposite side of this parlay. They do not want to lock up $9,999 of risk to make $1, especially given the long resolution time and capital inefficiency. In reality, they are just going to quote worse than fair odds and then dynamically hedge to remain roughly delta neutral. Most likely, they would hedge by buying exposure to the individual legs. For example, they might buy $100 worth of Leg A exposure, since that is the dominant risk driver. They might also hedge smaller amounts of Legs B and C. If structured correctly, even if the parlay hits, the MM can still walk away profitable or close to flat. Here’s where my question comes in. Suppose: • The parlay bettor puts up $1 notionally for a $10,000 payout. • The market maker hedges with only ~$100 of actual exposure on Leg A. The maker maker’s trade will exchange 10000 contracts either via bid-ask or a bid-bid trade: • If its a bid-bid (YES + NO minted, $0.01*10,000 contracts = $100 YES and $0.99*10,000 contracts = $9900 NO) then the other side will be ~$9900 from a bond farmer • If its a bid-ask (1% YES sold directly, $0.01*10,000 contracts = $100) then the other side will trade their tokens for $100 In a bid-bid case: • The parlay will be counted as $10,000 notional. The bid-bid will be counted as $10,000 notional. So we have $20,000 notional volume done with $5000.5 exchanged (we should divide by two to avoid double counting). In a bid-ask case: •The parlay will be counted as $10,000 notional (10000 contracts). The bid-ask will be counted as $10,000 notional (10000 contracts). So we have $20,000 notional volume done with $100.5 exchanged (we should divide by two to avoid double counting). In the extreme case we have reports $20,000 of “notional volume,” despite only ~$100.5 of real capital actually changing hands. So 200x more than reality? Even in the bid-bid case it’s still 4x more than reality. Is this thought process correct, or am I missing something important about how these bets are taken or the volume is counted? If I am not, then why do we keep using this awful metric as the standard of volume on Prediction Market frontends lol Also if you made it this far im sorry you have been put through my mid ability to write and articulate my points
English
14
1
65
40.3K
Ohan
Ohan@seemeohan·
@razim_Bob it's a lot better for me today after they did some fixes
English
0
0
1
148
razim Bob
razim Bob@razim_Bob·
@seemeohan given you experience would you have any recommendations? I've literally tried everything I can think of!
English
1
0
1
230
razim Bob
razim Bob@razim_Bob·
@Polymarket @mustafap0ly @PolymarketDevs Guys any idea why the latency in the 5mn btc market is very bad? Sharing the screenshots. This applies for both maker and taker orders.1st time trading after v2 . Never saw these latencies during V1 period. Any support is appreciated
razim Bob tweet mediarazim Bob tweet mediarazim Bob tweet mediarazim Bob tweet media
English
2
0
0
303
Ohan
Ohan@seemeohan·
@FundedAndChill obviously i am capable of doing this. you are advocating for something illegal and highly unethical
English
2
0
6
1.2K
Funded and Chill
Funded and Chill@FundedAndChill·
If someone has the capital to move the price at a specific time, they deserve that win. Heavy manipulation happens in US options markets too; Polymarket is no different—they're essentially just 5m options. You either adapt and take advantage of it, or start manipulating it yourself. Given your skillset, I believe you could easily pull it off, especially on weekends.
English
1
0
2
1.3K
Ohan
Ohan@seemeohan·
At some point, I decided to stop constantly adjusting one of my Polymarket crypto up/down strategies (the one running out of account "ohanism") to deal with market manipulation by toxic participants. This is the outcome. It is still profitable, but you can see that after May 13 it has been much lower Sharpe, much larger, more frequent drawdowns. The main reason is that new classes of manipulators emerged, and I am bleeding large amounts of PnL to their impact. There will be a point when it stops making money entirely, and at that point I will likely turn off rather than constantly adapting. Some thoughts. 1. If you think you have an algo capable of winning in a game with all manipulations, you are lying to yourself. You have an algo capable of dealing with *today's* manipulators. Tomorrow's will be more sophisticated. 2. People can and do make money trading around manipulation. But it's an ever-evolving game that you are playing at a massive disadvantage. 3. I feel confident that I can go back in the code, make significant changes to the way I trade around manipulation, and go back to making a profit. But to what end? Will I need to spend half my week constantly chasing what manipulators are doing next? When will I find time to work on anything else? I would much rather spend my time providing in games where I am not at a structural disadvantage. 4. TWAP will not perfectly solve the problem, but it will help considerably. At the very least, it makes things much more annoying for today's manipulators.
Ohan tweet media
English
29
7
134
18K
Ohan
Ohan@seemeohan·
@predict_anon yes, i am saying that a fill at .01 (.99 from your perspective) is less economically meaningful than a fill at .5
English
1
0
2
378
anon
anon@predict_anon·
Most trades are around 1c spread, not 0.1c; you can check BNB/HYPE/DOGE, the volume for these except for 90c is almost nonexistent. I have a very high market share at both 45-55c and 90c+. The volume at 45-55c is much smaller than that at 90c+. The reasons are: 1. Many people prefer high-odds gambling, so buying 1c-5c allows them to purchase a large share with a small amount of capital. 2. Polymarket's fee at the 50c level is too high, even the most naive gamblers know they can't take orders there. The counterparty on the 90c+ side is mostly retail traders, but at the 50c level, your counterparty is mostly manipulators.
English
1
0
2
876
anon
anon@predict_anon·
😂看来我的polymarket🚀赚钱之路马上要结束了,退休回归普通的pnl增长速度了 因为自从maker越来越卷后,我的pnl全靠这最后几十秒大交易量刷出来;从市场整体交易量上,你看btc 5m市场, 最后的交易量占比也比前面大的多。 但客观来说,我觉得还是把市场都改twap算了: 1.操纵太多观感确实不好,影响平台形象(当然twap之后,我打赌一天依然会有5%的市场出现操纵,只要shares大于5k就会有) 2.保留两个市场影响流动性,就像poly在15m上搞了个5m,然后现在15m加5m交易量还不如只有原来15m的时候
Josh@devjoshstevens

@0_xMasque @Polymarket @mustafap0ly We are working on TWAP solutions for crypto markets which fixed this - we have not decided if we have 1 TWAP market and 1 normal one to allow retail to enjoy the 5 minute last second resolving markets but know we are aware and working on a solution.

中文
11
2
63
19.6K
masque
masque@0_xMasque·
🛑 BREAKING: POLYMARKET MANIPULATION 🛑 Someone very large is currently manipulating 5-minute markets on @Polymarket. I assume that because today is Sunday and most big players (funds and major market makers) are usually not active, there is low liquidity on exchanges. Because of that, someone very large is taking advantage of it and moving BTC price wherever they want. They are basically manipulating the market to farm 5-minute Polymarket markets. I have been observing this for about 2 hours. For example, the “up” position is trading at 65 cents even before the market opens, and when it opens, even while BTC is going down, the “up” position is still trading higher than the “down” position (EVEN THOUGH IT’S FALLING). They accumulate positions for a few minutes, and then BTC suddenly spikes upward. You might ask why I’m not following this and trying to “ride the whale.” Well, I tried, but every time the “outside liquidity” for this whale becomes too large, it screws me over and reverses the price in the other direction. It’s naive to think you can consistently profit on a manipulated market by following the manipulator—because the whole point of the manipulation is to farm small fish like me and you. On weekdays I never noticed this, I assume because other large players are active and it becomes too hard to manipulate BTC price. Take a look at screenshot #1. The market hasn’t even opened yet, but the “down” position is already trading at 66 cents. Now look at screenshot #2. There are about 1 minute and 22 seconds left until the market closes, and the price is going up, but at the same time the “down” position is more expensive than the “up” position. Look at screenshot #3. With 11 seconds left before the candle closes, BTC suddenly dumps sharply, and the Polymarket market closes with a win for the manipulator. His has happened repeatedly in different variations, but the fact remains: this is price manipulation of BTC to farm profits on the 5-minute prediction market. If you care about Polymarket, please share this post so the team notices it and conducts its own investigation into this matter. @shayne_coplan @mustafap0ly @williamlegate @devjoshstevens @digitdustin is this legal? $POLY
masque tweet mediamasque tweet mediamasque tweet mediamasque tweet media
English
3
0
6
835
Josh
Josh@devjoshstevens·
Looking for the best design engineers in the world to work on Polymarket. Polymarket.com is your canvas and your job is making it 1% better every day. Full creative control, own every pixel. DM me your GitHub/portfolio and show me why you're the best in the world.
English
42
21
272
29.9K
Ohan
Ohan@seemeohan·
@dontoverfit i think this sometimes works, but sometimes doesn't depending on which order the matching engine sees the messages? at least i haven't been able to get it to work consistently.
English
0
0
0
231
dontoverfit
dontoverfit@dontoverfit·
@seemeohan I’m pretty sure you can, you just need to generate the order id using the signed order, and it will match the id received afterwards. I’m not familiar with hyperliquid tho so maybe I didn’t understand what you’re trying to do. But it’s definitely possible to cancel before ack
English
1
0
1
388
Ohan
Ohan@seemeohan·
We desperately need a cancel by client order id on polymarket.
English
2
0
5
2.8K
Ohan
Ohan@seemeohan·
@dontoverfit I don't think we have the equivalent of hyperliquid's cancel by cloid: #cancel-order-s-by-cloid" target="_blank" rel="nofollow noopener">hyperliquid.gitbook.io/hyperliquid-do… if latency is 10s you should be able to cancel before you get a confirm
English
1
0
3
506
Ohan
Ohan@seemeohan·
@PolymarketDevs Thank you! Prioritizing quality participants over multi-account taker spam will go a long way to making the BTC 5 minute market tradable again.
English
0
0
0
707
Polymarket Developers
Polymarket Developers@PolymarketDevs·
Status update. Working through the issues users have flagged. Current focus: - Order placement & cancel latency (P0): two fixes in flight. Spam mitigations + improved order intake (ETA Wednesday). More guardrails on top. - "Not enough balance / allowance" on limit sells (and some buys): multiple fixes shipped, first focused on buys. Major source of sell-limit issue identified with patch in QA, releasing tomorrow - Cancel orders right after a restart: shipping in next week's CLOB release. - 403 on API key creation: working directly with Cloudflare and pulling logs from impacted users. - PnL - Some users have been encountering fluctuating PnL. Position values and average prices should now be correct, and daily/weekly PnL will heal automatically at end of day and end of week UTC time. - Withdrawals failing with "something went wrong": down to a handful of accounts. Deposit-wallet deployment edge case. Ping our bug-report channel in Discord if you hit it. - Deposit wallet generated for users with an existing proxy/safe: edge case when the /users call fails. Patch in QA, shipping next release.
English
19
12
103
14.6K
Variance Lover
Variance Lover@variance_lover·
Polymarket fixed ghost fills which is good. But the market is still getting farmed in one of the most obvious ways possible. Settlement manipulation on short-term markets (especially BTC 5min) is still wide open. If you’re actually trading these markets, you’ve seen it: - Traders build large positions - Then move BTC (usually via Binance) in the final seconds - Settlement follows that move - They cash out, liquidity providers get run over This isn’t edge-case behavior, it’s consistent and repeatable. And at this point, more money has been made by manipulators running this play than by actual traders providing real liquidity. They are extracting well above 50k a day in btc 5min alone. The result: - Liquidity disappears near settlement - Serious market makers turn off during these windows - Retail sees random last-second flips and loses trust - Market quality degrades Weekends and low-liquidity periods are especially bad, sometimes borderline untradeable. One important point here: Polymarket already uses Chainlink for settlement, which aggregates multiple price feeds. But in practice, that aggregation is still heavily dominated by Binance, and Binance leads most venues. If you can move Binance a few bips at the right moment, the rest follows. That’s exactly what’s being exploited. So while the oracle design sounds robust in theory, in reality it’s still very gameable in short time windows. To be clear: this is a hard problem. But it’s also a very visible one, and there’s been little real acknowledgment or discussion around it. There are ways to mitigate it: - Investigate and ban clearly linked manipulation clusters (many are trackable on-chain) - Work with active traders already monitoring this behavior - Adjust settlement (e.g. short time-weighted averages instead of single-tick pricing) - Reduce reliance on any single venue dominating price feeds On time-weighted averages specifically: Retail often pushes back on this, but I haven’t heard a strong argument for why a short averaging window (e.g. last 30–60s) would be worse than a system that can be flipped in the final seconds. Right now, the current design is clearly exploitable. None of these fixes are perfect, but doing nothing isn’t neutral, it actively pushes liquidity out. And that’s the real issue: You can’t build durable markets if the participants providing liquidity are structurally at a disadvantage. I’ve personally tracked multiple large clusters of accounts running this strategy, including linked funding, coordinated behavior, and PnL data. Happy to share data, examples, and work through potential solutions if the team is open to engaging on this. @devjoshstevens @mustafap0ly @kakujain @PolymarketDevs @Polymarket
English
31
10
210
40K
Josh
Josh@devjoshstevens·
@variance_lover Appreciate you laying this out. A lot of MMs are pushing for TWAP-based settlement on short-term markets would that address most of what you’re describing? And yes, open to seeing the data.
English
15
0
44
12.3K
Variance Lover
Variance Lover@variance_lover·
I’ve been one of the biggest market makers on Polymarket for a long time. At peak I was doing $10M+ daily volume and paying thousands in fees every single day. The current state is the worst the platform has ever felt. Ghost fills still everywhere. Markets constantly breaking. Payouts randomly missing. Exploits going on for months while the team says “it’s fixed”. You spend more time defending against bugs than actually trading. Meanwhile, communication is a joke. They say “we’re listening” → ignore emails, ignore DMs. They say “we’ll work with top users” → instead it’s random private Telegram groups with whoever shouts the loudest. They say “issue fixed” → it clearly isn’t. At some point you stop believing anything they say. The fee situation is another one. If you’re generating serious volume and paying serious fees (thousands a day), most exchanges shower you with attention and perks. I'm not asking for that but would be nice to at least be acknowledged that you exist and have basic communication, especially after they've announced publicly multiple times that they will start doing this. Instead we got a week-long hype campaign for a “big update” that turned out to be… a hidden fee increase. How dumb do you think your users are? And then stuff like April 5th, missed referral/rebate payments, no announcement, no explanation, nothing. Just silence. That’s not a bug, that’s trust damage. The bigger issue is it feels like nobody on the team has actual trading experience. The design decisions show it. Every update introduces new edge cases, new exploits, new ways to break the order book. People have made many millions exploiting this stuff. Many of these accounts are obvious, trackable, preventable. The community has been pointing it out for months. Ignored. Only now that the markets are borderline unusable does it seem like there’s urgency. Right now the platform is honestly close to untradeable: – ghost fills – manipulation – unreliable payouts – constant bugs – zero transparency And surprise, volume is dropping. Meanwhile Kalshi is catching up fast (have basically overtaken in volume in almost every category except for politics) and Hyperliquid is entering with a team that actually understands trading systems. I want Polymarket to succeed. And yes, maybe the upcoming ghost fill fix helps. But if this pattern continues, terrible communication, fake timelines, ignoring core users, then this won’t be a place serious traders stick around. You can’t build a market while eroding the trust of the people who provide the liquidity, especially not as a many multi billion dollar company! I have spoken to many large polymarket whales (of which a considerable amount have already given up on the platform) and they all share this sentiment. @Polymarket @mustafap0ly @SuhailKakar @_kanarazu_
English
88
61
823
106K