This system is designed to monitor and process Solana blockchain transactions, update a database, and notify users through various channels. It consists of several components:
- Solana Wallets
- Helius (Blockchain data provider)
- Server
- Database (Postgres)
- Message Queue (Redis)
- Notification Services
- Client Application (NextJs)
- Wallet 1 and Wallet 2 represent the source and destination of Solana (SOL) transactions.
- The system tracks transactions of 1 SOL being sent between these wallets.
- Helius is used as a blockchain data provider.
- It triggers a webhook when a relevant transaction occurs on the Solana blockchain.
- Receives webhook notifications from Helius.
- Processes transaction data.
- Updates the database.
- Streams data to connected clients via WebSocket.
- Pushes notifications to the message queue.
- Stores transaction data and related information.
- Accessed by both the server and client application(Server Actions).
- Handles asynchronous processing of notifications.
- Ensures reliable delivery of messages to various notification services.
- SMS: Send text message notifications.
- Discord: Send notifications to a Discord channel.
- Email: Send email notifications to users.
- Telegram: Send Telegram notifications to users.
- A NextJs App that interacts with the Database.
- Fetches and displays transaction data from the server.
- A transaction of 1 SOL is sent from Wallet 1 to Wallet 2.
- Helius detects this transaction and triggers a webhook to the server.
- The server processes the webhook data and:
- Updates the database
- Streams the data to connected clients via WebSocket
- Pushes a notification to the message queue
- The message queue distributes the notification to SMS, Telegram, Discord, and Email services.
- The client application fetches updated data from the server and displays it to the user.
The client provides the following features:
- Real-time display of tracked Solana transactions
- Managing your connected services where you want to receive notifications
(Provide information on how the system can be scaled to handle increased load and maintain performance)
All Contributions are welcome ❤️