Skip to content

The program allows you to check balances in several EVM networks at once, for which it has flexible settings for each of them.

License

Notifications You must be signed in to change notification settings

SecorD0/evm-balance-checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

evm-balance-checker

Content

Description

To the content

⠀The program allows you to check balances in several EVM networks at once, for which it has flexible settings for each of them:

  • Multiple RPCs to prevent the 429 error known as "too many requests".
  • A list of token contract addresses whose balance needs to be parsed.
  • A list of NFT contract addresses whose quantity on balance needs to be parsed.

⠀The program supports using proxies to access RPC from different IPs. Saving the state it also provided, so if the program suddenly terminates, the balances will be checked from the same place when the program is restarted. Importing addresses and uploading results is done via Excel spreadsheet (each network has its own sheet). In addition to parsing the balance in the token itself, the program counts the balance of each token in dollar equivalent and the total dollar balance.

Useful links

To the content

evm-balance-checker

File structure

To the content

⠀The program use the following files and directories:

  • files — a user files directory:
    • addresses.db — a temporary database to save the state;
    • addresses.xlsx — a spreadsheet for importing and viewing results.
    • errors.log — a log file with errors that occurred during the work;
    • proxies.txt — a text file with HTTP/SOCKS5 IPv4 proxies;
    • settings.json — a JSON file for program setup.
  • evm-balance-checker.exe / app.py — an executable file that runs the program.

How to run

To the content

Windows

  1. Download an EXE file from the releases page.
  2. Create a folder and put the EXE file in it.
  3. Run the program the first time to create necessary files.
  4. Insert addresses to be checked into the addresses.xlsx spreadsheet.
  5. Optionally insert HTTP/SOCKS5 IPv4 proxies in one of the following formats into the proxies.txt file.
login:password@proxy:port
http://login:password@proxy:port
socks5://login:password@proxy:port
  1. Configure the settings.json:
    • general — general settings:
      • threads — number of addresses to be checked simultaneously. It isn't desirable to specify a value greater than 20.
      • parse_token_price — whether to add the dollar balance of each token and the total dollar balance to the results spreadsheet (true or false).
    • networks — list with fine-tune settings for each network:
      • name — network name, if not specified it will use the network ID (optional).
      • rpcs — list of RPCs from which a random one will be selected for each request.
      • tokens — list with token contract addresses, specify "" to parse coin balance, if you don't specify anything, the coin balance will be parsed (optional).
      • nfts — list with information about NFTs whose quantity on balance needs to be parsed (optional):
        • contract_address — NFT contract addresses.
        • token_id — specific token ID (optional).
  2. Run the program again, wait for it to finish and close it. A total of 5 parsing attempts will be made to successfully complete all failed requests. If the number of requests is large and the number of RPCs and proxies is small, an error may occur: Failed to parse the balances of all tokens and NFTs! Try adding RPC and/or proxies.
  3. Open the addresses.xlsx spreadsheet to view the results.
  4. Delete the addresses.xlsx and addresses.db (if it exists) files.

Docker (image)

  1. Install Docker, in Ubuntu you can use the command:
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
  1. Run the program the first time to create necessary files:
docker run -it --rm -v $HOME/evm-balance-checker/files:/app/files --name evm-balance-checker ghcr.io/secord0/evm-balance-checker:main
  1. Insert addresses to be checked into the addresses.xlsx spreadsheet.
  2. Optionally insert HTTP/SOCKS5 IPv4 proxies in one of the following formats into the proxies.txt file.
login:password@proxy:port
http://login:password@proxy:port
socks5://login:password@proxy:port
  1. Configure the settings.json:
    • general — general settings:
      • threads — number of addresses to be checked simultaneously. It isn't desirable to specify a value greater than 20.
      • parse_token_price — whether to add the dollar balance of each token and the total dollar balance to the results spreadsheet (true or false).
    • networks — list with fine-tune settings for each network:
      • name — network name, if not specified it will use the network ID (optional).
      • rpcs — list of RPCs from which a random one will be selected for each request.
      • tokens — list with token contract addresses, specify "" to parse coin balance, if you don't specify anything, the coin balance will be parsed (optional).
      • nfts — list with information about NFTs whose quantity on balance needs to be parsed (optional):
        • contract_address — NFT contract addresses.
        • token_id — specific token ID (optional).
  2. Run the program again, wait for it to finish and close it. A total of 5 parsing attempts will be made to successfully complete all failed requests. If the number of requests is large and the number of RPCs and proxies is small, an error may occur: Failed to parse the balances of all tokens and NFTs! Try adding RPC and/or proxies.
