Skip to content

Translate README.md to English #1

Description

@jmikedupont2

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
```

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions