DEV Community

manja316
manja316

Posted on

Week 1 of pnl-truthteller: 22 pypi downloads, 0 stars, and one real bug report

A week ago I shipped pnl-truthteller — a one-command auditor that reads a Polymarket wallet's on-chain fills and compares them against what the bot's own DB thinks it earned. The thesis: most trading bots overstate P&L by 5–15% because they log the post-order intent, not the matched fill.

I wrote up the launch in this article. This is the follow-up. Same project, one week later, all numbers.

The numbers (week 1)

Pulled from APIs at write time, not eyeballed:

  • pypi downloads — last 7d: 22
  • pypi downloads — last 30d: 276
  • github stars: 0
  • github forks: 0
  • github open issues: 0
  • gumroad sales of the optional dataset: 0
  • GitHub Discussions threads opened by real users: 1 (about partial-fill dedup — the genuinely hard part of the implementation)

That's a real number row, not a vibe. If you've shipped indie open-source you know how those numbers feel: not zero, not exciting, ambiguous. The honest read is "evidence the audience exists, no evidence it's a magnet yet."

What I'm calling success vs. noise

I committed before launch to a kill rule: four flat weeks in a row across all five channels and the project gets retired. Week 1 doesn't trigger it (no trend to flat against yet), but I'm logging the baseline publicly so I can't fudge it later.

What I'm watching:

  1. Returning installs. 276/month on a tool with no marketing is mostly first-touch curiosity. The question is whether anyone runs it twice. pypistats doesn't expose that, so I'll proxy it with GitHub repo unique-visitor traffic and Discussions activity.
  2. Slippage Index contributions. I asked for anonymized audit outputs to build a cross-operator dataset. n=1 so far (me). Goal n=10.
  3. The category-bug claim landing. I pulled a random Polymarket wallet off the public CLOB and ran the audit cold — DB-equivalent +$32, on-chain −$30. Different bot, different strategy, same gap shape. If others repro this on their own wallets, the tool has a moat (it's not just my problem). That signal is the most valuable.

What I'd do differently if shipping week-1 again

  • Lead with the random-wallet audit, not the launch announcement. The category-bug evidence is more interesting than "I built a tool." I buried it in section 4 of the launch post. Should've been the title.
  • Default the CLI to --output=stdout instead of a markdown file. A surprising number of people opened the tool, saw it wanted a path, and bounced. Quietly painful UX miss.
  • Cut the optional Gumroad bundle from week 1. Free tool + paid dataset on day-one creates an "is this a sales funnel?" smell. Should've spent week 1 building trust and dropped the dataset week 3.

What's in the dataset (if you actually want it)

Five real Polymarket wallets, fully audited: per-trade DB-vs-onchain delta, slippage attribution (price vs. partial-fill vs. gas), and the raw CLOB fills as CSV. It's the input I used to validate the tool wasn't just confirming my own bias.

If that's useful — it's $19 on Gumroad. One-time, no subscription. The tool itself stays free and MIT.

Code, and the only ask

pip install pnl-truthteller
pnl-truthteller --wallet 0xYourProxyWallet --output report.md
Enter fullscreen mode Exit fullscreen mode

If you run any bot on a CLOB-style venue (Polymarket, Kalshi, dydx, GMX-perps) and audit your own wallet, the only thing I'd ask is: drop the one number (P&L gap %) in Discussion #3. Zero is fine. Negative is also fine. I just want the distribution.

Week 2 retro lands next Saturday with these same metrics + week-over-week delta.

Top comments (0)