Introduction
If you’re into crypto and hunting the next big meme coin, this post is for you! We’ll share our journey building a trading bot—no deep technical dive, just lessons learned. Our basic first-stage script is on GitHub.
It all started when I pitched the idea to my friend Filip Djeze Bartus. Over six months, we poured countless hours into building the bot, facing challenges and learning a lot along the way.
We hope our story gives you insight into crypto trading. Happy trading, and may your bots stay profitable! 🚀

Getting Started
We were chasing memecoins and Solana’s low transaction fees—no deep research needed since we’d both experimented with Raydium bots before. After setting up our wallets and environment, we were ready to start building. No testnet, straight to mainnet—we were eager to roll!
Finding new pools early is crucial for potential gains. We monitored Solana activity and later added a Telegram bot to track crypto channels, alerting us to promising new memecoins.
Once a new pool was discovered, we executed our buy process and waited for confirmation.
Selling involved checking our token balances and following a timed strategy to execute sales. This completed the first stage of our trading bot journey.
Over six months, we faced countless challenges and learned a ton. Our goal was to combine speed, efficiency, and smart monitoring to navigate the wild world of meme coin trading.
Scaling Up
The next stage started with lots of questions and bugs—our initial on-the-fly code showed its limits. To scale our operation, we introduced structure: shared constants, variables, and a systematic approach to state management.
We faced plenty of hiccups while fetching market data and processing transactions. To tackle this, we added robust error handling and retry mechanisms to keep things running smoothly.
Special attention was given to buying and selling. We made sure errors were caught immediately, preventing any unwanted tokens from lingering in our wallets. Efficiency and reliability became our top priorities.
Trading and Token Evaluation
We started as a true sniper bot—grabbing every token we stumbled upon. Yep, discovered and bought them all 😄. The original plan was to sell quickly, ideally within a minute, since most tokens pump at launch.
Turns out, it’s not that simple. Finding new pools and getting transactions on-chain introduced delays. Our fastest buy-to-sell time was 33 seconds, but some trades easily took 2 minutes. In that time, scammers could drain liquidity, leaving us at a loss.
Instead of rewriting everything in Rust for speed, we focused on evaluating tokens first. Scammers exploit tokens with freeze authority or mint authority:
Freeze authority: Only a specific wallet can sell the token.
Mint authority: The owner can create new tokens at will, draining liquidity.
We built a comprehensive token evaluation system, fully configurable via .env settings. There are two modes:
Strict: Checks each required token attribute (true/false).
Score: Assigns points for token attributes; buys the token if the score passes a threshold.
Attributes we evaluate include: mint authority, freeze authority, description, image, website, Telegram, X (Twitter), and more.

Managing the Stats
“Dude, how are we going to handle all these statistics? We can’t just keep checking the wallets—there are too many transactions and token evaluations. And Excel? No thanks.”
To solve this, we added a PostgreSQL database and connected it to Directus, a simple yet powerful headless CMS. This made tracking and managing statistics way easier.
We logged all current data to the database and added new variables to capture every statistic imaginable. One critical feature: saving discovered pools to a shared database. This ensured that if my bot found a pool before Filip’s, it wouldn’t be traded twice.
With Directus providing a clear graphical interface for all our data, we were ready for massive testing… or so we thought.

