Skip to content

Repository files navigation

❄️ Token Freezer — Desktop Bot ❄️

A cross-platform desktop bot application (Windows .exe & macOS .dmg) that watches Raydium AMM V4 pools for a specific token and automatically freezes the token accounts of every wallet that buys it — locking their tokens so they can no longer sell or transfer them.

Built as a modern desktop app with Electron + React + TypeScript + Vite and lucide-react icons, it ships with a full interactive UI (Dashboard, Settings, and an in-app Guide).

The original CLI script is preserved under legacy-cli/ for reference.


✨ Features

  • 🖥️ Cross-platform desktop app — same UI on Windows and macOS.
  • 🎛️ Interactive dashboard — one-click start/stop, live stats, and a real-time log.
  • 👀 Live pool detection — subscribes to the Raydium AMM V4 program and finds new pools for your token the moment they're created.
  • 🛡️ Auto-freeze — detects buyers and batches freeze instructions into efficient transactions (configurable batch size).
  • 💾 Persistent state — your settings and frozen-wallet history are saved between runs.
  • 🔬 Test freeze — manually freeze a single wallet to verify your setup.
  • 📖 In-app guide — step-by-step usage instructions built right into the UI.

⚠️ Important — Read before using

You can only freeze token accounts if the account you configure holds freeze authority over the token mint. Freezing prevents the buyer from selling or transferring the token. This tool should only be used on tokens you own or control, and you are responsible for how you use it.

Security: the secret key you enter is stored (locally, in your user-data folder) so the bot can sign freeze transactions. Anyone with access to that key can freeze accounts — keep your machine secure and never share it.


🚀 Getting started

Option A — Run from source (both platforms)

Requires Node.js 18+.

# 1. Install dependencies
npm install

# 2. Run the desktop app in development (opens the Electron window)
npm run dev

Option B — Build a distributable installer

# Windows installer (.exe via NSIS)
npm run dist:win

# macOS app (.dmg)
npm run dist:mac

# Both / current platform
npm run dist

Installers are written to the release/ folder. Windows builds should be run on Windows (macOS builds on macOS) for best results.


📖 How to use

  1. Open Settings — enter your RPC URL, the token mint address, and your freeze-authority secret key (base58). Choose a commitment level and how many freezes to bundle per transaction.
  2. Save settings — your config is stored locally and persists between launches.
  3. Test your setup (recommended) — on the Dashboard, use the Test freeze box to freeze one wallet's token account and confirm your keypair + RPC work.
  4. Start the bot — click Start Bot. The status pill turns green when running.
  5. Watch it work — the Live log shows each detected buyer and the Frozen wallets list grows. Freeze transactions are batched and linked on Solscan.

Full walkthrough, detection details, and troubleshooting tips are available inside the app under Guide.


🏗️ How it works

The bot subscribes to Solana's onProgramAccountChange stream for the Raydium AMM V4 program, filtering for pools whose base mint matches your token and whose quote mint is SOL (WSOL) and that are in an open state. When a qualifying pool appears, it watches that pool's quote vault logs. Any new signer that interacts with the vault is treated as a buyer and gets a freeze instruction on their associated token account. Instructions are queued and submitted as batched transactions.

Stack

Layer Tech
Desktop shell Electron
UI React 18 + TypeScript
Build Vite
Icons lucide-react
Solana @solana/web3.js, @solana/spl-token
Raydium @raydium-io/raydium-sdk
Packaging electron-builder

📁 Project structure

electron-src/          Electron main process (bot engine, config store, IPC, preload)
  freezeBot.ts         Solana freeze-engine (pool detection + auto-freeze)
  store.ts             Persists settings + frozen wallets to disk
  main.ts              App window + IPC wiring
src/                   React renderer (UI)
  pages/               Dashboard, Settings, Guide
  components/          Toaster
  lib/                 useBot hook, api mock (browser preview), toast
legacy-cli/            Original CLI script (reference only)
electron-builder.yml   Packaging config for Windows / macOS / Linux

🧑‍💻 Development

npm run dev         # run in dev (Electron window)
npm run typecheck   # type-check both renderer and main process
npm run build       # build renderer (dist/) and main (electron/)

💡 Running npm run dev:renderer alone serves just the UI in a browser with a mock IPC bridge (demo data), useful for UI-only previews.


📞 Contact

Telegram: @vicckr

"Keep your tokens cold and your code hot!" 🔥

About

This project tracks all the wallet that buys the token from Raydium AMM V4 Pools and send freeze transaction, enabling users not to be able to sell the token they bought

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages