Documentation
Everything you need to know about using opt.markets to maximize your Polymarket LP rewards
Getting Started
1. Connect Your Wallet
Click the "Connect Wallet" button in the top right corner. We support:
- MetaMask
- WalletConnect-compatible wallets
- Any injected Ethereum wallet
2. Discover & Trade
Navigate to the Discover page to see all active markets with liquidity rewards. Enter your capital, find opportunities, and place optimized orders.
3. Analyze Your Positions
Visit your Portfolio to see:
- Your current Q-scores for each market
- Expected daily and monthly rewards
- Your share of the total reward pool
- Competition analysis
4. Discover New Opportunities
Use the Discover tool to find the best opportunities based on reward pool size, competition level, and capital efficiency.
Calm Markets
Finding Low-Competition Markets
Discover markets that are easier to trade in
The Discover page includes a "Calm" tab that shows markets with lower activity and less competition. These markets are ideal for placing orders that are less likely to be filled quickly.
Each calm market displays a stability score (0-100) based on three factors:
Stability Score Components
1. Volume Score (35% weight)
Lower 24-hour trading volume indicates less activity and competition. Markets with under $5k daily volume score highest, while markets with $5M+ volume score lowest.
2. Spread Score (35% weight)
Wider bid-ask spreads indicate less competition from other liquidity providers. Markets with 5%+ spreads are considered "calm" while tight 1% spreads indicate heavy competition.
3. Depth Score (30% weight)
Moderate orderbook depth ($100-$1,000) is ideal. Very shallow books are risky, while very deep books indicate many competing LPs.
Using Calm Markets Effectively
Best Practices:
- Look for stability scores above 70 for optimal conditions
- Balance stability with reward pool size - very calm markets may have lower rewards
- Monitor the actual spread percentage shown to ensure it meets your needs
- Check daily volume to understand how active the market really is
Real-Time Data
Live Orderbook Updates
WebSocket-powered real-time market data
When you open a market's detail drawer, the app connects to Polymarket's WebSocket server to receive live orderbook updates. You'll see:
- Live midpoint: Updated in real-time as orders change
- Current spread: Shows the actual bid-ask spread
- Trade notifications: See when trades occur on the market
- Connection status: A WiFi icon indicates live vs static data
Connection Status
The connection automatically reconnects if disconnected. Data falls back to the most recent cached values while reconnecting.
WebSocket Data Types
Book Snapshots
Full orderbook state sent when you first connect. Contains all current bids and asks with their prices and sizes.
Price Changes
Incremental updates when orders are added, modified, or removed. These keep the orderbook in sync without resending everything.
Last Trade Price
Notifications when trades execute on the market. Useful for monitoring activity and understanding current market interest.
Order Signing
Direct Order Placement
Sign and submit orders with MetaMask
You can place orders directly from the app using your MetaMask wallet. The process uses EIP-712 typed signatures - the same method Polymarket uses for their web app.
How Order Signing Works
1. Order Construction
When you click "Place Order", we construct an EIP-712 typed data structure containing the order details: token ID, price, size, side, and expiration.
2. MetaMask Signature
MetaMask shows you the order details for review. You sign with your private key to authorize the order.
3. API Submission
The signed order is sent to Polymarket's CLOB API. If accepted, it appears in the orderbook immediately.
{
"domain": {
"name": "Polymarket CTF Exchange",
"chainId": 137,
"verifyingContract": "0x..."
},
"Order": {
"salt", "maker", "signer", "taker",
"tokenId", "makerAmount", "takerAmount",
"side", "expiration", "nonce", "feeRateBps"
}
}NegRisk vs Standard Markets
Polymarket has two types of markets that use different exchange contracts:
Standard Markets
Simple yes/no binary markets. These use the CTF Exchange contract.
NegRisk Markets
Multi-outcome markets (e.g., "Who will win the election?"). These use the NegRisk CTF Exchange contract with different signing parameters.
Troubleshooting Orders
Common Issues:
- Signature rejected: Make sure you're on Polygon network in MetaMask
- Order rejected: Check that price is within valid range (0.01 - 0.99)
- Minimum size error: Orders must meet the market's minimum size (usually 100 shares)
- Nonce error: Wait a moment and try again - nonces are fetched from the API
Understanding Q-Scores
What is a Q-Score?
Your Q-score measures the quality and quantity of liquidity you provide. Polymarket uses this to determine your share of the daily reward pool.
Q_one = Score of your YES bids + NO asks
Q_two = Score of your YES asks + NO bids
Q_min = min(Q_one, Q_two)
Your daily reward is: (Your Q_min / Total Q_min) × Daily Pool
How Order Scores are Calculated
Each order receives a score based on:
1. Proximity to Midpoint
Orders closer to the market midpoint receive higher scores. The score decreases quadratically as you move away from the midpoint.
2. Order Size
Larger orders receive proportionally higher scores. Your score multiplies linearly with the number of shares.
3. Maximum Spread Limit
Orders beyond the maximum spread (typically 3¢ from midpoint) receive zero score.
Two-Sided Liquidity Requirement
For markets with midpoint between 10% and 90%, single-sided liquidity is allowed but receives Q_min = max(Q_one/3, Q_two/3). For extreme markets (<10% or >90%), two-sided liquidity is required.
Strategy Guide
Optimal Order Placement
Maximize your Q-score while minimizing risk
Recommended Strategy:
- Place orders at 30-40% of max spread from midpoint
- Split capital evenly between buy and sell orders
- Ensure each order meets minimum size requirements
- Rebalance when midpoint moves significantly
Market Selection Criteria
Choose the right markets to maximize ROI
Look for:
- High reward pool: More rewards available to distribute
- Low competition: Lower total Q_min means higher share for you
- Stable midpoint: Less need for frequent rebalancing
- Reasonable spread: Wider max spread allows safer order placement
- Sufficient time to close: Markets closing soon may not be worth the setup
Capital Efficiency Metric:
Calculate: Daily Reward / Capital Deployed
This shows your daily return percentage. Compare across markets to find the best opportunities.
Risk Management
Protect your capital while earning rewards
Key Risks:
- Adverse selection: Orders too close to midpoint may be filled at unfavorable prices
- Market resolution: Losing positions reduce overall profitability
- Competition changes: New LPs can reduce your reward share
- Midpoint shifts: Requires rebalancing to maintain Q-score
Frequently Asked Questions
How accurate are the reward calculations?
Our calculations use Polymarket's exact public formula and are typically accurate within ±1% of actual payouts. We validate our calculations against on-chain payout data.
When are rewards distributed?
Polymarket distributes liquidity rewards daily at approximately 00:00 UTC. Rewards are sent directly to your wallet on Polygon as USDC.
Do I need to keep my orders open to earn rewards?
Yes, rewards are calculated based on your open orders at the snapshot time (daily at 00:00 UTC). Orders must meet minimum size requirements and be within the max spread to qualify.
What happens if my order gets filled?
If your order is filled, it no longer contributes to your Q-score. You'll need to place new orders to maintain your reward share. This is why we recommend placing orders at a safe distance from the midpoint.
Can I provide liquidity on multiple markets?
Yes! You can earn rewards from as many markets as you want simultaneously. Use our portfolio view to track all your positions and total expected rewards.
Is there a minimum capital requirement?
Each market has a minimum order size (typically 100 shares). Your total capital requirement depends on the market's midpoint and the number of orders you want to place. Generally, $100-200 is a reasonable starting point per market.