TICKTAPE independent preflight for Polymarket

For agents · live today · x402

Your agent can trade. TickTape tells it when not to — and your agent pays per verdict.

TickTape is an independent pre-flight for Polymarket: OK / CAUTION / VETO on live orders, COPY / WATCH / VETO on wallets — always with reasons and numbers, never a number we did not compute. No custody, no execution. Paid by the agent requesting the verdict — not by the venue routing the trade. No account or issued API key: live calls are paid from the first request — plain HTTP 402 and USDC on Base, or an optional prepaid bearer token. Test everything free in the deterministic sandbox.

See the 402 flow Copy the agent setup prompt

Machine spec: /llms.txt · OpenAPI: /openapi.json · Machine manifest: /agent.json · SDK: npm i ticktape · skill: npx skills add padak/ticktape-skills · OpenClaw: npx clawhub install polymarket-preflight

A real paid call, end to end — the whole "account setup":

agent › GET /api/preflight_trade?slug=btc-up-or-down-15m&outcome=Up&side=BUY&usd=500

ticktape › HTTP/1.1 402 Payment Required PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6Mi4uLg== // $0.02 USDC on Base, decoded from the header

agent › GET /api/preflight_trade?… + PAYMENT-SIGNATURE: eyJzaWduYXR1cmUi4oCmLg==

ticktape › HTTP/1.1 200 OK PAYMENT-RESPONSE: eyJzZXR0bGVtZW50IjrigKY= { verdict: VETO · reason: "expected slippage exceeds your veto threshold; resting depth sits at the extremes; taker fee peaks exactly where this order is priced" · paid: { price_paid_usdc: "0.02", receipt: basescan.org/tx/… } }

agent › Skipping. 98% of these 15-minute windows flash a sub-$1.00 "arbitrage" with a median lifetime of 1 ms (43,297 episodes replayed) — the 2-cent verdict prevented a potentially poor $500 exposure.

Integration · pick your lane

Two ways to connect.

Same verdicts, two transports — pick the one your runtime can actually pay with.

Wallet-enabled agent → REST + x402

If your agent holds a Base wallet, it calls the REST endpoints directly and pays per request via x402, autonomously — the 402 flow below. No prepaid anything required. Auth details: auth.md.

MCP-only client → /mcp + credits

Claude and other plain MCP clients connect to https://ticktape.cc/mcp. Sandbox tools are free; live calls need a prepaid credits bearer token in the Authorization header, because a plain MCP client cannot execute the x402 payment flow itself. Buyer-side x402 MCP bridges (e.g. Coinbase's x402 MCP integration) can pay per call.

Payment · live now

HTTP 402 is the whole onboarding.

No signup, no issued API key, no dashboard visit — the only optional credential is a prepaid credits bearer token. Live calls are paid from the first request: the API answers 402 Payment Required with machine-readable payment requirements (x402 v2), your agent pays $0.02 in USDC on Base, and retries. Settlement runs through the Coinbase CDP facilitator, synchronously. Wiring and tests are free in the deterministic sandbox.

# 1 — call the endpoint (any live call)
GET /api/preflight_trade?slug=fed-decision-in-september&outcome=Cut&side=BUY&usd=250 HTTP/1.1
Host: ticktape.cc

# 2 — the 402: payment requirements ride in a base64 response header (x402 v2)
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLC4uLg==
#   decoded: scheme "exact" · $0.02 · asset USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
#            network eip155:8453 (Base) · payTo 0xb28bcb21a054ffeeb6ce62d0f1bb0175c022d2c6

# 3 — the agent signs a USDC transfer authorization for the quoted amount and retries
GET /api/preflight_trade?slug=fed-decision-in-september&outcome=Cut&side=BUY&usd=250 HTTP/1.1
Host: ticktape.cc
PAYMENT-SIGNATURE: eyJzaWduYXR1cmUiOiIweGFiYzEyMy4uLiIsLi4ufQ==

# 4 — paid response: settlement result in a header, verdict + receipt in the body
HTTP/1.1 200 OK
PAYMENT-RESPONSE: eyJzdWNjZXNzIjp0cnVlLCJ0eEhhc2giOiIweC4uLiJ9

{
  "verdict": "CAUTION",
  "reasons": ["expected slippage 1.4c exceeds max_slippage_c=1.0", "..."],
  "numbers": { "expected_vwap": "...", "taker_fee_usd": "...", "safe_size_usd": "..." },
  "paid": {
    "price_paid_usdc": "0.02",
    "receipt": "https://basescan.org/tx/0x…"   // every paid call links its on-chain settlement
  }
}

v1 accepted too

The stack is dual: x402 v2 (headers, above) is primary, and the older v1 flow — 402 with an accepts[] JSON body, retry with an X-PAYMENT request header, network "base" — is accepted on every paid endpoint.

