Bitcoin Whale Tracking Using Python Script – Know When Whales Are About to Dump

A couple of weeks ago I came across a few TikTok videos talking about following a large BTC wallet to find out when it’s about to make a large move. If you want to trade based on these moves, you need to know immediately when it happens. This script will tell you when!

As it turns out, this particular wallet is currently the 3rd largest in the world, currently with over 126,000 BTC, and is fairly active. It’s also not an exchange wallet either and looks like it’s an individual. Here’s a link to the wallet and its activity.

This particular wallet has shown some nice moves in the past that clearly indicate when we should be selling, and when we would want to consider accumulating. Now keep in mind this is not an exchange wallet, so transactions in and out don’t necessarily mean they are buying or selling. However, this wallet, who I’ll continue to refer to as #3, is regularly sending and receiving from a Coinbase wallet. Think about it, why else would you send 1,500 BTC to an exchange? Here are some examples of big moves.

In the list at the link above you can see a large outgoing transaction of 1,500 BTC (that’s $65+ million US dollars folks!!) on March 1st, 2022:

1_BTC 1500 moving out of wallet

If you click on the block for that transaction:

2_BTC 1500 moving to Coinbase wallet

…the 1,500 BTC is sent to Coinbase. Looks like they may be getting ready to sell. Let’s take a look at TradingView for BTC-USD on Coinbase for March 1st, 2020:

3_BTC-USD Coinbase showing trading candles and highlighting March 1 2022

Yep, that’s a local top followed by a 15% selloff. After that, the wallet starts accumulating again. Let’s have a look at another. November 8th, 2021. Another 1,500 BTC moves to Coinbase.

4_BTC 1500 moving out of wallet on Nov 8 2021

Again, the TradingView chart:

5_BTC-USD Coinbase showing trading candles and highlighting Nov 8 2022

Perfect timing again! Of course, there’s a clear bearish divergence showing on RSI, but this move was already made before the close. Now, I’m not saying these moves caused the market to move, in fact, some of the September/October 2021 moves weren’t well-timed, but going back to early May and mid-April 2021 were almost spot on again. The point is, watching what this wallet does could give you some indication of the next macro move for Bitcoin.

Of course, I don’t have time to refresh that page all day to find out when the next move is about to happen, so decided to create a python script to notify me when it happens instead.

Python Script to Track BTC Wallets

This is a relatively simple script to setup and use and I’ll walk you through all the steps to do so. We’ll also be using Telegram to get the notifications. Let’s get to it!

Install the Python Script

It’s best to install this on a virtual server so it can run continuously. You can set it up wherever you want, but if you’re unsure of how to setup a server, you can use the instructions here which show how to set one up with Google. For now, you only need to follow the steps in the section titled Setup a New VM Instance on Google Cloud. After you’ve got that all setup, we can continue below.

In the shell window run the following commands:

sudo apt install git
git clone https://github.com/nickpagz/btc-whale-tracker.git
cd btc-whale-tracker
sudo apt-get install python3-pip
pip3 install -r requirements.txt
export PATH="$HOME/.local/bin:$PATH"

Setup Your Telegram Bot

Note: If you don’t have a Telegram account, you’ll be prompted to create one when you click on the next link. For the purposes of this post, I’m assuming you already have a Telegram account.

Use the following link to have a chat with the BotFather:

https://telegram.me/BotFather

In the Telegram chat, send the message /newbot.

You’ll be prompted to choose a new name for your bot. It can be whatever you want. For mine I’ve chosen btcwhalebot. You’ll then be asked for a username, and this must end in bot. I’ve chosen NicksWhaleBot. You’ll then be given an access token for the API. Copy this token to the clipboard and head back to your server shell window and run:

telegram-send --configure

Now paste the token and hit enter. The program will respond and ask you to add your user to Telegram (link is provided in the response), and send the password provided.

6_Telegram-send configure response in shell window

You’ll then be prompted in the shell window with a Congratulations! telegram-send is now ready for use!

And in Telegram…

7_Telegram whale tracker bot setup

Setup And Run The BTC Whale Tracker Script

Before we run the script there’s a few things to mention.

  • First, the service poviding the transaction details have a request limit of one every 10 seconds, so I would recommend not reducing times on any of the delays in the code. I learned the hard way, through testing, they will ban your IP for some time. I think 48 hours.
  • The script currently checks for new transactions every hour, on the hour. You can change that on line 52 by changing the 60, as in minutes, to another value if you want.
  • The script sends a message every hour (if you keep the default 60 minutes from the point above) to Telegram, as a way of “checking in” so you know the script is still running. If that’s annoying, delete line 53 in the code.
  • Lastly, the messages indicate the wallet is “accumulating” or “dumping”, though this may not actually be the case. It only indicates Bitcoin going in or out of the wallet. This could be to another wallet, payment for something, or to an exchange. As an example, #3’s transactions are typically to and from Coinbase. In most cases, if #3 sends a large amount to Coinbase, it’s likely they’re about to sell, indicating a price drop may be imminent. All I’m saying is, use the messages with caution.

