Privacy policy
What oddsrail keeps, and what it never touches
Last updated 2 October 2026. This covers the website at oddsrail.app and the hosted server at mcp.oddsrail.app. The open-source package you run yourself sends nothing to us at all.
The self-hosted package
pip install oddsrail runs on your machine and talks only to Polymarket, Kalshi and the public blockchain APIs it needs. It has no telemetry, no analytics and no account. Your wallet private key stays in your environment and signs orders locally. The venue receives signed requests; it does not need your wallet private key.
The desktop extension runs this same package locally. Its host application manages extension settings and stores the private-key setting using its secure storage. It passes that key to the local OddsRail process for signing. Do not enter keys in conversations or on this website. Tool calls and their returned market or account data are visible to your AI client and are governed by that provider's policies.
Installing the extension downloads its pinned package and dependencies from PyPI through the local runtime; the installer is distributed through GitHub. Exporting a website draft is optional. When you paste a strategy brief into your AI client, its settings, market identifiers and any included notes become part of that conversation.
The hosted server (mcp.oddsrail.app)
When you connect an MCP client to the hosted server, or use its features from the website, we keep the minimum needed for what you use:
- Your email address, used only to sign you in by magic link. We do not send newsletters or share it.
- Your paper-trading ledger: simulated orders, fills and positions with a virtual bankroll. No real money exists in it.
- OAuth records: the client application that connected, and the access and refresh tokens that let it act as you. Tokens are stored hashed. You can disconnect from your client's settings at any time, which invalidates them.
- Server logs with request timestamps, paths and IP addresses, kept for up to 14 days for abuse prevention and debugging.
- Session keys, if you give a hosted agent trading permission: the key OddsRail generates for your Polymarket Deposit Wallet, which the agent trades with, and a receipt of each authorization or revocation you sign. The key and your signed requests are encrypted.
- Perps authorizations, if you authorize Perps trading: the proxy key OddsRail generates for your Perps account and the secret Polymarket issues for it, both encrypted. The server uses them to run your bots, close positions or set exits when you ask from the Perps page, and read your Perps account.
- Agent and bot records: the markets and limits you choose, orders, fills, results and an event log, so agents and bots survive a restart and you can see what they did.
- Leaderboard listing, for every wallet that signs in: your signing address, the Polymarket trading wallets verified as yours, and your Perps account's public profit, account value and fills. The leaderboard shows each wallet under a shortened address (the first and last four characters, like 0x69cd…d48d) with its prediction-market profit and volume and its Perps profit, volume and account value, all computed from Polymarket's public data. It shows no name, publishes no full address, and does not link to your Polymarket profile. There is no setting to hide a listing. To be removed, email us from the contact below with the address and a message signed by that wallet asking for removal, so we know the request comes from its owner.
- Service counters: daily counts of page views by page and referring site, of unique visitors, of wallets that sign in and of refused requests by kind. They hold no address or identifier, are kept for 400 days and only we can see them. The addresses and paths behind refused requests are kept for 14 days, like server logs.
The hosted server never holds your wallet's private key or any payment details. Hosted agents and Perps bots do trade with real money for owners who opt in: they place and cancel real orders on Polymarket according to the markets and limits each owner sets, and trading can lose money. They sign with delegated keys, never with your wallet key. A session key can trade for your Deposit Wallet but cannot withdraw from it; a Perps proxy can trade and read your Perps account but cannot deposit or withdraw. Keys and secrets are encrypted at rest with AES-256-GCM under a master key stored separately from the database, decrypted only inside the hosted service when it uses them, and never sent to your browser. Authorizing Perps also gives your Perps account OddsRail's referral code if it has none; your fees stay the same. Market data the server fetches on your behalf comes from Polymarket's public APIs and is not stored beyond short caches.
A session-key permission lasts about 180 days and a Perps authorization 30 days. When one expires, Polymarket stops accepting the key, the hosted agent stops trading and Perps bots pause. You can revoke either sooner from the website. For a hosted agent, choose Review revocation under Trading permission on the Build page and sign it in your wallet; once it confirms, Polymarket stops the key from trading and cancels its open orders. For Perps, click Authorized on the Perps page and choose Revoke authorization: the server asks Polymarket to delete the proxy, stops using it at once, and your bots pause. Revoking does not close positions, and exits Polymarket already holds for a Perps position stay in place. The server never uses a revoked or expired key again; its encrypted record stays on the server with your authorization history.
Conversation content stays between you and your AI client. The server sees only the tool calls the client makes and the results it returns.
The website
The guided builder stores strategy drafts, optional notes, selected market identifiers and your theme preference in this browser. Clearing site storage removes these drafts. Connecting a browser wallet reveals its public address. Signing the OddsRail sign-in message proves control of that signing address; it does not authorize trading, transfers or access to funds. We never ask for your wallet private key.
When enabled, WalletConnect lets you connect a wallet app by QR code or a mobile link. Its provider is loaded only when you choose it or restore a remembered WalletConnect connection. Encrypted connection messages travel through WalletConnect relay services; your browser stores pairing and session information so navigation can reconnect. OddsRail disables optional provider telemetry. Signing out disconnects that WalletConnect session. Your wallet private key stays in your wallet.
Wallet sign-in uses essential, HTTP-only cookies: a browser context for a five-minute sign-in challenge and an eight-hour session. The server stores your signing address, chain, sign-in origin, expiry and hashed session identifiers. Signatures are checked and are not stored. Expired challenges and sessions are removed during subsequent sign-in or sign-out activity. Sign out from the wallet menu to revoke the browser session. Wallet sessions are separate from email-based MCP accounts and do not establish ownership of browser drafts.
Market searches are sent to the hosted service, which retrieves public venue data. After sign-in, your public address is sent to the hosted service and Polymarket to look up its public profile, positions, holdings value and activity. The address may appear in request logs. A public trading-account association does not itself prove control of that trading account.
If you choose Connect trading account, the hosted service checks public Polygon contract state to verify supported trading accounts. Your browser then sends a separate wallet-signed authentication message directly to Polymarket to create or derive trading API credentials. This connection uses them to read exchange balances, allowances, open orders and account restrictions. It does not submit orders, approve token spending or grant an agent a session key.
Trading API credentials stay in page memory and are discarded when you disconnect the trading connection, leave the page, change wallets, end your sign-in or reach the connection's 30-minute limit. They are not sent to the OddsRail server or saved in browser storage. Disconnect this tab clears this tab's access; it does not revoke an API credential at Polymarket. API credentials can support order management, so they should not be treated as credentials with a venue-enforced read-only scope.
oddsrail.app is a static site served by Cloudflare. We run no third-party analytics. Each page sends one page-view count to the hosted service: the page path and the host name of the site that linked to it. No cookie or identifier is set. To count unique visitors per day, the service hashes your IP address and browser signature with a value that is deleted at the end of each day, so visits cannot be linked across days and the address is not stored for this count. Browsers that send Do Not Track are not counted. Our admin page also counts the wallets that sign in each day. To count each wallet once a day, the service checks a hash of the signing address that it holds in memory only, under a key that is never saved and is replaced at the end of each day; only the number for each day is saved, so the count holds no address or identifier. Cloudflare may log requests as part of serving the site; its own privacy policy governs that. The chosen wallet and a connection flag are saved in browser local storage, with session storage as a fallback so navigation can restore an existing session without prompting for another signature. Session tokens are not available to page scripts or stored in local storage. Portfolio responses stay in page memory and are cleared on sign-out or account change.
Retention and deletion
A leaderboard listing, and the Perps fills stored for it (at most the last 31 days, older fills only as a running volume total), is kept until you ask us to remove it. Removal deletes the stored trading wallets and Perps history; the signing address is kept only as a flag so it is not listed again.
Accounts, ledgers and tokens are kept while the account exists. Expired tokens and sign-in links are purged automatically. To delete your account and everything attached to it, email hello@oddsrail.app from the address you signed up with; deletion completes within 7 days.
Contact
Questions about this policy: hello@oddsrail.app. Changes to this policy are noted with the date at the top of this page.