Idempotent, never double-charged

Retrying with the same payment authorization returns the cached response. A network timeout after payment cannot cost you a second $0.02 — reuse the authorization, get the same body back.

Probe before you pay

Append x402_probe=1 to any paid endpoint to see the exact payment requirements without paying — useful for verifying payTo and price in code before enabling payments.

Latency, honestly: a per-call x402 payment settles on-chain, which adds roughly 2–5 seconds per paid call — longer in congestion tails. If your agent checks more than a handful of orders, buy credits once and skip the per-call settlement entirely:

PathCostLatency
Sandbox (?sandbox=1)$0 — unlimited, deterministic~0.4 s
Per-call x402$0.02 per call, settled on-chain~2–5 s per call (congestion tails longer)
Credits + Bearer1 credit ≈ $0.01 at the base pack~0.4 s

The fast lane · live now

Pay once, call at full speed.

One x402 payment of $5 USDC to POST /api/credits buys 500 credits and returns a bearer token. Calls authenticated with the token skip per-call settlement — back to ~0.4 s responses.

# one $5 x402 payment (same 402 dance as above, just once)
POST /api/credits HTTP/1.1
Host: ticktape.cc

HTTP/1.1 200 OK
{
  "credits_added": 500,
  "balance": 500,
  "token": "tk_0xYourWallet_…",        // treat as a secret; last 5 tokens per wallet stay valid
  "expires": "2027-07-13T00:00:00Z"    // credits are valid 12 months
}

# then: bearer auth on any paid endpoint — no settlement, ~0.4s
GET /api/preflight_trade?slug=…&outcome=…&side=BUY&usd=250 HTTP/1.1
Host: ticktape.cc
Authorization: Bearer tk_0xYourWallet_…
EndpointCreditsPer-call x402
/api/preflight_trade1 credit$0.02
/api/leaderboard1 credit$0.02
/api/red_list1 credit$0.02
/api/preflight_copy5 credits$0.10

Half price, faster calls

The credit pack is $5 = 500 credits — half the per-call price, and bearer-authenticated calls answer in ~0.4 s because they skip per-call on-chain settlement entirely.

Token hygiene

The token format is tk_<wallet>_<secret> — treat it like a secret. Your last 5 tokens per wallet stay valid, so rotation never locks you out mid-run. Credits are valid for 12 months.

Endpoint reference · all live

Four calls your agent can make right now.

Verdicts are deterministic arithmetic on the live CLOB book plus Polymarket's published 2026 taker-fee schedule (fee/share = rate × p × (1−p)). No model, no prediction — the only uncertainty is the book changing between check and fill.

GET /api/preflight_trade

"Will this order actually fill at a sane price?"

Returns OK / CAUTION / VETO with expected VWAP, slippage, visible depth, fee drag and a safe size — before the order goes out. GET or POST.

