PM Constraint Arbitrage
Use this skill when the user asks whether related markets are mispriced relative to each other, for example "does P(A) exceed P(B) even though A implies B?", or whether a cross-venue price gap survives fees.
Tools
MCP server (pip install oracle3, then run oracle3-mcp):
search_markets,get_quote,get_orderbookto find markets and read executable prices.check_constraint_liveto fetch quotes and fee schedules and evaluate a relation.check_constraintto evaluate a relation on quotes you supply.trading_feeto price a single fill under a venue's schedule.paper_order,paper_portfolioto paper-trade the legs.
Python API: oracle3.arbitrage.check_constraint and oracle3.fees.
Relations
| Relation | Bound | Quotes, in order |
|---|---|---|
| implication | P(A) <= P(B) when A implies B | A, B |
| exclusivity | probabilities sum to at most 1 | every outcome |
| complement | P(A) + P(B) = 1 | A, B |
| same_event | P(A) = P(B), one event on two venues | A, B |
| event_sum | probabilities sum to exactly 1 | every outcome |
Steps
- Find the markets with
search_marketsand read both markets' resolution rules withget_market. - Decide which relation holds. This is a judgment about the contract wording, not something the tool can verify.
- Run
check_constraint_livewith the relation and the markets in the order above. - Read
best.gross_edge_per_contract(edge before fees),best.fees_per_contractandbest.net_edge_per_contract. - Only if the net edge is positive and the book is deep enough, paper-trade each leg with
paper_orderat a limit no worse than the quoted ask.
Hard rules
- Never place real orders from this skill; the MCP server cannot, and the CLI
livemode is out of scope. - State the relation you assumed and why; a wrong relation turns an "arbitrage" into a directional bet.
- Report fees per leg. Kalshi taker fees are 0.07·M·C·P·(1−P); Polymarket taker fees are rate·C·p·(1−p) with a per-market rate; Polymarket makers pay nothing.
- The check assumes every leg fills at the quoted price. Say so when the displayed size is smaller than the order.


