oddsrail

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:

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.

Sharing and third parties

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.