Open-source · Polymarket · Crowd momentum
Confidence Surfing Bot trades 5-minute and 15-minute Up/Down crypto markets on Polymarket. It doesn't predict price direction — it follows the crowd when the crowd is already confident, and it holds until the market resolves. 11,717 trades in five months.
Most Polymarket bots try to predict direction — they look at news feeds, price charts, or oracle data and guess which way the asset moves in the next five minutes. This bot doesn't do that. Instead it waits until the crowd has already made up its mind.
When one side of a 5-minute market is priced at 70 cents or above, 70% of the money in that order book is on one direction. The bot confirms that signal against a live price feed. If both agree, it buys the dominant side — tiny position, hold to resolution, repeat.
Below 70¢ the market is close to a coin flip. No edge, no trade. The bot waits for the crowd to form a clear view before touching any position.
If Up is at 75¢, the bot buys Up. This is pure momentum confirmation — the crowd's 75% implied confidence is the signal, not the noise.
0.2 to 1.0 shares per market, roughly $0.14 to $0.83 per bet. No single trade can blow up the account. Diversification across hundreds of positions is the risk management, not stop-losses or manual exits.
Markets resolve automatically in 5 or 15 minutes via Chainlink oracle. There's almost never a reason to exit early — and at these position sizes, the math rarely justifies the transaction cost.
Crypto markets don't sleep. XRP, BNB, ETH, SOL, BTC, and DOGE all run in parallel. This volume is only possible automated — human execution at 78 trades per day across six assets is not realistic.
Three specific market types, all on Polymarket's crypto "Up or Down" section. No election markets, no sports, no politics.
| Type | Window | Example | Notes |
|---|---|---|---|
| 5-Minute | 5 min | XRP Up or Down 5m | Most frequent, tightest windows |
| 15-Minute | 15 min | BNB Up or Down 15m | Higher volume, slightly more efficient |
| Milestone Hour | Fixed time | SOL Up or Down — June 11, 7PM ET | Less frequent, single-event resolution |
| Coin pair | Share of positions |
|---|---|
| XRP | ~44% |
| BNB | ~19% |
| ETH | ~12% |
| SOL | ~12% |
| BTC | ~6% |
| DOGE | ~6% |
At 75¢ entry, you risk 75¢ to win 25¢. To break even you need to win more than 75% of trades. At 80¢ you need more than 80%. The higher you enter, the tighter the margin.
This bot's observed win rate across 11,717 trades is roughly 77%, against a 75% break-even at average entry. That 2-point gap — winning 77% when 75% breaks even — is the entire edge. It works out to about $0.025 expected value per trade, which at 78 trades per day is roughly $1.95 a day, or $58 a month. Over five months: ~$290. The actual P&L is $292. The math and the real results match.
This isn't a get-rich strategy. It's a proof-of-concept for a thin, repeatable statistical edge in a specific niche. The win rate is everything — if it drops to break-even, the strategy stops working immediately.
This section exists because most bot repos leave it out. These are real risks, not legal boilerplate.
Sub-15-minute price series have near-zero autocorrelation. The crowd's 75¢ bid reflects recent momentum — a trailing signal, not a crystal ball.
At 80¢ entry, five consecutive losses at the minimum cost $4.00 and take sixteen wins to recover. The asymmetric payout demands a high win rate to stay positive.
Some positions remain unresolved for weeks due to oracle disputes or edge-case market conditions. Capital in a stuck position earns nothing until it clears.
At 78 trades per day, taker fees compound fast. This bot uses limit orders on the maker side to collect rebates instead. Running market orders eliminates the margin.
A 24/7 bot can lose money faster than you can catch it. Circuit breakers, position size limits, and robust error handling are not optional for live deployment.
Clone the repo, configure your wallet and API keys, and run with
--dry-run first to
validate the signal logic against live data before risking real capital.
Full configuration reference and architecture breakdown in the README.