Skip to main content

Wallet Tracker CLI

About

Wallet Expander CLI allows you to track balance changes of different wallets and get notified about them via email.


License

Licensed under the PolyForm Noncommercial License 1.0.0. Commercial use requires a separate written commercial license agreement from the licensor — contact alex@vir-tec.net.


Key features

  • Supported Networks: Ethereum, Optimism, Bsc, Polygon, Sonic, Base, Arbitrum, Avalanche, Ethereum-Classic, Bitcoin
  • Email Notifications: Get notified about balance changes via email
  • Pro Mode: Want to get more information about changes? Use EXTRA WALLET API key for Pro mode

How to run

This is the recommended way for most users.

Requirements

  • Node.js (v22)

Run

npx @extra-wallet/wallet-tracker

This will:

  • download the CLI on demand,
  • start the interactive terminal UI

Option 2: Run locally from the repository (development)

Use this if you want to:

  • inspect the code,
  • modify the CLI,
  • contribute or debug.

Requirements

  • Node.js (v22)
  • pnpm

1. Install dependencies

From the repository root:

pnpm install

2. Build shared code

cd shared/sdk
pnpm build

3. Return to the root of the repository

cd ../..

4. Build the CLI

cd packages/wallet-tracker-cli
pnpm build

5. Run locally

npx wallet-tracker

How to use

The CLI can be run in two modes: interactive and non-interactive

To run the program in interactive mode you just have to follow the instructions of the previous step. In this mode you will be asked for needed inputs step by step.

To run the program in non-interactive mode you have to also specify arguments using flags like this:

npx wallet-tracker --extrawallet-key="..." --email="my@mail.com" --interval=1000

To get information about every argument, you can use help command:

npx wallet-tracker help

Arguments

FlagRequiredDescriptionAliases
emailtrueEmail you want to send data about balance changes to
inputtrueInput data with the info used for fetching balances.i
extrawallet-keyfalseYour EXTRA WALLET API key. Specify when you want to use Pro modee
intervalfalseInterval of time to check for balance change in milliseconds. Defaults to 1 minute
evm-rpcsfalseRPC urls to use to fetch balance data. Has to be provided in case you want to get balance changes of EVM addresses and do not provide extrawallet-key
resendfalseResend API key to use to send emails
timeoutfalseTime in milliseconds before the request is dropped. Defaults to 15 seconds
retriesfalseAmount of retries to do in case of failed request. Defaults to 2(so the final amount of requests is 3 - 1 initial and 2 retries)

Input format

input expects JSON with the following form:

{
"btc": ["bitcoin-address-1", "bitcoin-address-2"],
"evm": {
"evm-address-1": {
"network-1": ["token-address-1", "token-address-2"],
"network-2": ["token-address-3"]
}
}
}

Example:

{
"btc": ["1H2MXWiSniAgg7ykdXEzPHL6oTH1ic4kP"],
"evm": {
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045": {
"ethereum": [
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
],
"optimism": ["0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"]
}
}
}

Output

Every time balance change is detected, you will receive a letter with information about it and a message about it will be printed to stdout.

The email will contain the a list of changes that states the network, holder address, currency address, old and new balances. In Pro mode the email the change also contains token symbol and balances in dollars.