docker run -it --rm -v $HOME/evm-balance-checker/files:/app/files --name evm-balance-checker ghcr.io/secord0/evm-balance-checker:main
  1. Open the addresses.xlsx spreadsheet to view the results.
  2. Delete the addresses.xlsx and addresses.db (if it exists) files.

Docker (building)

  1. Install Docker, in Ubuntu you can use the command:
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
  1. Clone the repository:
cd; git clone https://github.com/SecorD0/evm-balance-checker
  1. Go to the repository:
cd evm-balance-checker
  1. Build an image:
docker build -t evm-balance-checker .
  1. Run the program the first time to create necessary files:
docker run -it --rm -v $HOME/evm-balance-checker/:/app --name evm-balance-checker evm-balance-checker
  1. Insert addresses to be checked into the addresses.xlsx spreadsheet.
  2. Optionally insert HTTP/SOCKS5 IPv4 proxies in one of the following formats into the proxies.txt file.
login:password@proxy:port
http://login:password@proxy:port
socks5://login:password@proxy:port
  1. Configure the settings.json:
    • general — general settings:
      • threads — number of addresses to be checked simultaneously. It isn't desirable to specify a value greater than 20.
      • parse_token_price — whether to add the dollar balance of each token and the total dollar balance to the results spreadsheet (true or false).
    • networks — list with fine-tune settings for each network:
      • name — network name, if not specified it will use the network ID (optional).
      • rpcs — list of RPCs from which a random one will be selected for each request.
      • tokens — list with token contract addresses, specify "" to parse coin balance, if you don't specify anything, the coin balance will be parsed (optional).
      • nfts — list with information about NFTs whose quantity on balance needs to be parsed (optional):
        • contract_address — NFT contract addresses.
        • token_id — specific token ID (optional).
  2. Run the program again, wait for it to finish and close it. A total of 5 parsing attempts will be made to successfully complete all failed requests. If the number of requests is large and the number of RPCs and proxies is small, an error may occur: Failed to parse the balances of all tokens and NFTs! Try adding RPC and/or proxies.
docker run -it --rm -v $HOME/evm-balance-checker/:/app --name evm-balance-checker evm-balance-checker
  1. Open the addresses.xlsx spreadsheet to view the results.
  2. Delete the addresses.xlsx and addresses.db (if it exists) files.

Source code

  1. Install Python 3.8.
  2. Clone the repository:
git clone https://github.com/SecorD0/evm-balance-checker
  1. Go to the repository:
cd evm-balance-checker
  1. Set up an environment.
  2. Install requirements:
pip install -r requirements.txt
  1. Run the app.py the first time to create necessary files.
  2. Insert addresses to be checked into the addresses.xlsx spreadsheet.
  3. Optionally insert HTTP/SOCKS5 IPv4 proxies in one of the following formats into the proxies.txt file.
login:password@proxy:port
http://login:password@proxy:port
socks5://login:password@proxy:port
  1. Configure the settings.json:
    • general — general settings:
      • threads — number of addresses to be checked simultaneously. It isn't desirable to specify a value greater than 20.
      • parse_token_price — whether to add the dollar balance of each token and the total dollar balance to the results spreadsheet (true or false).
    • networks — list with fine-tune settings for each network:
      • name — network name, if not specified it will use the network ID (optional).
      • rpcs — list of RPCs from which a random one will be selected for each request.
      • tokens — list with token contract addresses, specify "" to parse coin balance, if you don't specify anything, the coin balance will be parsed (optional).
      • nfts — list with information about NFTs whose quantity on balance needs to be parsed (optional):
        • contract_address — NFT contract addresses.
        • token_id — specific token ID (optional).
  2. Run the app.py again, wait for it to finish and close it. A total of 5 parsing attempts will be made to successfully complete all failed requests. If the number of requests is large and the number of RPCs and proxies is small, an error may occur: Failed to parse the balances of all tokens and NFTs! Try adding RPC and/or proxies.
  3. Open the addresses.xlsx spreadsheet to view the results.
  4. Delete the addresses.xlsx and addresses.db (if it exists) files.

⠀If you want to build the EXE file by yourself:

  • Install pyinstaller:
pip install pyinstaller
  • Build the EXE file:
