DOCS

Get started with OddsRail.

Learn the strategies, connect your account and understand what your agent will do.

01

Choose where to start

02

Build your strategy

  1. Pick the idea.Choose a strategy, name your agent and adjust its settings. The guides below explain what each setting changes.
  2. Choose markets and limits.Select the exact market or a market universe. Review the chart, share size and dollar limits.
  3. Review and choose your setup.Hosted quoting checks your saved permission and funds before you confirm Start. Other prediction strategies can be saved as a brief for your AI client.

Saving a draft starts nothing. A strategy brief preserves your settings and notes; it does not install an automatic runner or enforce those rules by itself.

03

Prediction strategies

Open a strategy for a short video, an example and its key settings. These examples explain the rules; they are not live signals or performance forecasts.

Quote both sidesRest a buy quote on YES and another on NO.

Hosted quoting pilot · one binary market

  1. Choose shares per outcome and a distance below each midpoint.
  2. At a 50¢ midpoint with a 2¢ distance, each bid is 48¢. Twenty shares cost up to $9.60 per quote before fees.
  3. A quote may fill on one side, both sides or neither. The agent checks funds and caps again before placing orders.

Settings: More shares increase order size. More distance lowers the bids and may reduce fills. Dollar caps can reduce the share count.

Keep in mind: Both orders are buys. A NO bid appears at the complementary level on a single YES chart; it is not a sell order. One-sided fills can leave a losing position.

Fade sharp movesLook for a sharp move that may reverse.

Local strategy brief

  1. Set a minimum one-minute jump, such as 8¢.
  2. Use the history window to assess how earlier jumps behaved. A price jump alone is not enough.
  3. When the reversion check qualifies, trade against the move. The video shows one possible pullback, not a promised result.

Settings: Minimum jump filters small moves. The history window supplies the past observations used by the reversion check.

Keep in mind: A move can keep going. New information can permanently change the market price.

High-probability outcomesReview outcomes near the top of your price range.

Local strategy brief

  1. Choose a minimum and maximum entry price. The example range is 90¢–96¢.
  2. Consider the outcome only when its ask is in range and the other entry checks pass. Check how and when the market resolves.
  3. A share bought at 92¢ pays $1 if it wins, or $0 if it loses: 8¢ upside versus 92¢ at risk before fees. A high price is not a guarantee.

Settings: The entry-price range narrows which outcomes the strategy considers. A high price is not a guarantee of resolution.

Keep in mind: At 92¢, the upside is 8¢ before fees while the stake at risk is 92¢ per share.

Trade my forecastCompare the market price with your own probability.

Local strategy brief

  1. Write an exact market title and your chance of YES, such as 0.65 for 65%. The implied chance of NO is 35%; the strategy compares both outcomes with their asking prices.
  2. A 65% forecast versus a 60¢ buy price has a 5¢ gap before fees. The gap must clear your minimum edge.
  3. Kelly sizing uses your forecast and price to calculate a stake. A 0.25 multiplier uses one quarter of that stake; dollar caps still apply.

Settings: Minimum edge sets the required gap. The Kelly multiplier adjusts stake size, not the confidence of your forecast.

Keep in mind: If your forecast is wrong, the apparent edge may not exist. Fractional sizing does not guarantee a profit or a loss ceiling.

Follow momentumTrade in the direction of a qualifying price move.

Local strategy brief

  1. Compare the first and latest available prices in your time window. The example rises from 40¢ to 50¢, a net move of 10¢.
  2. If that move clears your threshold, consider YES after a rise or NO after a fall. Volume, spread, price and spending checks still apply.
  3. The two dashed paths show possible continuation and reversal. A qualifying trend does not predict which path will happen.

Settings: Minimum move filters small changes. The time window determines how much price history is compared.

Keep in mind: Momentum can reverse after entry. This is a directional strategy, not a prediction that the trend will continue.

The hosted prediction runner currently supports Quote both sides on one binary market for enabled wallets. The other strategies remain available as local strategy briefs; these videos do not enable new hosted strategies.

04

Perps strategies

Open Perps → Agents to choose a strategy. The information button beside each strategy opens its guide below. Watch the example, then check what each setting changes.

Market makeKeep post-only bids and asks near the current mark.

Hosted Perps agent

  1. At a $100 mark, a 40 basis-point spread places a bid near $99.80 and an ask near $100.20. These are post-only limit orders; either side may fill first.
  2. When the mark moves enough to trigger a requote, the prices update. At $100.30 the example bid is about $100.10 and the ask about $100.50.
  3. Repeated buy fills create a long position. At a cap of twice one order size, the next buy quote is withheld; a sell quote can still reduce the position.

What the settings change