ParamDefaultMeaning
slug + outcomerequired*market slug + outcome name; polymarket.com/event/<slug> URLs work; a wrong outcome returns the candidate list
token_id*alternative to slug+outcome: CLOB token id
sideBUYBUY or SELL
usd100order size in USD
max_slippage_c1.0threshold override: CAUTION above this many cents
veto_slippage_c3.0threshold override: VETO above this many cents
max_book_age_s60threshold override: max acceptable book age
sandbox=1free deterministic example — never rate-limited, never charged
x402_probe=1show payment requirements without paying
// response shape (values illustrative — ?sandbox=1 returns the canonical example)
{
  "verdict": "CAUTION",
  "reasons": [
    "expected slippage 1.4c exceeds max_slippage_c=1.0",
    "order is 18% of visible depth on the BUY side"
  ],
  "numbers": {
    "best_price": 0.62,        "expected_vwap": 0.634,
    "expected_slippage_cents": 1.4,
    "visible_depth_usd": 2760, "order_vs_depth_pct": 18.1,
    "taker_fee_usd": 3.94,     "fee_drag_cents_per_share": 0.5,
    "fee_category": "mid-price — near the fee peak",
    "safe_size_usd": 210,      "book_age_seconds": 3
  },
  "meta": { "thresholds": { "max_slippage_c": 1.0, "veto_slippage_c": 3.0,
            "max_book_age_s": 60 },
            "method": "deterministic arithmetic on the live CLOB book
                       + 2026 taker-fee schedule" }
}

1 credit · $0.02 per call · free sandbox

GET /api/leaderboard

"Which wallets are worth copying — by measurement, not fame?"

Machine JSON of wallets rated COPY or WATCH, with fee-inclusive ROI, out-of-sample validation and reasons. Behind it: 621,022 wallets on the tape → 55,900 selective → 24 audited → 6 positive fee-inclusive → 3 survived OOS.

{
  "ok": true,
  "computed_at": "2026-07-13",
  "window": "2026-06-12..2026-07-11 (30d)",
  "method": "first-entry mirror, $5/trade, 2c slippage,
             explicit 2026 taker fees",
  "wallets": [
    { "name": "S-Works", "verdict": "COPY",
      "roi_fee_inclusive_pct": 9.2, "oos_validated": true,
      "reasons": [
        "positive fee-inclusive and survived the out-of-sample month",
        "caveat: is a bot — entries split into iceberg clips (~24)",
        "caveat: copy-crowding — 102 of 319 markets shared with
         other tracked wallets" ] },
    { "name": "cnyek", "verdict": "WATCH",
      "roi_fee_inclusive_pct": 12.4, "oos_validated": true,
      "reasons": ["+12.4% fee-inclusive over 41 in-sample trades,
                   but only 9 out-of-sample trades — OOS sample
                   too small to rate COPY"] },
    { "name": "aenews2", "verdict": "WATCH",
      "roi_fee_inclusive_pct": -0.9, "oos_validated": true,
      "reasons": ["fee-fragile: -0.9% fee-inclusive in-sample,
                   +17.2% in the out-of-sample month"] }
  ]
}

1 credit · $0.02 per call · free sandbox

GET /api/red_list

"Which wallets lose money for the people copying them?"

Standing VETOs for copying — including wallets at the top of the volume leaderboards. Same simulation basis as the leaderboard, so the numbers are directly comparable.

{
  "ok": true,
  "computed_at": "2026-07-13",
  "window": "2026-06-12..2026-07-11 (30d)",
  "method": "first-entry mirror, $5/trade, 2c slippage,
             explicit 2026 taker fees",
  "wallets": [
    { "name": "swisstony", "verdict": "VETO",
      "roi_fee_inclusive_pct": -5.7,
      "reasons": ["a simulated copier lost 5.7% fee-inclusive
                   over the 30-day window"] },
    { "name": "RN1", "verdict": "VETO",
      "roi_fee_inclusive_pct": -4.8,
      "reasons": ["a simulated copier lost 4.8% fee-inclusive
                   over the 30-day window"] }
  ]
}

1 credit · $0.02 per call · free sandbox

GET /api/preflight_copy

"Should my agent copy this wallet?"

COPY / WATCH / VETO for copying a specific wallet: realistic copier return, fee drag and out-of-sample stability. Uses a fixed $5-entry / +2c-slippage simulation computed from TickTape's private trade tape — every fill of 5+ shares with trader identity, recording since December 2025, all market categories since mid-January 2026 — a history that cannot be reconstructed from Polymarket's live API. Exact size-and-delay replay is not live. Coverage is an exact rule: a wallet with 10+ first entries in the rolling 90-day window has a precomputed profile (tens of thousands of wallets after each nightly run, fresh by ~04:30 UTC) and answers sub-second; any other wallet returns HTTP 202 QUEUED free of charge, with a Retry-After header, and — if it has tape activity — is typically ready in minutes (the response's retry_after_seconds tells you when to retry; worst case about an hour) — a wallet below the floor gets an explicit NO_COVERAGE profile, not a made-up verdict. COPY is only ever awarded with out-of-sample validation — in-sample-only performance caps at WATCH. Full coverage rules, including exactly which markets have order-book archives, on /tech#coverage.

ParamDefaultMeaning
walletrequiredtrader's proxy wallet address to audit, 0x + 40 hex (alias: user=) — the only parameter; usernames are not accepted
sandbox=1free deterministic example — never rate-limited, never charged

5 credits · $0.10 per call (covered wallets, sub-second) · QUEUED answers (HTTP 202 + Retry-After) are free · free sandbox

Sandbox · free forever

Wire it up without spending a cent.

The sandbox is the free product. Append sandbox=1 to any of the four tools and you get a deterministic example response — same schema, same field types, same verdict structure, every time. Sandbox calls are never rate-limited and never charged, which makes them safe to put in CI: your integration tests can assert against a stable body while your production path stays live.

# deterministic, free, unlimited — safe for CI
curl "https://ticktape.cc/api/preflight_trade?sandbox=1"

# inspect payment requirements without paying
curl "https://ticktape.cc/api/preflight_trade?x402_probe=1"

Operator safety

Give your agent a wallet. Then cap it in code.

Spending rules belong in code, not in prompts — a prompt can be talked out of its budget; a config constant cannot. Recommended guardrails for any agent paying TickTape (or anyone else) over x402:

Price ceiling per call

Never pay more than $0.10 for a TickTape call. Note: v2 @x402/fetch dropped the old default 0.10 USDC cap — set your own maximum explicitly, or your client will sign whatever a 402 asks for.

Daily spend cap

Hard daily limit in code — $2/day is plenty for most preflight loops unless your operator deliberately raises it. Fail closed when the cap is hit.

Pin the payee

Only pay endpoints under https://ticktape.cc/, and verify the payTo address in every 402 against the one published in /llms.txt before signing.

Pin the asset

USDC on Base only: network eip155:8453, contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913. Refuse any 402 that asks for a different asset or chain.

Retry = same authorization

On timeouts or 5xx after payment, retry with the same payment authorization. The API is idempotent on it — you get the cached response, never a second charge. Never re-sign for a retry.

Fund it like a metro card

Keep the agent's wallet small and top it up — it needs cents per verdict, not a bankroll. The wallet that pays for verdicts should not be the wallet that trades.

Setup · one paste

Point your agent at TickTape.

Paste this into your agent's system prompt or tool notes. It carries the endpoints, the payment flow and the code-level safety rules in one block.

You are being connected to TickTape (https://ticktape.cc) - an independent pre-flight check for Polymarket orders and copy-trading. It answers OK / CAUTION / VETO with reasons and numbers before you risk money. It never executes trades.
Machine spec: https://ticktape.cc/llms.txt | OpenAPI: https://ticktape.cc/openapi.json | Machine manifest: https://ticktape.cc/agent.json
TOOLS: GET https://ticktape.cc/api/preflight_trade?slug=...&outcome=...&side=BUY&usd=... (live order verdict; thresholds overridable); GET https://ticktape.cc/api/leaderboard (COPY/WATCH wallets); GET https://ticktape.cc/api/red_list (wallets that lose copiers); GET https://ticktape.cc/api/preflight_copy?wallet=... (alias user=; the only parameter. COPY/WATCH/VETO for copying that wallet, from a fixed $5-entry / +2c-slippage simulation - exact size-and-delay replay is not live; uncovered wallets return HTTP 202 QUEUED + Retry-After, free of charge - typically ready in minutes (retry_after_seconds tells you when to retry), worst case about an hour). Test free: append sandbox=1.
PAYMENT (x402, USDC on Base, no account): live calls are paid from the first request; test free with ?sandbox=1. Unpaid live calls get HTTP 402 with payment requirements (x402 v2; v1 X-PAYMENT also accepted). Per-call $0.02 ($0.10 for preflight_copy), takes 2-5s (on-chain settle). FAST PATH: POST https://ticktape.cc/api/credits with one $5 x402 payment -> 500 credits + bearer token - half the per-call price, ~0.4s responses. 1 credit per $0.02-call, 5 credits per preflight_copy; credits valid 12 months. Then Authorization: Bearer <token> -> ~0.4s calls. Treat the token as a secret.
SAFETY (enforce in code): never pay >$0.10 per TickTape call; daily cap $2 unless your operator raises it; only pay endpoints under https://ticktape.cc/; verify payTo matches llms.txt; asset must be USDC on Base (eip155:8453, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913); on retry reuse the same payment authorization.
TickTape verdicts are deterministic arithmetic on live books, not predictions and not investment advice.

MCP server · live

Native MCP tools, same verdicts.

TickTape runs its own MCP server: all four tools plus a credits balance check, over streamable-http at POST https://ticktape.cc/mcp. Pass sandbox: true in any tool's arguments for a free deterministic example. Paid lane inside MCP: send your credits bearer token as the Authorization header; without one, live calls return the x402 payment terms for the REST endpoints. Server card: /.well-known/mcp/server-card.json. Claude config:

{"mcpServers": {"ticktape": {"type": "http", "url": "https://ticktape.cc/mcp"}}}

Roadmap · not live yet

What ships next — labeled as such.

Everything above this line is callable today. The items below are roadmap, and we will not pretend otherwise.

Roadmap

x402 Bazaar listing

TickTape will list in the x402 Bazaar discovery index after the first real settlement clears — a listing should follow revenue, not precede it.

For your operator

Humans can read. Agents can buy.

TickTape is the agent-only preflight layer for Polymarket — a SaaS with no seats, no users and no checkout, only paid agent calls. There is no card checkout and no subscription anywhere; paying requires an agent (or any x402 client, Stripe purl included). Humans get the reading room free: the weekly Top 3 on the site and the sample Wallet Audit.

Humans

Read for free

$0 · no account, no subscription
  • weekly Top 3 wallets, published on the site
  • sample Wallet Audit, the data behind the verdicts
  • paying requires an agent — or any x402 client

Full rate card: /pricing.

No signup. HTTP 402 is the whole onboarding.

Point your agent at the API — unlimited free sandbox, then live calls paid from the first request: HTTP 402 and USDC on Base. Humans read for free. Support: hello@ticktape.cc.

Copy the agent setup prompt