Crypto-Labeler is an advanced, AI-powered labeling and moderation tool dedicated to protecting the BlueSky community. By identifying and addressing crypto spammers, scammers, phishing attempts, and other malicious activities, it fosters a safer, more trustworthy, and transparent online environment for all users.
This bot leverages ATProto and the Ozone server protocol to identify and label harmful behavior. It utilizes advanced AI capabilities to detect spam, scams, bots, and phishing accounts, streamlining moderation efforts on the BlueSky platform.
To run Crypto Labeler, ensure you have the following installed:
- Node.js (version 20 or higher)
- Pnpm (version 9.15.0 or higher)
- DeepSeek-V3 API you need an account and API key to use the DeepSeek API.
- Ozone Labeler (registered with moderator permissions on the BlueSky network; see Ozone for details)
- PM2 (optional) PM2 is a daemon process manager that will help you manage and keep your application online 24/7
- Clone the repository:
git clone https://github.com/<your-repo-url>
- Navigate to the project directory:
cd crypto-labeler
- Install dependencies using Pnpm:
pnpm install
To start the bot, run:
pnpm start
This command initiates the bot, resuming a previous session if available or logging in as a new session.
If you want to run with pm2
pm2 start app.json
(pm2 logs scam-detector
to see the logs output)
The bot uses environment variables for authentication and configuration. Set these variables in a .env
file located in the root directory of the project. Use the sample file as a template:
cp .env-sample .env
Adjust the values in .env
as needed.
- Add Scam Terms to the
scamTerms
array inlists/scam_terms.js
. - Add Ignored handles to the
handleIgnore
array inlists/handle_ignore_array.js
.
The bot uses an SQLite database to manage automatically ignored handles and their expiration times. The database file is located at ./ignoreHandles.db
.
The ignore_handles
table consists of the following columns:
handle
: The handle to be ignored (primary key)expiration_time
: The expiration timestamp in milliseconds
Made with https://gitdiagram.com/eddieoz/atproto-scam-detector
Contributions are highly encouraged! If you wish to contribute:
- Fork the repository.
- Create a feature branch.
- Submit a pull request with your changes.
Your support helps improve Crypto Labeler and its impact on the BlueSky community.
This project is licensed under the MIT License. See the LICENSE.txt
file for full details.
If you found this project helpful, please consider supporting it:
Or drop me a tip through Lightning Network: ⚡ getalby.com/p/eddieoz
Your contributions and support are greatly appreciated!