Bid and ask distances
Set each quote’s distance from the mark independently, or drag its preview line. Both follow the market. 100 basis points (bps) = 1%; a 10 bps bid and 30 bps ask sit 0.10% below and 0.30% above the mark.
Adapt within limits
Optional and off by default. Choose a maximum total spread. Both distances widen proportionally, keeping your bid/ask ratio. Chart handles show base distances; the ticket shows starting prices. Quotes start at that maximum while the agent observes 30 seconds of prices. If the last minute’s price range reaches your base spread, it widens to your maximum; it returns to base below half that range. Missing data holds new quotes. Capital, leverage, position cap and stop loss stay fixed. Latest activity shows what the agent selected and what the exchange confirmed.
Requote distance
How far the mark must move before quotes are refreshed. 10 bps means 0.10%. A smaller distance replaces orders more often.
Max position
A multiple of one quote’s size. At 2×, another order is omitted if it would push the net position beyond two order sizes.
Capital, leverage and stop loss
Each quote uses roughly half of capital × leverage. Set stop loss as a percentage of committed capital; the preview shows its dollar value. Reaching that loss cancels quotes and attempts to close the position. The exit price can change the final loss.

Keep in mind: One side can fill repeatedly. Spread capture is not guaranteed profit after price moves, fees and funding.

GridPlace orders across a chosen price range.

Hosted Perps agent

  1. Split $98–$102 into four intervals: the five boundary prices are $98, $99, $100, $101 and $102.
  2. In this neutral example, a buy at $99 fills and is followed by a sell at the next level, $100. This is one possible completed trade, before costs.
  3. The price may then break below the range. Other buys can leave a position open even after an earlier grid trade made money.

What the settings change

Range and rungs
Each rung is an interval between two neighboring prices. Four rungs across $98–$102 produce $1 spacing and five boundary prices.
Direction
Neutral can open longs or shorts and starts without a seed position. Long only opens and closes longs; its sell orders are reduce-only. Short only opens and closes shorts; its buy orders are reduce-only. Directional grids first seed inventory when needed. Changing Direction in a new setup does not change an existing agent.
Capital and leverage
Capital × leverage is divided across the rungs. More rungs mean smaller orders, which must still meet market minimums.
Stop loss
A percentage of committed capital, with its dollar value shown in the preview. Reaching that loss cancels the remaining orders and attempts to close the position. Exposure remains until the exit completes.

Keep in mind: A strong trend can move outside the range and leave an exposed position. Grid spacing is not a profit guarantee.

DCAAdd to a position when price moves against it.

Hosted Perps agent

  1. Long example: a $100 notional base order at $100 buys one unit. The example uses two add orders, a 2% price step, and both multipliers set to 1.
  2. If the price falls, two more $100 notional orders fill at $98 and $96. Their quantities differ because the same dollar amount buys more at a lower price.
  3. Before quantity rounding, $300 buys about 3.062 units. The weighted average is about $97.97 and a 1.5% take-profit target is about $99.44. The lower average comes with more exposure.

What the settings change

Add orders
Extra entries after the price moves against the position. They add exposure; they are not protective stops or a time-based investment schedule.
Price step and step multiplier
With a 2% step and a 1× multiplier, adds sit 2% and 4% from the base entry. At 1.5×, the gaps are 2% then 3%, so the adds sit 2% and 5% from the base.
Size multiplier
Multiplies each order’s notional amount relative to the previous one. At 1×, all orders use equal dollars; their quantities still depend on their fill prices.
Target and stop
The take-profit percentage follows the weighted average entry. The configured stop-loss percentage is measured from the original base entry and must sit beyond the last planned add.
Repeat
Starts a new cycle only after verified take-profit fills, including trailing take profit. A stop loss, manual close or unverified exit ends the agent without reopening. Previous orders and settlement must finish first.

Keep in mind: These are averaging orders, not protection. The price can keep moving against the position and reach liquidation.

ChannelTrade around two lines you draw on the chart.

Hosted Perps agent

  1. Draw the lower and upper boundaries. This flat example uses $100 and $104; sloped lines are projected through time.
  2. A long starts near the lower line. A target 75% across the $4 channel is $103. The rising dashed path shows a possible target exit.
  3. The falling dashed path is an alternative outcome: a 1% stop past the $100 lower line is $99. This percentage uses the line price, not the channel width. A stop can execute at a different price.

What the settings change

