Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Prepare or run a polished BlockRun trading demo that discovers a current Polymarket market, combines live price, probability history, smart-money, and liquidity evidence into a balanced signal, produces a real order dry-run, and verifies orders or positions. Use for live demos, signal-to-trade workflows, current crypto prediction markets, or when an agent must decide whether a candidate is safe and presentable before trading.
.claude/skills/blockrunai-signal-to-trade-demo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-11 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 11% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -8% | 0% |
Run one reproducible chain: discover → verify → analyze → preview → inspect. Treat signals as evidence, never as a promise of profit. Never expose a wallet, credential, order ID, or transaction hash in presentation output.
Read references/demo-cases.md when selecting a case or preparing a fallback.
resources. Those responses can contain wallet-derived identifiers before the final answer is redacted. The presenter performs account readiness privately before screen sharing.
confirm:true. Continue with live data and a dry-run order preview only. A Stanford/US presentation is always dry-run mode.
blockrun_polymarket_read action:"preview". It hasno confirmation input and cannot sign or submit an order. A real order requires the user's explicit approval of the exact market, outcome, amount, price/type, and current region eligibility.
min_order_size and book depth. Never present a smaller, non-executable preview as valid. Do not split orders to bypass caps.
@blockrun/llm >= 3.8.4, which is what makes concurrent payments distinct.
wallet, price, dex, markets, surf, defi, rpc, polymarket_read, polymarket.
blockrun_wallet, runsetup, and inspect positions/orders. Never include those raw calls in the presentation conversation.
discovery. No account state is required to preview a CLOB order.
Use a dynamic search rather than a hard-coded condition or token ID:
textblockrun_markets { path: "markets/search", params: { q: "Bitcoin", status: "open", venue: "polymarket", limit: "20" } }
markets/search is the discovery path for a demo — it ranks across venues in one call. Do not automatically select the first polymarket/crypto-updown result because that feed can contain future placeholders with no liquidity. Rank candidates by:
Resolve the selected market using polymarket/markets/keyset with condition_id, status:"open", and a small limit. Do not invent Gamma-only parameters such as active, closed, order, or ascending; the MCP rejects those before payment. Predexon's own search, sort, end_after, and end_before filters are supported on that endpoint.
Use four independent lenses where the market supports them:
blockrun_price, then compute theexact percentage move required to reach the market threshold before expiry.
text blockrun_markets { path: "polymarket/candlesticks/token/<TOKEN_ID>", params: { interval: "1440", start_time: "<UNIX_SECONDS>", end_time: "<UNIX_SECONDS>" } }
interval is integer minutes (1440, not 1h) and is optional. 60 was observed returning a paid 400 where 1440 worked; start_time and end_time are Unix seconds.
text blockrun_markets { path: "polymarket/market/<CONDITION_ID>/smart-money", params: { window: "30d", min_trades: "100" } }
Report wallet count, net-buyer share, volume, and aggregate PnL. A high buyer share with negative PnL is mixed evidence, not automatically bullish.
token_id,start_time, and end_time in Unix milliseconds. The order dry-run is the authoritative live fillability check.
Record the timestamp and data source for every observation. If a source fails, label it unavailable and continue; never manufacture a value.
Present an evidence table with these columns:
| Source | Observation | Supports | Reliability | |---|---|---|---| | Spot vs threshold | Exact distance and time remaining | Yes/No/Mixed | High | | Market trend | Probability change over a fixed window | Yes/No/Mixed | Medium | | Smart-money cohort | Buyer share, volume, PnL | Yes/No/Mixed | Medium | | Book/liquidity | Spread, available size, 24h activity | Executable/Thin | High |
Then state:
low, medium, or high) with a reason;or NO TRADE when gates fail.
Do not describe the result as financial advice or a guaranteed “good signal.”
Preview through the dedicated non-destructive action:
textblockrun_polymarket_read { action: "preview", side: "buy", token_id: "<TOKEN_ID>", amount_usd: <SMALLEST_WHOLE_DOLLAR_FROM_1_TO_5_THAT_MEETS_MIN_SIZE>, order_type: "FOK" }
Show the outcome, live best ask, estimated shares, max cost, and the explicit line DRY RUN — no order signed or submitted.
If the user explicitly approves a real order and the region is permitted, repeat the exact economics with blockrun_polymarket action buy/sell and confirm:true, then use blockrun_polymarket_read to inspect positions and open orders. Redact all identifiers. If a FOK does not fill, report it honestly; do not silently switch to FAK or raise the price.
End with a compact slide-ready block:
textLIVE SIGNAL SNAPSHOT — <UTC timestamp> Market: <question> | Implied probability: <p> Underlying: <spot> | Required move: <x%> | Time left: <duration> Trend: <change> | Smart money: <buyer share + PnL caveat> Liquidity: <spread/activity> Verdict: <side or NO TRADE> | Confidence: <level> Order: $<amount> <side> preview | DRY RUN / SUBMITTED Safety: local signing, capped notional, IDs redacted
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→pass | 10,501 | 2,364 | -77% | 1 | 1 | 0% | 1,755 | 2,122 | +21% | 0 | 0 | — |
case-01 | fail→fail | 22,229 | 7,035 | -68% | 1 | 1 | 0% | 3,771 | 2,167 | -43% | 0 | 0 | — |
case-02 | fail→fail | 27,214 | 6,720 | -75% | 1 | 1 | 0% | 4,195 | 2,060 | -51% | 0 | 0 | — |
case-03 | fail→fail | 21,801 | 7,751 | -64% | 1 | 1 | 0% | 3,659 | 2,181 | -40% | 0 | 0 | — |
case-04 | fail→fail | 16,512 | 8,344 | -49% | 1 | 1 | 0% | 2,752 | 2,297 | -17% | 0 | 0 | — |
case-05 | fail→fail | 9,923 | 6,516 | -34% | 1 | 1 | 0% | 1,563 | 2,541 | +63% | 0 | 0 | — |
case-06 | fail→fail | 13,666 | 5,896 | -57% | 1 | 1 | 0% | 2,196 | 2,690 | +22% | 0 | 0 | — |
case-07 | fail→pass | 11,074 | 2,923 | -74% | 1 | 1 | 0% | 1,694 | 2,161 | +28% | 0 | 0 | — |
case-08 | fail→pass | 13,650 | 7,164 | -48% | 1 | 1 | 0% | 1,940 | 2,971 | +53% | 0 | 0 | — |
case-09 | fail→pass | 14,319 | 5,071 | -65% | 1 | 1 | 0% | 2,435 | 2,705 | +11% | 0 | 0 | — |
case-10 | pass→pass | 9,184 | 4,515 | -51% | 1 | 1 | 0% | 1,552 | 2,442 | +57% | 0 | 0 | — |
case-12 | pass→pass | 3,103 | 3,216 | +4% | 1 | 1 | 0% | 490 | 2,227 | +354% | 0 | 0 | — |
case-13 | fail→pass | 15,682 | 2,976 | -81% | 1 | 1 | 0% | 2,343 | 2,165 | -8% | 0 | 0 | — |
case-14 | fail→pass | 10,282 | 4,763 | -54% | 1 | 1 | 0% | 1,723 | 2,594 | +51% | 0 | 0 | — |
case-15 | fail→pass | 13,506 | 5,244 | -61% | 1 | 1 | 0% | 2,008 | 2,521 | +26% | 0 | 0 | — |
case-16 | pass→pass | 9,682 | 8,630 | -11% | 1 | 1 | 0% | 1,351 | 2,913 | +116% | 0 | 0 | — |
case-17 | fail→fail | 8,253 | 1,343 | -84% | 1 | 1 | 0% | 1,235 | 1,897 | +54% | 0 | 0 | — |
case-18 | fail→pass | 11,032 | 3,607 | -67% | 1 | 1 | 0% | 1,662 | 2,277 | +37% | 0 | 0 | — |
case-19 | fail→pass | 12,271 | 4,518 | -63% | 1 | 1 | 0% | 1,836 | 2,399 | +31% | 0 | 0 | — |
case-20 | fail→pass | 10,028 | 2,807 | -72% | 1 | 1 | 0% | 1,611 | 2,153 | +34% | 0 | 0 | — |
case-21 | fail→pass | 8,258 | 2,078 | -75% | 1 | 1 | 0% | 1,145 | 2,007 | +75% | 0 | 0 | — |
case-22 | pass→pass | 13,117 | 5,668 | -57% | 1 | 1 | 0% | 2,030 | 2,656 | +31% | 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, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 18 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.