-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
This pull request replaces the existing Chinese README.md with a fully translated English version. All instructions, comments, and configuration details are now in English. The content and formatting have been preserved for clarity and usability.
Summary of changes:
- Full replacement of README.md with an English translation
- All technical instructions, comments, and configuration explanations are now in English
New README.md content:
# Evil
Used to track some suspicious (evil) wallet addresses and record their holdings.
## Usage
```bash
# 1. Install sqlx
cargo install sqlx-cli --no-default-features --features postgres
# 2. Create the database
mkdir data
touch data/db.sqlite3
cp env.example .env
sqlx database create
sqlx migrate run
# 3. Build the project
cargo build --release
# 4. Run
cp app.example.toml app.toml
## 4.1 Start the web service
./target/release/angel -c app.toml web
## 4.2 Start tracking
./target/release/angel -c app.toml daemon
```
Add an address
```bash
curl "http://127.0.0.1:2211/api/v1/add_account?address=9xHxgDbeQDX51Vof7ruAaYjSYgR87BXRp3ZC62jrmJV1"
{"msg":"ok","data":null}
```
Query a token address
```bash
# The address holds tokens
curl "http://127.0.0.1:2211/api/v1/get_coin?token=APAkdwfAyqFsQuD92hURMnfUE2dKkjaZjbttx3oZfniy"
{"msg":"ok","data":{"id":528,"account":"9xHxgDbeQDX51Vof7ruAaYjSYgR87BXRp3ZC62jrmJV1","token":"APAkdwfAyqFsQuD92hURMnfUE2dKkjaZjbttx3oZfniy","created_at":1733293394,"deleted":0}}
# The address does not hold tokens
curl "http://127.0.0.1:2211/api/v1/get_coin?token=APAkdwfAyqFsQuD92hURMnfUE2dKkjaZjbttx3oZfn1y"
{"msg":"ok","data":null}
```
Check if a token has an unusually large holder
```bash
# Someone holds a disproportionately large amount of the token (threshold set in config: check_largest_account_hold_coin)
curl "http://127.0.0.1:2211/api/v1/check_token_largest_accounts?token=4XVHtuLTu35F9vV5JZBNUQGaAZe7KuK8ZQffVssvpump"
{"msg":"ok","data":{"is_suspicion":true} # Someone holds too much
curl "http://127.0.0.1:2211/api/v1/check_token_largest_accounts?token=9FABQYprYoaBDjhaqHcQzyMnWzBSYPS3RPLYiTG2pump"
{"msg":"ok","data":{"is_suspicion":false} # No one holds too much
# When you provide a non-existent token
curl "http://127.0.0.1:2211/api/v1/check_token_largest_accounts?token=9FABQYprYoaBDjhaqHcQzyMnWzBSYPS3RPLYiTG2pum"
{"msg":"get token largest accounts err: RPC response error -32602: Invalid param: could not find mint; ","data":null}
```
## Configuration file
```toml
database_url="sqlite://./data/db.sqlite3"
host_uri="127.0.0.1:2211" # Address of the local web service
solana_rpc_url="https://api.mainnet-beta.solana.com" # Solana RPC addresses, separated by commas. It's best to use your own, e.g., helius.dev
solana_rpc_curl_interval=10 # Interval (in seconds) to sync the holdings of monitored accounts
check_largest_account_hold_coin=100000000.0 # Threshold for flagging large holders; here, 100 million means any account (excluding the pool) holding more than 100 million tokens will be flagged as suspicious
```Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels