Install any skill in seconds. Free to start, no credit card required.
Get Started Free →High-risk Polymarket trading operations — configure wallet-backed CLOB access, place limit/market orders, cancel orders, and view account-specific orders/trades. Requires py-clob-client-v2 and a user-controlled wallet. Use only when the user explicitly asks to trade or manage orders in the current session. Do not use for read-only odds, probabilities, market search, or event discovery — use the `polymarket` skill instead. Do not ask the user to paste private keys into chat. Do not place or canc
.claude/skills/machina-sports-polymarket-trading/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 182% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 173% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 292% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 144% | 0% |
This skill is separate from the read-only polymarket skill. It exists so agents can keep normal market-intelligence workflows read-only and only load trading affordances when the user explicitly requests them.
Before any trading command:
token_id, side, price/amount, size, and order type.Install the optional trading dependency outside the agent chat/session:
bashpython -m pip install 'sports-skills[polymarket]'
Credential setup must happen outside the agent transcript using a secure local environment or secret manager. The runtime expects Polymarket CLOB credentials to be available to the process; do not paste wallet secrets into chat.
Invoke these through the separate CLI namespace:
bashsports-skills polymarket-trading get_orders sports-skills polymarket-trading create_order --token_id=<token_id> --side=buy --price=0.50 --size=1
| Command | Required | Optional | Description | |---|---|---|---| | configure | | signature_type, funder | Configure wallet metadata for this process; do not pass secrets through chat | | create_order | token_id, side, price, size | order_type | Place a limit order | | market_order | token_id, side, amount | | Place a market order | | cancel_order | order_id | | Cancel one order | | cancel_all_orders | | | Cancel all open orders | | get_orders | | market | View open orders | | get_user_trades | | | View account-specific trades |
User: "Place a $10 market buy on token 123..."
Agent must respond with a confirmation summary before tool execution:
textConfirm Polymarket order: - action: market_order - side: buy - token_id: 123... - amount: 10 USDC - account: your configured local Polymarket wallet Reply explicitly with "confirm" to proceed.
Only proceed after explicit confirmation.
polymarket first to fetch the market, then ask the user to confirm the exact token.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 5,924 | 2,746 | -54% | 1 | 1 | 0% | 1,012 | 1,248 | +23% | 0 | 0 | — |
case-02 | fail→pass | 2,174 | 2,566 | +18% | 1 | 1 | 0% | 400 | 1,129 | +182% | 0 | 0 | — |
case-03 | fail→pass | 2,341 | 2,934 | +25% | 1 | 1 | 0% | 464 | 1,268 | +173% | 0 | 0 | — |
case-04 | pass→pass | 5,264 | 5,790 | +10% | 1 | 1 | 0% | 1,002 | 1,616 | +61% | 0 | 0 | — |
case-05 | fail→pass | 2,564 | 4,789 | +87% | 1 | 1 | 0% | 414 | 1,624 | +292% | 0 | 0 | — |
case-06 | pass→pass | 11,611 | 3,953 | -66% | 1 | 1 | 0% | 1,741 | 1,124 | -35% | 0 | 0 | — |
case-07 | fail→pass | 3,354 | 3,709 | +11% | 1 | 1 | 0% | 566 | 1,383 | +144% | 0 | 0 | — |
case-08 | fail→pass | 15,646 | 6,472 | -59% | 1 | 1 | 0% | 2,381 | 1,795 | -25% | 0 | 0 | — |
case-09 | pass→pass | 11,542 | 3,209 | -72% | 1 | 1 | 0% | 2,292 | 1,284 | -44% | 0 | 0 | — |
case-10 | fail→pass | 7,217 | 1,689 | -77% | 1 | 1 | 0% | 1,382 | 947 | -31% | 0 | 0 | — |
case-11 | fail→fail | 12,171 | 4,516 | -63% | 1 | 1 | 0% | 2,172 | 1,458 | -33% | 0 | 0 | — |
case-12 | pass→pass | 7,959 | 2,775 | -65% | 1 | 1 | 0% | 1,386 | 1,174 | -15% | 0 | 0 | — |
case-13 | fail→pass | 3,017 | 3,461 | +15% | 1 | 1 | 0% | 479 | 1,294 | +170% | 0 | 0 | — |
case-14 | fail→pass | 7,194 | 1,211 | -83% | 1 | 1 | 0% | 1,217 | 873 | -28% | 0 | 0 | — |
case-15 | pass→pass | 13,240 | 2,329 | -82% | 1 | 1 | 0% | 2,390 | 1,063 | -56% | 0 | 0 | — |
case-16 | fail→pass | 8,125 | 1,538 | -81% | 1 | 1 | 0% | 1,502 | 917 | -39% | 0 | 0 | — |
case-17 | pass→pass | 5,435 | 1,467 | -73% | 1 | 1 | 0% | 972 | 873 | -10% | 0 | 0 | — |
case-18 | fail→pass | 4,734 | 5,236 | +11% | 1 | 1 | 0% | 782 | 1,472 | +88% | 0 | 0 | — |
case-19 | pass→pass | 4,301 | 2,606 | -39% | 1 | 1 | 0% | 661 | 1,173 | +77% | 0 | 0 | — |
case-20 | pass→pass | 12,924 | 9,315 | -28% | 1 | 1 | 0% | 2,608 | 2,547 | -2% | 0 | 0 | — |
case-21 | pass→pass | 9,593 | 6,447 | -33% | 1 | 1 | 0% | 1,884 | 1,826 | -3% | 0 | 0 | — |
case-22 | pass→pass | 19,251 | 6,235 | -68% | 1 | 1 | 0% | 2,972 | 1,704 | -43% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.