Dockerizing
As we kept developing our bot locally, we ran into Solana connection timeouts—too many requests from the same IP caused issues. We didn’t want to rely on external providers like QuickNode, so we set up a Docker container and connected through a VPN. This allowed simultaneous development and bot execution without IP conflicts.
Using the VPN, we connected from multiple locations worldwide. A big advantage: if the parent node of Solana was in North America and our bot ran there too, it would detect new pools faster than a bot in Europe. Essentially, we created a mini botnet, maximizing our chances to be first in line.
Now, it was finally time to make some money! 😄
Percentage Strategy
Running our botnet 24/7 with different token evaluations didn’t make us profit. Selling after a set time was a disaster—one token might yield 500%, but the next nine could wipe out gains completely.
We introduced a Decide Action State class to level up our strategy. This class continuously monitored token prices after purchase and compared them against user-defined profit and loss thresholds. If the price reached the profit target, the bot sold. If it hit the loss limit, it cut losses immediately.
We didn’t rely on external APIs. Instead, we calculated token prices based on wallet balances and pool liquidity using Constant Product Curve and Offset Curve concepts.
JavaScript’s 64-bit integers weren’t enough, so we used the BN (BigNumber) library for precise arithmetic. Working with all those numbers was intense—but essential for a bot that can survive the wild memecoin market.
Winning Patern
We ran the whole botnet using a percentage-based strategy, and some bots looked promising. Yet, the results were the same: even the “promising” bots weren’t turning a profit. Different strategies, different tweaks—still in the red.
To combat the scammers draining our gains, we went deep into token metadata evaluation. We added checks for: description length, image hosting location, creator attribute,origin website, …
After extensive testing, a pattern emerged. Tokens with JSON and images hosted on IPFS consistently turned profits. Finally, some of our hard work seemed to pay off… but the memecoin market is never simple!
Solana Congestion
For three days, all our stats were green, and we were hyped—profits were finally in sight. Then, suddenly, transactions started failing. Solana congestion hit hard, causing about 70% of transactions to fail, derailing our momentum just as we were starting to make money.
We spent a week optimizing transactions—calculating compute budgets, adjusting fees, and testing improvements. Honestly, it didn’t help much. Sometimes, all you can do is wait for the network congestion to clear.
Telegram Integration
We decided to integrate Telegram into our bot to get more insights from Bonk Bot’s pool discovery notifications.
Through these alerts, we could gather key data about new pools: token burn status, liquidity burn, token distribution, and market cap. This additional information allowed us to refine our trading strategy and make more informed decisions, adding another layer to our bot’s evaluation process.
Making Money
Once the Solana congestion cleared, our bot was ready to perform. With Bonk Bot pool discovery integrated, optimized blockchain transactions, and a proven pattern, we finally started making money!
Our first successful bot, Ziggy (thanks to its IPFS filter), ran 24/7 across multiple locations worldwide. Statistically, 8 out of 10 trades were profitable, so even with occasional losses, we stayed in the green.
We also experimented with other trading strategies, focusing on pool evaluation using Bonk Bot’s data. To safeguard our profits, we added a feature to transfer funds to our Trezor wallet once a certain threshold was reached.
Finally, we polished our code—cleaner structure, nicer terminal logs with pino logger, and better handling for unexpected events. Ziggy became our star player in crypto trading!

Real-Time Notifications
We didn’t rest on our success. To stay on top of our trading, we implemented a notification system. As active Discord users, we integrated a Discord bot that alerted us whenever a trade was completed.
“Ding Ding! You have a new notification from Ziggy: a trade has been finished with a profit!”
It was exhilarating—watching our bot make money while we went about our day. The thrill was unmatched… retirement, here we come! 😄

Ending
For a few weeks, Ziggy was profitable, while we tested other bots. But scammers adapted—changing token publishing methods—which made our IPFS filter ineffective. Ziggy and the other bots started losing money, and we had to shut them all down.
Exhausted and out of funds, we paused this approach. But instead of giving up, we decided to explore two new strategies.
Over the next couple of weeks:
Filip focused on Directus to build a long-term trading bot. The plan: trade tokens that had been active on Raydium for days or weeks, minimizing short-term risks.
I worked on scripts to validate token creators and liquidity. I checked if the creators were unique, funded by reputable exchanges like Binance, Coinbase, or Kraken, and verified whether the pool liquidity was truly burned—since Bonk Bot’s data often proved unreliable.
Despite our efforts, these new evaluations didn’t yield better results.
Conclusion
We invested a significant amount of time over the past six months, working full-time—even on weekends—with day meetings, a to-do board, and full project management. It was one of the most intriguing and challenging projects we’ve ever undertaken. From trading algorithms to validation scripts and blockchain analytics, the journey was filled with excitement and learning.
For a while, Ziggy brought us profits, which felt like a major victory. But scammers outsmarted us, resulting in substantial losses. Despite the setback, the experience was invaluable. We gained deep insights into cryptocurrency trading, security measures, and the ever-evolving tactics of scammers.
Our frustration with scammers was real, but the knowledge and skills we acquired were priceless. While the project ended in a loss, we haven’t ruled out revisiting it in the future. With more experience and new strategies, we might succeed where we previously struggled.
Do we regret it? Not really—except for one lesson that sticks: we should have been greedier when Ziggy was profitable. We started with small token purchases under 0.3 WSOL, when we could have risked 1 WSOL or more. Initially, we feared disrupting the market since liquidity and market caps were small, and other bots could sell before us.
That said, we hope our experiences provide valuable insights for anyone navigating the complex world of cryptocurrency trading. Feel free to reach out if you’d like more information or access to the full script.