Lines and direction
The agent projects your lines forward. Long enters near the lower boundary; short near the upper boundary. Both sides allows either direction, one position at a time.
Take profit
Choose the other line, halfway across, or a custom distance in Advanced settings. From a $100 lower line to a $104 upper line, halfway gives a $102 long target. A short uses the mirrored calculation.
Planned loss per trade ($)
Sets a stop distance from your capital and leverage. The review estimates the loss at the current lines, before costs; moving lines, fees, funding and slippage can increase it. You can also edit the percentage in Advanced settings or drag the stop on the chart.
Rest limit orders
Places post-only entries near the lines instead of waiting to submit a market entry. A gap or an already-crossed target may still require a market exit.
Keep trading the channel
After a take-profit exit, wait for another entry. A stop ends the agent. If you set an end time, new entries stop when that time is reached.

Keep in mind: Price can break out of the channel. A drawn line does not provide price support or guarantee an exit.

Trade a drawing

Draw on the chart, choose Trade this, then review the ticket and press Start. Dragging changes your draft; it does not change a running agent.

  • Range box: a flat Channel. Buy near the lower boundary, sell near the upper boundary, or choose both sides.
  • Trendline: buy a fresh break above or sell a fresh break below the moving line. Set both exits and an expiry. It uses sampled mark prices, not candle closes, and does not replay crossings during pauses or outages.
  • Entry zone: Scale limit orders across your drawn band. Exits follow the average fill.
What about TWAP, Scale and Chase?

Find these under Trade → Pro. TWAP spreads an order over time. Scale spreads limit orders across a price range. Chase follows the book with a moving limit order. They are execution tools; filling an order does not mean the trade will be profitable.

Capital is the margin you commit; leverage sets the position size. For example, $50 at 2× gives about $100 of notional exposure before rounding. Fees, funding and slippage change the result, and a stop is not a guaranteed loss ceiling.

05

Understand each connection

Website sign-in
A wallet signature verifies ownership for your OddsRail session. It does not authorize an agent to trade.
Trading-account connection
Cash is the pUSD balance of your trading wallet; holdings are your positions. Exchange reads check approvals and open orders. Cash may include funds committed to orders.
Local signing
The desktop extension uses the signer key for your existing compatible Polymarket account. Website sign-in does not configure this local connection.

Trading-account and signer addresses may differ. Use the account belonging to your signer; an unrelated wallet address will not give it access.

06

Set up local trading deliberately

Install oddsrail locally and connect it to your MCP-compatible AI client. Keep dry-run mode enabled while exploring. Confirm the connection and active limits with server_info.

  1. Prepare your Polymarket account.Use an existing compatible account with funds and trading approvals already set up. The installer does not create or fund one for you.
  2. Configure the extension locally.Enter the matching signer private key and trading account's public wallet address in the extension settings. Never put a private key in a chat or on this website.
  3. Review controls and the proposed order.Check the local caps below. Ask your AI client to inspect the exact market, outcome, side, price and shares, and run quote_cost and check_order.
  4. Enable live mode only when ready.Deliberately uncheck “Paper trading”, confirm the new mode with server_info, and separately approve the live order in your client.

check_order is a separate review tool; it is not automatically called by every order submission. A successful check does not place or authorize an order.

07

Know what the limits measure

Installer default · per order$25

Maximum notional for one order. Checked in simulation and live mode.

Installer default · per process$100

Cumulative submitted live-order notional in this local server process.

Restarting the extension resets the session counter. It is not a daily loss limit, an account-wide budget or a cap shared across multiple installations.

The builder's allocated capital, stop loss, daily loss rule and position limits remain requested settings. Copying a brief does not turn them into enforced local controls.

Environment settings for other MCP clients

These guards are optional outside the desktop installer. Configure them in your local environment and confirm the active values with server_info.

ODDSRAIL_MAX_ORDER_NOTIONAL
Per-order notional cap.
ODDSRAIL_MAX_SESSION_NOTIONAL
Cumulative submitted live-order notional for this process.
ODDSRAIL_ALLOWED_MARKETS
Comma-separated exact Polymarket outcome token IDs. The builder does not install this allowlist.
ODDSRAIL_MAX_OPEN_ORDERS
Maximum resting orders, checked against the live account. This counts orders, not held positions.
08

Hosted agents are a limited pilot

The hosted runner quotes both sides of one market with post-only orders, using a session key your Deposit Wallet has authorized. It is enabled per wallet during the pilot. A saved draft, wallet sign-in or readiness check does not start it; only the start button on a ready draft does, and stopping cancels the resting quotes.

Returning users can reuse a valid saved permission after signing in. A fresh readiness check verifies the account and balance; it does not request another session-key signature. New accounts and permission changes still need wallet approval.

Other prediction strategies, such as fade or momentum, remain local strategy briefs. They do not keep a website strategy running in the background. Perps agents use their own authorization and controls on the Perps page.

09

Paper trade with the hosted connector

