This project is a TypeScript-based application that interacts with the Solana blockchain using the Solana Web3.js library. It tracks transactions on the blockchain, creates transaction trails, and clusters them to identify the most connected wallets. The application features wallet creation, SOL token airdrop, transaction tracking, and email notifications for account activities. Additionally, it uses WebSockets for real-time updates and Python code to implement the Louvain algorithm for clustering transactions.
- Wallet Creation: Generates a new Solana wallet and saves the keypair in a JSON file for future use.
- Airdrop SOL Tokens: Airdrops 2 SOL to the newly created wallet on the Solana Devnet.
- Transaction Tracking: Monitors account changes using WebSockets and retrieves the latest transaction details.
- Email Notifications: Sends email alerts with transaction details whenever a change is detected in the monitored accounts.
- Transaction Clustering: Uses the Louvain algorithm to cluster transactions and identify the most connected wallets for monitoring.
- TypeScript: Strongly typed programming language that builds on JavaScript.
- Solana Web3.js: JavaScript SDK for interacting with the Solana blockchain.
- ReactFlow: Library used to visualize blockchain transactions as graphs.
- Prisma: ORM used to manage MongoDB.
- Nodemailer: Node.js module for sending emails.
- WebSockets: Provides real-time event-driven communication.
- Python: Used for the Louvain algorithm in the clustering process.
-
Clone the Repository
git clone https://github.com/tanish35/Blockchain-Tracker.git cd solana-wallet-manager
-
Install Dependencies
npm install
-
Run the Backend Server
cd backend npm start
-
Run the Frontend
cd frontend npm run dev
-
Airdrop & Wallet Management: The
functions/airdrop.ts
script generates a keypair, saves it to a JSON file, and airdrops 2 SOL to the wallet on the Solana Devnet. -
Transaction Tracking: The
functions/app.ts
script listens for changes to specified accounts using WebSockets. When a change is detected, it fetches the latest transaction details and sends an email notification. -
Transaction Clustering: The
clusters
folder contains Python code implementing the Louvain algorithm. It clusters transactions to identify the most connected wallets. -
Wallet Monitoring: Wallets identified in the most connected cluster are monitored using WebSockets, with email alerts sent for any new transactions.
-
Make Transaction: The
functions/transaction.ts
script makes a transaction of 0.01 SOL to a specified wallet.
Feel free to fork the repository and submit pull requests. Contributions, whether bug fixes, features, or documentation improvements, are welcome!
This project is licensed under the MIT License. See the LICENSE file for details.