Adding or Removing Wallets to Track

To modify the BTC wallets you want to follow, you’ll modify the dictionary btc_addresses near the top code. Follow the same format as shown. The key (first value on each line) can be anything you want, preferably a reference to the wallet that makes it easy to remember what it is, and then add the wallet address as the value.
In the sample code I’m following #3, so referenced as it’s currently the 3rd largest BTC wallet that’s not an exchange or fund. The second one is called Random as it’s a random large wallet I added to show the structure. I’ll don’t run the script with Random, so feel free to remove it as well, or add your own.

Examples:
If you want to only follow #3, your dictionary will look like this:

btc_addresses = {
    '#3': '1P5ZEDWTKTFGxQjZphgWPQUpe554WKDfHQ',
    }

If you want to add more…

btc_addresses = {
    '#3': '1P5ZEDWTKTFGxQjZphgWPQUpe554WKDfHQ',
    'Random': '14m3sd9HCCFJW4LymahJCKMabAxTK4DAqW',
    'Mr. C': 'soMeaDDressFormrCwhatEverThatMaybE',
    }

If you do follow some other whale wallets, please share in the comments.

Starting the Whale Tracking Script

We’re going to run the script in a Tmux session so it continues to run even if you close the shell window. There’s more details on using Tmux in this post, in the section titled Using Tmux to Run Our Scripts, but I’ll cover the basic steps here. First install Tmux using:

sudo apt-get install tmux

Then start a new session:

tmux new -s btctracker

If you’re not already in the btc-whale-tracker directory, then enter:

cd btc-whale-tracker

Now start the script:

python3 btctracker.py

When the script starts you’ll get a notification of the last transaction for each wallet to your new Telegram channel. This is because the script doesn’t have any history, so it assumes the last transaction is the latest. It also helps to confirm your Telegram bot is working.

That should be all there is to it. You can close the shell window, and wait for the notifications to come in. Be aware though, it wouldn’t be unusual for the service/site providing the transactions to go offline from time to time which would cause the script to stop. In these cases, you’ll need to restart the script.

That’s it! If you have any questions or suggestions, or know of any good whale wallets we should be tracking, make sure to drop those in the comments. Looking forward to hearing from you!

Stay up to date on all the posts and how-to’s, Subscribe!

11 thoughts on “Bitcoin Whale Tracking Using Python Script – Know When Whales Are About to Dump

  1. Nick

    Nicely done! Will have to do some analysis to see correlation between this wallet and BTC movement for out movements > 1000 BTC.

    Have you figure out any method to send a signal to TV to graph the in vs out movement against BTCUSD price on coinbase?

    Like

    • Yeah, the last signal didn’t play out as expected, which was unusual for this particular wallet.

      Have you figure out any method to send a signal to TV to graph the in vs out movement against BTCUSD price on coinbase?

      I didn’t even think about that, to be honest. Worth a look for sure though.

      Like

  2. This is really nice, thank you. Have you thought of deploying it to Raleway? It is a Heroku alternative and offers Telegram and Discord Starter Bots. I’m not a Python coder so couldn’t convert your script to their starter but you can spin up an app within minutes and have a nice interface + the ability to work with VS code as an IDE rather than nano in the terminal 🙂 Thanks for your amazing work
    https://railway.app/starters?search=discord&language=python

    Like

    • Thanks for the link, Chris! The thought had definitely crossed my mind, and I was looking into making this a telegram bot. I’ll definitely have a look at this. Cheers!

      Like

    • It’s possible. One option would be to add a script like this into the script controlling your long bots. If you’re not using a script to control your bots, ie just have a bunch of long bots in 3Commas, then you can use a webhook within the script to close your bots. There’s a webhook in 3Commas called “Message to stop all long bots on account”. So it’s very possible, yes.
      Having said that, I’ve noticed with this particular whale (#3), the market generally moves lower starting the day after his BTC is transferred to Coinbase – so he doesn’t dump right away – at least not so far anyways, giving you some time to watch and evaluate, and close those manually if you want.

      Like

      • Hey Nick, I want to get started using your methods, but a lot of your methods use FTX, which is no longer available. If you’re still doing this, what exchange do you use?

        Like

  3. Hi, such a nice read, I been approached while ago regards creating pine script for copying this wallet, but love to hear if u created discord group or telegram group for public to join and receive signals, rather then each of us creating new one. Love to hear from you an update. mad Love

    Like

Leave a comment