The hosted connector runs the OddsRail MCP server at https://mcp.oddsrail.app/mcp, so there is nothing to install. It is paper trading only: its MCP tools use no wallet keys and never send a real order. Each account gets a paper ledger with a virtual $1,000 bankroll, and paper orders fill against the live Polymarket order book. It is separate from the hosted agents above, and an email sign-in gives it no access to any wallet.

  1. Add the server URL.In an AI client that supports remote MCP servers over HTTP with OAuth, add a remote server or custom connector with the URL https://mcp.oddsrail.app/mcp.
  2. Sign in with your email.When your client asks you to authorize, enter your email address. OddsRail sends a one-time sign-in link: open it within 15 minutes and press Continue. There is no password and no wallet to connect.
  3. Check the connection.Start a new chat and ask your client to call server_info. Its hosted field is true on this server.

The 22 tools

Market data
search_markets, find_markets, get_market, get_orderbook, price_history, watch_book, closing_soon, resolution_criteria, get_positions
Signals and costs
overshoot_signal, dispute_risk, quote_cost, position_size
Paper trading
check_order, place_order, cancel_order, paper_positions, paper_reset
Public arena board
arena_register, arena_unregister, arena_status
Status
server_info

check_order is opt-in: ask your agent to call it before each place_order; it never runs on its own. arena_register makes your paper ledger public under the display name you choose, in the arena JSON feed; arena_unregister removes it, and while it is listed the ledger cannot be reset.

Account and order-status tools, the gasless position tools, compare_venues, settlement_audit and the Kalshi tools are not served here. For live trading or Kalshi, set up the local server.

Prompts to try

Markets and spreads
“Find Polymarket markets about the next Fed rate decision and list each one's best bid, best ask and spread.”
Cost with slippage
“What would 200 YES shares on the first market cost right now? Walk the order book and show the average price and the slippage.”
Check, then paper order
“Run check_order on a paper buy of 50 YES at 0.42 on that market. If the verdict is ok, place it as a paper order.”
Positions and P&L
“Show my paper positions with cash, current marks and realized and unrealized P&L.”
Resolution rules
“How does this market resolve? Show the resolution criteria and the source that decides it.”

If something goes wrong

The sign-in email did not arrive, or the link expired

Check your spam folder. A sign-in link works once, for 15 minutes, and the sign-in page also expires 15 minutes after your client opens it. If either has expired, go back to your client and connect again. One address can receive five sign-in emails per hour; after that, open the latest one or wait.

Signing out or revoking access

Disconnect or remove the connector in your client's settings. The server supports OAuth token revocation, so a client that revokes its tokens on disconnect ends access at once. Otherwise an access token expires within an hour, and a refresh token after 30 days without use. To delete the account and its paper ledger, email hello@oddsrail.app from the address you signed in with.

Kalshi markets are missing

The hosted connector serves Polymarket only. Kalshi's API Developer Agreement limits API use to a member's own trading, so a shared service cannot route it. A search across both venues returns Polymarket results with a note. For Kalshi, run the local server with your own Kalshi API key.

Paper results look better than live trading would

They are an upper bound. Paper fills assume no queue position, no latency, no market impact and no fees. Use quote_cost to see the depth behind a price before you rely on a paper result.

What the account stores and how long it is kept: privacy policy.

10

Find your next step

My AI client does not show the OddsRail tools

Check that the local MCP server is configured and enabled in your client. Use command oddsrail with no arguments after installing the package, then start a new chat. Use server_info to confirm the server responds.

I only see simulated orders

This is the default. Leave it enabled while reviewing the setup. For real orders, complete local trading setup and verify the resulting dry_run value. Website wallet sign-in does not change the extension's mode.

My cash or trading account cannot be verified

Use Retry cash on the portfolio when a balance read fails. Holdings can be $0 while uninvested cash remains in your account. An unavailable balance is not zero. Check that you are viewing the same trading wallet as on Polymarket.

An order was blocked or its result is unknown

Read the returned reason and keep the guard in place. If acceptance is unconfirmed, do not submit the same order again automatically. Reconcile open_orders and my_fills; use order_status when an order ID is available.

Market data works, but trading does not

Public data access does not establish trading eligibility, funding or permissions. Inspect the reported error and server_info. Venue restrictions still apply; read access is not proof that orders are allowed.

Still stuck? Open a support issue with your version and the error. Remove keys, credentials and other sensitive details.

11

Developer resources

For your own MCP client, install the Python package and launch oddsrail as a local stdio server. Python 3.11 or newer is required.

pip install oddsrail==0.19.0
oddsrail  # command for your client's local stdio MCP connection

Review begins with server_info, find_markets(query, venues="polymarket"), get_market, quote_cost and check_order. Reading a market and submitting an order are separate operations.