Solo product · Live at cooldown.trade

Cooldown

A tool that reads a trader's own on-chain history back to them and names the moment they stopped trading a plan and started trading a feeling. I built all of it: the detection engine, the interface, the infrastructure, and every decision underneath.

01 — The problem

Traders on perpetual-futures venues lose money in a recognizable shape. A position is stopped out, and within minutes a larger one opens in the same direction. Size climbs across a session that started small. Holding times collapse. Nobody thinks this is what they're doing while they're doing it, and by the time the session is over the account balance is the only record of it.

Every fill is public on-chain. The evidence was already there. Nothing was reading it back.

02 — What it does

Autopsy

After the fact

Paste any wallet address. Cooldown pulls its complete fill history, reconstructs it into round trips, and streams back a report on what the trading actually looked like: which sessions ran hot, which patterns fired, and what the difference in outcome was. Free, no account, works on anyone's public address.

The Ward

As it happens

The same detection running live on your own trading, with a tilt reading that updates as fills arrive, and an intervention that reaches you on Telegram against a cooldown protocol you set in advance, while calm.

It gives no signals, holds no funds, and executes nothing. Every output describes what already happened.

03 — Building it

03.1The engine

Seven detectable patterns — revenge re-entry, size escalation, overtrading bursts, hold-time collapse, stop-chasing, marathon decay, and returning to the same instrument a session after being hurt by it. Each is scored per session against that trader's own trailing thirty-day baseline, not against a population average, because the same position size means different things for different accounts.

Patterns that lack the data to fire honestly report themselves dormant rather than reporting zero. A silent detector and a detector with nothing to say are different claims, and the interface makes them look different.

03.2Proving it before shipping it

A detector that fires on everything is useless and feels insightful, which is a dangerous combination. So the thresholds were graded against three wallets before release: one with a publicly documented tilt episode, one negative control, and one disciplined trader who should almost never trip.

Six rounds of grading, each recorded in a ruling ledger in the repo. Then the parameters were frozen. Any change to them re-runs all three wallets and has to survive the same specific sessions. It's a slow way to work and it's the only reason I trust the output.

03.3The interface

The whole product is a report about someone's worst trading days, so the register is clinical rather than punitive: dark, quiet, closer to a medical instrument than to a dashboard. Numbers get room. Nothing pulses or celebrates.

The scan streams — a full history can be tens of thousands of fills, and watching the reconstruction happen is more honest than a spinner that hides a thirty-second wait.

03.4The infrastructure

Next.js on Vercel, Postgres, Redis, a separate long-lived process for live monitoring because it can't be serverless. Migrations are manual and forward-only. Rate limiting fails closed. The engine is a separate package imported by both tiers so the money math exists in exactly one place.

The tilt tax reads realized PnL on tilt-flagged trades against the wallet's own baseline expectancy. It counts the wins too — tilt-entered trades sometimes pay, and the times they pay are what keep the pattern alive.

Cooldown Autopsy tilt tax panel — lifetime tilt-tax estimate, tilt-entered wins and losses, and the tax broken down by signature
Autopsy — tilt taxCaptured 08.2026

04 — What went wrong

The payment rail. Cooldown was built to sell a subscription, and the payment processor declined the domain — their review categorized it as a crypto trading and signals product, which it isn't, but the category is the category. A second processor's acceptable-use policy ruled it out too.

What saved the project was sequencing: no checkout code had been written yet, on purpose, because payment integration was queued behind the approval it depended on. The rejection cost a sandbox catalog and nothing else.

The replacement was direct stablecoin payment, which works but can't do recurring billing — which is what pushed the product toward a native app and a store as the billing rail. That's the current direction.

05 — What I'd do again

The engineering I'm proudest of here isn't a feature. It's that the product refuses to display anything it can't stand behind: dormant detectors that say so, an empty state that admits monitoring hasn't started rather than claiming a nominal baseline, a scan that shows you the reconstruction instead of hiding it behind a spinner. Getting there meant deleting fabricated placeholder data from five separate surfaces, including my own.

cooldown.trade