pyinstaller app.py -Fn evm-balance-checker -i images/icons/app.ico --add-binary "images/icons;images/icons" --add-binary "venv/Lib/site-packages/fake_useragent/data;fake_useragent/data"

Sample settings

To the content

⠀Arbitrum ETH, USDC, USDT; Optimism ETH, Optimism quest NFTs.

{
  "general": {
    "threads": 10,
    "parse_token_price": true
  },
  "networks": [
    {
      "name": "arbitrum",
      "rpcs": [
        "https://rpc.ankr.com/arbitrum/",
        "https://endpoints.omniatech.io/v1/arbitrum/one/public"
      ],
      "tokens": [
        "",
        "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
        "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
      ]
    },
    {
      "name": "optimism",
      "rpcs": [
        "https://rpc.ankr.com/optimism/",
        "https://endpoints.omniatech.io/v1/op/mainnet/public"
      ],
      "tokens": [],
      "nfts": [
        {
          "contract_address": "0xfA14e1157F35E1dAD95dC3F822A9d18c40e360E2"
        }
      ]
    }
  ]
}

⠀Arbitrum ETH, USDC, USDT.

{
  "general": {
    "threads": 10,
    "parse_token_price": true
  },
  "networks": [
    {
      "name": "arbitrum",
      "rpcs": [
        "https://rpc.ankr.com/arbitrum/",
        "https://endpoints.omniatech.io/v1/arbitrum/one/public"
      ],
      "tokens": [
        "",
        "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
        "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9"
      ]
    }
  ]
}

⠀Optimism ETH, Optimism quest NFTs.

{
  "general": {
    "threads": 10,
    "parse_token_price": true
  },
  "networks": [
    {
      "name": "optimism",
      "rpcs": [
        "https://rpc.ankr.com/optimism/",
        "https://endpoints.omniatech.io/v1/op/mainnet/public"
      ],
      "tokens": [],
      "nfts": [
        {
          "contract_address": "0xfA14e1157F35E1dAD95dC3F822A9d18c40e360E2"
        }
      ]
    }
  ]
}

⠀Polygon ETH

{
  "general": {
    "threads": 10,
    "parse_token_price": true
  },
  "networks": [
    {
      "name": "polygon",
      "rpcs": [
        "https://rpc.ankr.com/polygon/",
        "https://endpoints.omniatech.io/v1/matic/mainnet/public"
      ]
    }
  ]
}

Updating

To the content

Windows

  1. Download an EXE file of the new version from the releases page and replace the old one with it.

GitHub image

  1. Stop the container:
docker stop evm-balance-checker
  1. Remove the container:
docker rm evm-balance-checker
  1. Update the image:
docker pull ghcr.io/secord0/evm-balance-checker:main

Self-built image

  1. Stop the container:
docker stop evm-balance-checker
  1. Remove the container:
docker rm evm-balance-checker
  1. Go to the repository:
cd evm-balance-checker
  1. Update the local files:
git pull
  1. Rebuild the image:
docker build -t evm-balance-checker .

Source code

  1. Go to the repository:
cd evm-balance-checker
  1. Update the local files:
git pull

Useful commands

To the content

⠀To run the program (GitHub image):

docker run -it --rm -v $HOME/evm-balance-checker/files:/app/files --name evm-balance-checker ghcr.io/secord0/evm-balance-checker:main

⠀To run the program (self-built image):

docker run -it --rm -v $HOME/evm-balance-checker/:/app --name evm-balance-checker evm-balance-checker

⠀To remove the container:

docker stop evm-balance-checker; docker rm evm-balance-checker

Report a bug or suggest an idea

To the content

⠀If you found a bug or have an idea, go to the link, select the template, fill it out and submit it.

Express your gratitude

To the content

⠀You can express your gratitude to the developer by sending fund to crypto wallets!

  • Address of EVM networks (Ethereum, Polygon, BSC, etc.): 0x900649087b8D7b9f799F880427DacCF2286D8F20
  • USDT TRC-20: TNpBdjcmR5KzMVCBJTRYMJp16gCkQHu84K
  • SOL: DoZpXzGj5rEZVhEVzYdtwpzbXR8ifk5bajHybAmZvR4H
  • BTC: bc1qs4a0c3fntlhzn9j297qdsh3splcju54xscjstc

About

The program allows you to check balances in several EVM networks at once, for which it has flexible settings for each of them.

Topics

Resources

License

Stars

Watchers

Forks

Packages