2026-04-30 — Backtest Copy PnL: per-position metrics now match Polymarket byte-for-byte
The new fields added earlier today (avg_entry_prob_weighted, positions_closed on /v2/copy-pnl/*) now produce values that match Polymarket’s own data-api position math.
Validated against data-api.polymarket.com/positions realizedPnl across 30 positions on diverse wallets (standard CTF + neg-risk markets):
- 97 % sub-penny match
- 100 % sub-$1 match
- 100 % sub-$10 match
2026-04-30 — BYOB Snapshot: every wallet × every period in one read
New endpointGET /v2/copy-pnl/snapshot returns every wallet in your tracked-wallet pool with backtest copy-PnL scores across all six time windows (7d, 14d, 30d, 60d, 90d, 180d) in a single response. Built for stats-card UIs and dashboards that need the whole pool at once instead of issuing one request per period.
- One request — no per-period round trips, no client-side stitching.
- Sub-second cached — 100 wallets × 6 periods returns in ~70 ms / ~150 KB. 1000 wallets × 6 periods in ~500 ms / ~1.5 MB.
- Optional period subset via
?periods=7d,30dto drop payload when you only need one window. - Per-wallet error reporting — heavy whales that errored on the most recent refresh surface their failure reason inline, so your UI can render “X wallets retrying” instead of hiding gaps.
2026-04-30 — /v2/onchain/markets/{token}/volume faster
Backend optimization for the market volume endpoint. Response shape and values are unchanged — same buys, sells, total_trades, buy_volume_usdc, sell_volume_usdc, volume_usdc, found fields. Light and empty markets see roughly halved latency. No integration changes required.
2026-04-30 — Wallet activity & redemptions: deep pagination unlocked
Heavy wallets returning more than 1000 records on/v2/onchain/wallets/{wallet}/redemptions and /v2/onchain/wallets/{wallet}/activity now return the complete dataset:
offsetpast 1000 now works. Previously, pagination beyond the first 1000 records returned empty results regardless of how many records existed. You can now walk a heavy redeemer’s full history withoffset=1000,offset=2000, etc.- No more silent truncation. Wallets with >1000 redemptions, splits, merges, or neg-risk conversions previously had results capped at 1000. The full record set is now returned.
2026-04-30 — TypeScript SDK 0.9.7
Pluggable storage for Bun/Deno/edge runtime compatibility:storageconfig option — pass'memory'for an in-memory backend (no native dependencies), a file path for SQLite (default), or your ownTradingStorageimplementation.- Auto-fallback — if
better-sqlite3isn’t available (Bun, Deno, edge runtimes), the SDK automatically falls back to in-memory storage instead of crashing. BunSqliteBackend— persistent SQLite storage using Bun’s built-inbun:sqlite. Zero native dependencies. Same schema, same persistence as the Node backend.- Auto-detection — if you don’t pass a
storageoption, the SDK triesbetter-sqlite3first (Node), thenbun:sqlite(Bun), then falls back to in-memory. Just works in both runtimes. - Exported interface —
TradingStorage,InMemoryStorage, andBunSqliteBackendare all exported so you can use them directly or build custom adapters.
2026-04-30 — TypeScript SDK 0.9.5
Bug fix release for the trading module:- Fixed
signer.getAddress is not a functioncrash —ensureReady()andlinkWallet()could throw this error with viem WalletClient signers when Polymarket packages expect an ethers-stylegetAddress()method. The SDK now ensuresgetAddress()is always available on the normalized signer, regardless of which@polymarket/clob-clientversion you have installed. - Fixed signer detection logic — a duplicate guard condition was allowing incomplete signer objects through, causing crashes instead of clean error messages.
- Hardened relay signer adapter — address extraction now handles additional wallet shapes during Safe deployment and approval flows.
2026-04-30 — BYOB (Bring Your Own Backtest) — precomputed leaderboards
The on-demand backtest endpoints answer “score this wallet” synchronously. BYOB inverts that — you hand us a private wallet pool, we precompute scores in the background across all six period presets, you query the resulting leaderboard with sub-second latency. Four new endpoints under/v2/copy-pnl/:
computed_at so you can render freshness in your UI.
Per-tenant isolation: each API key has its own private pool keyed on the SHA256 of the key. Your tracked wallets are never visible to other customers.
References: Backtesting Overview · Add Wallets · Remove Wallets · List Wallets · Leaderboard
2026-04-30 — On-chain wallet/market trades: deep pagination unlocked
/v2/onchain/wallets/{w}/trades and /v2/onchain/markets/{token}/trades now properly paginate across the full trade history of any wallet or market, no matter how active. Previously these endpoints silently truncated heavy traders to ~2000 fills lifetime — deep ?offset= queries returned empty.
Customer-visible behavior changes:
- Heavy wallets (e.g. 1M+ fills) now return correct, complete trade history
- Deep
?offset=queries return real data instead of empty arrays - No SDK or query-shape changes required — same
?limit=&offset=parameters - Lower latency on most queries
2026-04-30 — Backtest Copy PnL: batch endpoint
Score up to 100 wallets in one call:{"wallet": "...", "error": "..."} and the rest still come back.
Reference: Batch endpoint
2026-04-30 — Backtest Copy PnL endpoint
New paid endpoint for scoring any wallet’s copy-trade quality:actual_pnl_usdc— the wallet’s cashflow PnL over the windowbacktest_copy_pnl_usdc— what a copier would have earned with frictionslippage_amount_usdc— the dollar gapslippage_cost_rate_pct— friction as a percentage of actual PnLtoxic_for_copying—truewhen the rate exceeds 15% (wallet’s profit relies on execution speed; copier won’t replicate)trade_count,applied_filters,sources, optionaltrades[]drill-down
?period=7d|14d|30d|60d|90d|180d (default 30d), or ?from=&to= with YYYY-MM-DD or unix seconds.
Note on PnL definition: this returns cashflow PnL (real dollars moved), not Polymarket’s website PnL (which marks open positions at current price). The response includes a pnl_definition: "cashflow" field to make this explicit. For PM-website style PnL use Trader PnL Series.
Limits: paid tier required, 1 request per 5s per key, 30s server-side budget. Validated on wallets up to ~1.6M fills in the window.
Full reference: Backtest Copy PnL · Backtesting Overview

