** this is a fork of rust-websocket-server
RTFM <3
"Me cabe la de disparar, pero hay que apuntar un poquito..." - Emiliano Migliorata
-
Analyzes holders and token distribution for a given SPL address. Follow this example to basically do anything you want.
-
Track new tokens =>
- Subscribes to logs mentioning Raydium (more to come) and filter initialize2 events.
- Grabs the signature and fetch the transaction to find the main token address.
- Fetches new token metadata
-
Track wallets => working! Checkout l179 of main. Input your wallet and start tracking (must run the project!
- Subscribes to the logs of the whale (l166)
- Receive transaction signatures after consuming and parsing websocket events.
- Fetches the transaction
- Parses transaction instructions (for now, only supports TransferChecked instructions) and pre/post token balances
- Outputs summary -> TODO: TELEGRAM BOT HERE
-
WIP: Smart Whale tracking
- Manually input 10 wallets
- Track wallet transactions in 5/10 minute intervals.
- Persist a report for the given interval with Transaction Summaries
- Feed the summaries of each wallet to GPT to create a whale overall summary for the given interval
- Feed the each whale's summary of summaries to GPT to create an overal 10 minut summary.
- Persist, train, repeat, test, DBAB
- You receive alerts when there are some buy/sell signals following professional technical indicators. Recommended for professional users. (Example: "EMA of SOL/USD 1h cross up 70”)
- You receive alerts when token(s) changes its non-price parameters such as volume, number of trades, ect. in a certain time frames. (Example: "SOL Price Change % in 1h is greater than 30%”)
- You receive alerts when specific actions happened, such as large buys, large sells or any trades by a wallet. (Example: "Wallet HhfmVzo...NxAFFKbWU2h (Solana) has a trade with value greater than $100k at Jupiter”)
Market Movements
You receive notifications following market events such as new trending tokens or new tokens listed. (Example: "SOL gets into Top10 Trending list")
You will need to install Rust and Cargo. Pull the repo, cd into it and run:
cargo build
cargo run
This app uses Actix to expose an HTTP server, which you can test by making a request to http://localhost:8080/api/holders
with the following body:
{
"token_mint_addresses":["DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"]
}
The list below summarizes the available endpoints through RPC aganst a public or private solana validator node:
- getLatestBlockhash Purpose: Fetches the latest block hash along with its validity period. Essential for ensuring transactions are recent and will be accepted by the network.
- getProgramAccounts Purpose: Retrieves all accounts owned by a specific program, useful for monitoring smart contracts, especially DeFi protocols, and NFT collections.
- getSignaturesForAddress Purpose: Returns the signatures of transactions that involve a specific account. This is crucial for tracking transactions related to specific tokens or wallets, providing insights into market activity.
- getTransaction Purpose: Fetches a confirmed transaction by its signature. Vital for analyzing transaction details, including participants, token amounts, and more.
- getAccountInfo Purpose: Retrieves information about a specific account, including its current balance and owner program. This can be used to monitor the balances of key accounts, such as token treasuries or large holders.
- getTokenAccountBalance Purpose: Returns the token balance of a specific SPL token account. It's useful for tracking the distribution and concentration of tokens among holders.
- getTokenAccountsByOwner Purpose: Finds all SPL token accounts owned by a specific account. This is useful for identifying all the tokens held by a particular investor or contract.
- getTokenSupply Purpose: Provides the total supply of an SPL token. Monitoring changes in token supply can offer insights into inflationary or deflationary pressures on a token's value.
- getSlot Purpose: Retrieves the current slot, which is a measure of time in the Solana blockchain. It's useful for understanding the blockchain's state and the timing of transactions.
- getSlotLeader Purpose: Identifies the current slot leader, which is the validator node responsible for producing blocks in the current slot. This can provide insights into network dynamics and validator performance.
- Use getSignaturesForAddress and getTransaction to track the activities of known wallets associated with top traders.
- accountSubscribe: Monitor changes to specific accounts in real-time, such as token balances changing.
- logsSubscribe: Get real-time streaming of transaction logs, useful for live monitoring of contract interactions.
- signatureSubscribe: Subscribe to receive a notification when the transaction with the given signature reaches the specified commitment level.
- blockSubscribe: Subscribe to receive notification anytime a new block is confirmed or finalized.
- programSubscribe: Subscribe to a program to receive notifications when the lamports or data for an account owned by the given program changes