Address Checker CLI
About
Address Checker CLI helps you check different security related information about the addresses with ease. To provide the information about the addresses we use our own address ban list and also GoPlus API.
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, Arbitrum, Polygon, Base, Avalanche, Sonic, Solana, Tron, Sui
- Pro mode: use EXTRA WALLET API key to be able to get more detailed info without any additional effort
- Free mode: Do not want to use EXTRA WALLET API key? Provide your own GoPlus keys and receive the same information! You can also use the CLI without neither EXTRA WALLET nor GoPlus keys, but in that case you will receive much smaller amount of information.
How to run
Option 1: Run via npm (recommended)
This is the recommended way for most users.
Requirements
- Node.js (v22)
Run
npx @extra-wallet/address-checker
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/address-checker-cli
pnpm build
5. Run locally
npx address-checker
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. At the end you will be shown the risk level of the address
To run the program in non-interactive mode you have to also specify arguments using flags like this:
npx address-checker --address="..." --network="arbitrum" --extrawallet-key="..."
To get information about every argument, you can use help command:
npx address-checker help
Arguments
| Flag | Required | Description | Aliases |
|---|---|---|---|
| network | true | Network the address belongs to | n |
| address | true | The address you want to check security information about | a |
| extrawallet-key | false | Your EXTRA WALLET API key | e, api-key, key |
| go-plus-key | false | Your GoPlus app key | |
| go-plus-secret | false | Your GoPlus app secret | |
| verbose | false | Whether the full result of address check should be shown or the short one like in interactive mode. Defaults to false | v |
| formatted | false | Whether output should be formatted or raw json. Defaults to false | f |
If extrawallet-key is already specified, there is no need to specify go-plus-key and go-plus-secret.
If neither extrawallet-key nor go-plus-key and go-plus-secret is specified, the address information will still be checked but by only using our own ban list,
which only contains info about EVM and Tron addresses, which obviously decreases the quality of the result.
Output
Interactive Mode
At the end you will see text with risk level of the address like this:
Address risk level: <risk level>
Non-interactive Mode
Depending on arguments specified you can see different json results.
If formatted flag is used, the output json will be formatted for easier reading.
If verbose is false, the json will have only one field: riskLevel. But if verbose is true, there will also be securityDetails field with much more detailed information about the address.
About Risk Levels
There are totally three risk levels: low, medium and high.
High risk level means that the address is most likely somehow related to fishing, scam etc.
Medium risk level indicates that the address is very likely, but not guaranteed to be related to some scam or other such stuff.
Low risk level indicates that we could not find any information that would mark this address as scummy.
Low risk level does not guarantee that the address is safe. It only indicates that we could not find any information that would prove it to somehow be risky to interact with