Loading...

Fetching market maker status...

Setup Credentials

The market maker needs a private key to sign orders on the server. Use a dedicated trading wallet, not your main one. Stored locally in data/market_maker_state.json.

If you trade through Polymarket's web UI, your shares live in a Gnosis Safe proxy. Paste that proxy address so quotes use the same balance and on-chain merges go to the right wallet. Leave blank to trade directly from the EOA derived from your private key.

Add Market

Paste a Polymarket conditionId. Find it on any market page (URL or developer view). The bot quotes the YES side and runs YES+NO arb in the background.

Inside ticks = how many ticks inside the BBO our quote sits. 0 means join the current best bid/ask (queue priority). 1 means be the new best bid/ask (better fills, less queue).

Tracked Markets

No markets yet. Add one above.

Add Neg-Risk Event (Basket Arb)

For multi-outcome events (e.g. "Who wins the election?" with N candidates), the bot watches the sum of YES asks across all outcomes. If the basket trades for less than $1.00 by your edge threshold, it buys 1 share of each YES leg simultaneously. Exactly one outcome resolves to $1, so the locked-in profit per share = $1 minus the buy total.

Find the slug in the URL of any Polymarket event page. Only events with negRisk = true are accepted (those use the NegRiskAdapter and pay out exactly $1 to the winning outcome). Standard YES/NO markets are added under "Tracked Markets" above instead. Or click Discover Baskets to browse the most-liquid neg-risk events with 4-15 outcomes (the sweet spot for arbitrage).

Tracked Neg-Risk Events

No events yet. Add one above.

Track Whole Category (Autonomous)

Pick a Polymarket category like Crypto, Politics, or Sports. The bot fetches every active event in that category, adds the multi-outcome ones for basket arb and the single yes/no ones for market making, and re-scans on a timer so newly listed markets get picked up automatically. Set conservative caps the first time you try this.

Preview shows what would be added without committing. Track Category commits everything up to your caps and schedules an auto-refresh that picks up newly listed markets in the same category. Min liquidity and min 24h volume protect you from quoting on dead markets. Use the global exposure cap in Risk Settings as your real ceiling on capital at risk. Max budget ($) caps total nominal spend for this category: at most floor(budget / max-inventory-per-market) baskets+markets are added across this and future refreshes. Set 0 to disable.

Tracked Categories

No categories tracked yet.

Live Orders

No live orders.

Risk Settings

Premium RPC is what we use for the on-chain merge (turning a YES+NO pair back into $1 USDC). Public RPCs work, but a Chainstack or QuickNode URL is faster and won't rate-limit you. Leave blank to use the public fallback list. Alchemy URLs are rejected (you asked for that).

Min spread is the minimum bid/ask gap (in basis points of mid price) we'll quote. Anything tighter is unprofitable after fees and slippage. 50 bps = 0.5%. Arb edge threshold is the minimum locked-in profit per share before firing the neg-risk arb. 0.005 = half a cent per share.

Merge Pairs (Free Up Capital)

Holding both a YES and a NO share for the same market is worth exactly $1, but the dollar is locked until the market resolves (could be weeks). Merging burns the pair on-chain and returns the dollar immediately. Useful after arb fills, or any time you've ended up with mirrored positions you want to close out without selling on the book.

Click Refresh to scan your wallet.

Recent Activity

No activity yet.