← Lab notebook

Making a crypto trading bot with AI

Jun 2025 – Sep 2026 · Gemini-Bot-NY-2, CryptoTraderPro, CoinTradeMaster, tradedesk

My first crypto bot on Replit started on June 27, 2025, from a long spec I pasted in. It opened with "I want to create an advanced cryptocurrency trading system based on a proven multi-component analysis architecture" and listed a folder tree, a database and a signal engine. The app was called CryptoTrader Pro. The same day, one copy of it became a plain chat assistant. Its notes say "Complete architectural pivot from CryptoTrader Pro to Clean AI Assistant."

By August 2025 the other copy was a "Quantitative Derivatives Intelligence Agent". Its persona had one hard rule: "You will NEVER execute a trade without my explicit confirmation." It proposed trades, and I pressed confirm or reject.

Working with two AI tools

The bot I kept running is Gemini Bot NY 2. It trades only on Gemini, the exchange, because of New York rules, and its notes set the goal: "safely grow a $1,000 USD portfolio." The preferences in the same file say "I prefer to be communicated with as a hedge fund manager."

I built it with two AIs. A chat assistant wrote plans and code, Replit Agent put them into the app, and I carried the text between them. The repo keeps 24 pasted texts, most of them the chat assistant's replies. One from the CryptoTrader Pro days says it plainly: "I've prepared a new, highly specific prompt for the Replit Builder Agent... Please provide the following prompt to the agent." The files don't record which chat assistant wrote them.

Replit Agent chat beside the bot's Trade History page
Replit Agent on January 3, 2026: the agent has just changed two strategy settings and restarted the bot. Screenshot from the Gemini-Bot-NY-2 repo, attached_assets/.

On December 23, 2025, a day after the first commit, I turned the bot into an agent. A Gemini model (Google's LLM, which only shares the exchange's name) got tools to read prices, run technical analysis and place trades, plus a trade journal as memory. The loop the chat assistant wrote for it woke it up every 15 minutes with "STATUS REPORT: Wake up." and asked it to propose a trade or go back to sleep. The dashboard got an "Agent Monitor" tab so I could watch it decide.

Trusting the numbers

For the next two weeks most of my work was about whether the dashboard's numbers were true.

The repo got 155 commits in December and 566 in January. Messages like "Remove phantom trade records from the database" show where the time went. The trade history filled with "Dust Sweep" rows at +0.00%, and I couldn't tell from my own dashboard what the bot had done.

Gemini is always the truth

On January 7, 2026, I pasted in a new plan that started "Here is the Version 2.0 Skeleton". Its rule became the first line of the new bot: "Gemini is ALWAYS the truth. Never trust local state." There is no model call in it. Every 60 seconds it connects to Gemini, checks the real balance, places an order only if the check passes, waits for the fill, and only then writes to its database. The strategy became fixed RSI and Bollinger Band rules.

V2 bot logs on a phone, most pairs marked WAIT
The V2 "Phoenix" logs on January 30, 2026, cycle 600. Screenshot from the Gemini-Bot-NY-2 repo, attached_assets/. The account balance line is hidden.

Most lines in the log say WAIT. Seventeen minutes after I pasted the skeleton on January 7, I pasted a reply that called the quiet first log "the best kind of boring."

What I learned

In June 2026 I gave the code to Claude Code with "can you review the code", and in August I had Claude audit it. It found real bugs in the strict loop too, and its profit analysis turned out to rest on a file the bot had written, so we withdrew those numbers when my Gemini statements came in.

Moving the decisions from a model to a loop didn't make the numbers true by itself. I should have checked the exchange statements first. In August I looked at them last.

In September 2026 I started tradedesk with Claude Code. Its README says it "never makes buy or sell calls and never places orders." It holds me to my own rules: position sizing, lockouts after losses, a journal. In late September I added Kalshi prediction-market research to the same repo. In August 2025 I asked an agent to propose trades for me to confirm. This one leaves every decision to me and only checks it against rules I wrote.

Sources

  • CryptoTraderPro (Replit app), attached_assets/Pasted-I-want-to-create-an-advanced-cryptocurrency-trading-system-...txt (Jun 27, 2025), Pasted-The-Main-Quest-Fixing-the-Brain-...txt (Aug 2025), replit.md (persona, confirmation rule)
  • CoinTradeMaster (Replit app), replit.md changelog, June 27, 2025
  • Gemini-Bot-NY-2, replit.md: goal, user preferences, V2 architecture, V1 deprecated
  • Gemini-Bot-NY-2, attached_assets/: pasted replies (heartbeat loop, V2 skeleton, "best kind of boring") and screenshots from Jan 1, Jan 3 and Jan 30, 2026
  • Gemini-Bot-NY-2, git log: Dec 24, 2025 agent commits, commit counts by month, Jan 7, 2026 V2 commit
  • Gemini-Bot-NY-2, main_v2.py header
  • Claude Code session, Jun 10, 2026, Gemini Bot NY code review; Gemini-Bot-NY-2 commits of Aug 4, 2026
  • tradedesk, README.md and git log (Sep 24 to Oct 14, 2026)
Next entryMaking a shared music room where DJs take turns →