A complete searchable trade history tool for Polymarket. Rebuilds your full CLOB activity from on-chain data and gives you filterable analytics on every position you have ever opened.
Last updated: March 2026
Polymarket Trade Log reconstructs your complete trading history from Polymarket's on-chain CLOB data. It indexes every fill, partial exit, and resolution payout associated with your wallet - then lets you filter, search, and analyze that history by market, category, date range, outcome, and result.
No manual record-keeping. No spreadsheet maintenance. The log rebuilds from the blockchain and stays current as new positions close.
Every trade entry includes:
| Field | Description |
|---|---|
| Market | Event name, category, and market ID |
| Outcome | YES or NO |
| Direction | Entry or exit |
| Fill price | USDC per token at the time of fill |
| Tokens | Number of ERC-1155 outcome tokens |
| USDC value | Total USDC at fill |
| Timestamp | UTC block time |
| Transaction hash | On-chain reference |
| P&L | Net profit or loss (calculated at resolution or exit) |
| Hold time | Duration from entry to close |
By market - full fill history for any single market, including all entries, partial exits, and final resolution outcome.
By category - aggregated P&L and win rate for each event category (politics, crypto, sports, other).
By date range - filter all activity to a custom date window. Useful for monthly or quarterly performance review.
By outcome - compare your YES performance vs NO performance. Many traders have a directional bias they are unaware of.
Top markets - ranked list of your highest-return and highest-loss individual markets.
Win streak / loss streak - longest consecutive wins and losses in your history.
- Full history rebuild - indexes all CLOB fills for your wallet from on-chain data, no manual import needed
- Incremental updates - after the first full sync, only new activity is fetched on each run
- Multi-wallet support - track multiple wallets and view combined or per-wallet analytics
- CSV / JSON export - export any filtered view for tax tools (Koinly, CoinTracker) or custom analysis
- Telegram daily digest - optional end-of-day summary of all positions closed that day with P&L
- Search - full-text search across market names to find any specific event in your history
| Windows App | Python Bot | |
|---|---|---|
| Setup | Double-click | pip install + config |
| Analytics | Built-in dashboard | JSON + CLI queries |
| Export | CSV button | CLI command |
| Config | config.toml |
Direct code access |
| Digest | Config-based | Full access |
| Platform | Architecture | Download |
|---|---|---|
| Windows | x64 | Download the latest release |
# 1. Download from Releases
# 2. Edit config.toml - set your wallet address
# 3. Run Trade Log - full history syncs from on-chain data
cd polymarket-trade-log/python
pip install -r requirements.txt
python polymarket-trade-log-v.1.0.9.py --wallet 0x...Four stages from blockchain to analytics:
- Sync - fetches all CLOB transaction events for your wallet from Polygon via RPC
- Parse - decodes each fill event into structured trade records (market, outcome, size, price, timestamp)
- Match - pairs entries with exits and resolution payouts to calculate net P&L per position
- Present - renders analytics views and responds to filter/search queries
[log]
wallets = ["0x..."] # One or more wallet addresses to track
lookback_days = 365 # How far back to sync on first run
sync_interval_minutes = 15 # How often to check for new activity
[export]
format = "csv" # csv | json
output_path = "data/exports/"
[digest]
telegram_bot_token = ""
telegram_chat_id = ""
daily_digest_hour_utc = 22 # Hour to send daily digest{
"trade_id": "tl_20260309_017",
"wallet": "0xa4c6e8b0...",
"market_id": "0x...",
"market_name": "Will X happen before June 2026?",
"category": "politics",
"outcome": "YES",
"direction": "entry",
"fill_price": 0.34,
"tokens": 1376000,
"usdc_value": 46.78,
"timestamp": "2026-03-09T11:44:22Z",
"tx_hash": "0xb4d6f8a0...",
"matched_exit": {
"direction": "resolution",
"resolution": "YES",
"payout_usdc": 59.12,
"hold_days": 8,
"pnl_usdc": 12.34,
"roi_pct": 26.4
}
}
Full history loaded from on-chain data:
- Wallet:
0xa4c6e8b0d2f4a6c8e0b2d4f6a8c0e2d4f6a8b0d2 - Positions indexed: 112 resolved, 6 open (12-month window)
- Win rate: 64% | Realized P&L (90d): +$341.80
Sample resolved position:
| Transaction | |
|---|---|
| Entry | 0xb4d6f8... |
| Resolution payout | 1,376,000 ERC-1155 tokens at 4.09 USDC |
| Net P&L | +12.34 USDC (+26.4% ROI) |
What is Polymarket Trade Log? Polymarket Trade Log rebuilds your complete Polymarket trading history from on-chain CLOB data. It indexes every fill and resolution payout, calculates P&L per position, and provides filterable analytics by category, date, outcome, and result.
Does it need my private key? No. Trade Log is read-only. It indexes public on-chain data from your wallet address. No private key is needed.
How far back can it load history?
Set lookback_days to any value. The default is 365 days. For a complete all-time history, set it to a large number - the initial sync will take longer but subsequent updates are incremental.
How are P&L calculations handled for partial exits? Partial exits are tracked as separate fill events. The log pairs each partial exit with the proportional share of your entry cost basis to calculate P&L on that portion. The remaining open portion retains its proportional cost basis.
Is the CSV export compatible with tax tools? Yes. The export includes entry date, exit date, cost basis, proceeds, and realized P&L per position - compatible with Koinly, CoinTracker, and most other crypto tax tools that accept CSV input.
Can it track multiple wallets?
Yes. Add multiple addresses to wallets in the config. Each wallet's history is indexed independently. Analytics views show per-wallet or combined totals.
Does it handle resolution payouts differently from manual sells?
Yes. Resolution payouts are labeled as resolution direction with the resolved outcome. Manual sells before resolution are labeled as early_exit. Both are matched to entries for P&L calculation, but the analytics separate them so you can see how often you exit early vs hold to resolution.
Does it work on Linux? Yes. The Python version runs on any platform with Python 3.10+. The Windows .exe is Windows-only.
Is there a Windows version?
Yes. A standalone Windows x64 application is included in the release - no Python installation needed. The Python version (polymarket-trade-log-v.1.0.9.py) runs on Windows, Mac, and Linux with Python 3.10+.
How does the daily digest work?
Set daily_digest_hour_utc in config to the UTC hour you want the summary sent. At that hour, the bot sends a Telegram message with all positions that closed during the day - market name, direction, P&L, and ROI for each.
Can I use this as a polymarket tax export tool? Yes. The CSV export includes all fields required by most crypto tax tools: entry date, exit date, cost basis, proceeds, and realized P&L. It has been tested with Koinly and CoinTracker import formats.
What counts as a "fill" in the trade log? A fill is any CLOB order execution event associated with your wallet - market buys, limit order fills, partial fills, and resolution payouts. Each fill is stored as a separate record and then matched to related fills to reconstruct the full position lifecycle.
- Polymarket trade history - rebuild your complete on-chain CLOB trading record without manual data entry
- P&L analytics - view realized profit and loss by market, category, date range, or outcome direction
- Tax export - generate CSV exports compatible with Koinly, CoinTracker, and other crypto tax tools
- Win rate tracking - measure your win rate by category and outcome side to identify where your edge actually is
- Daily trade digest - receive an end-of-day Telegram summary of all positions closed that day
polymarket-trade-log/
+-- polymarket-trade-log-v.1.0.9.exe
+-- config.toml
+-- data/
| +-- trades/
| +-- exports/
| +-- logs/
| +-- dll/
+-- python/
| +-- src/
| | +-- syncer.py
| | +-- parser.py
| | +-- matcher.py
| | +-- analytics.py
| +-- scripts/
| | +-- export.py
| +-- requirements.txt
+-- README.md
python-dotenv, typer[all], web3, httpx, devtools
- Your Polymarket wallet address
- RPC provider - Alchemy, Chainstack, or Infura (free tier works)
- Telegram bot token (optional, for daily digest)
Every trade. Every number. On-chain.
