mirror of
https://github.com/chainstacklabs/pumpfun-bonkfun-bot.git
synced 2026-08-15 16:28:04 +00:00
docs: update README.md
This commit is contained in:
@@ -13,58 +13,20 @@ Not everyone is a scammer though, sometimes there are helpful outside devs who c
|
|||||||
|
|
||||||
**>>END OF WARNING<<**
|
**>>END OF WARNING<<**
|
||||||
|
|
||||||
Development ongoing in the [refactored/main-v2](https://github.com/chainstacklabs/pump-fun-bot/commits/refactored/main-v2/) branch.
|
A word warning: **Not For Production (NFP)**
|
||||||
|
|
||||||
~~As of March 21, 2025, the bot from the **refactored/main-v2** branch is signficantly better over the **main** version, so the suggestion is to FAFO with v2.~~
|
This code is not intended for production use. Feel free to take the source, modify it to your needs, and most importantly, **learn from it** (learning examples, issues, PRs contain a lot of useful insights).
|
||||||
|
|
||||||
As of April 30, 2025, all changes from **refactored/main-v2** are merged into the **main** version.
|
|
||||||
|
|
||||||
Leave your feedback by opening **Issues**.
|
|
||||||
|
|
||||||
A word warning:
|
|
||||||
|
|
||||||
**Not For Production (NFP)**
|
|
||||||
|
|
||||||
This code is not intended for production use. Feel free to take the source, modify it to your needs, and most importantly, **learn from it**.
|
|
||||||
|
|
||||||
We assume no responsibility for the code or its usage. This is our public service contribution to the community and Web3.
|
We assume no responsibility for the code or its usage. This is our public service contribution to the community and Web3.
|
||||||
|
|
||||||
# Pump.fun bot development roadmap
|
|
||||||
|
|
||||||
| Stage | Feature | Comments | Implementation status
|
|
||||||
|-------|---------|----------|---------------------|
|
|
||||||
| **Stage 1: General updates & QoL** | Lib updates | Updating to the latest libraries | ✅ |
|
|
||||||
| | Error handling | Improving error handling | ✅ |
|
|
||||||
| | Configurable RPS | Ability to set RPS in the config to match your provider's and plan RPS (preferably [Chainstack](https://console.chainstack.com/) 🤩) | WIP |
|
|
||||||
| | Dynamic priority fees | Ability to set dynamic priority fees | ✅ |
|
|
||||||
| | Review & optimize `json`, `jsonParsed`, `base64` | Improve speed and traffic for calls, not just `getBlock`. [Helpful overview](https://docs.chainstack.com/docs/solana-optimize-your-getblock-performance#json-jsonparsed-base58-base64).| ✅ |
|
|
||||||
| **Stage 2: Bonding curve and migration management** | `logsSubscribe` integration | Integrate `logsSubscribe` instead of `blockSubscribe` for sniping minted tokens into the main bot | ✅ |
|
|
||||||
| | Dual subscription methods | Keep both `logsSubscribe` & `blockSubscribe` in the main bot for flexibility and adapting to Solana node architecture changes | ✅ |
|
|
||||||
| | Transaction retries | Do retries instead of cooldown and/or keep the cooldown | WIP |
|
|
||||||
| | Bonding curve status tracking | Checking a bonding curve status progress. Predict how soon a token will start the migration process | ✅ |
|
|
||||||
| | Account closure script | Script to close the associated bonding curve account if the rest of the flow txs fails | ✅ |
|
|
||||||
| | PumpSwap migration listening | pump_fun migrated to their own DEX — [PumpSwap](https://x.com/pumpdotfun/status/1902762309950292010), so we need to FAFO with that instead of Raydium (and attempt `logSubscribe` implementation) | ✅ |
|
|
||||||
| **Stage 3: Trading experience** | Take profit/stop loss | Implement take profit, stop loss exit strategies | FAFO |
|
|
||||||
| | Market cap-based selling | Sell when a specific market cap has been reached | Not started |
|
|
||||||
| | Copy trading | Enable copy trading functionality | Not started |
|
|
||||||
| | Token analysis script | Script for basic token analysis (market cap, creator investment, liquidity, token age) | Not started |
|
|
||||||
| | Archive node integration | Use Solana archive nodes for historical analysis (accounts that consistently print tokens, average mint to raydium time) | Not started |
|
|
||||||
| | Geyser implementation | Leverage Solana Geyser for real-time data stream processing | ✅ |
|
|
||||||
| **Stage 4: Minting experience** | Token minting | Ability to mint tokens (based on user request - someone minted 18k tokens) | FAFO |
|
|
||||||
|
|
||||||
|
|
||||||
## Development Timeline
|
|
||||||
- Development begins: Week of March 10, 2025
|
|
||||||
- Implementation approach: Gradual rollout in separate branch
|
|
||||||
- Priority: Stages progress from simple to complex features
|
|
||||||
- Completion guarantee: Full completion of Stage 1, other stages dependent on feedback and feasibility
|
|
||||||
|
|
||||||
For the full walkthrough, see [Solana: Creating a trading and sniping pump.fun bot](https://docs.chainstack.com/docs/solana-creating-a-pumpfun-bot).
|
For the full walkthrough, see [Solana: Creating a trading and sniping pump.fun bot](https://docs.chainstack.com/docs/solana-creating-a-pumpfun-bot).
|
||||||
|
|
||||||
For near-instantaneous transaction propagation, you can use the [Chainstack Solana Trader nodes](https://docs.chainstack.com/docs/trader-nodes).
|
For near-instantaneous transaction propagation, you can use the [Chainstack Solana Trader nodes](https://docs.chainstack.com/docs/trader-nodes).
|
||||||
|
|
||||||
[Sign up with Chainstack](https://console.chainstack.com).
|
[Sign up with Chainstack](https://console.chainstack.com).
|
||||||
|
|
||||||
|
Leave your feedback by opening **Issues**.
|
||||||
|
|
||||||
|
|
||||||
## 🚀 Getting started
|
## 🚀 Getting started
|
||||||
|
|
||||||
@@ -116,17 +78,20 @@ copy .env.example .env
|
|||||||
```
|
```
|
||||||
Edit the `.env` file and add your **Solana RPC endpoints** and **private key**.
|
Edit the `.env` file and add your **Solana RPC endpoints** and **private key**.
|
||||||
|
|
||||||
|
Edit `.yaml` templates in `bots` folder. Each file is a separate instance of a trading bot. Examine its parameters and apply your preferred strategy.
|
||||||
|
|
||||||
|
|
||||||
### Running the bot
|
### Running the bot
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Option 1: run as installed package
|
# Option 1: run as installed package
|
||||||
pump_bot --help
|
pump_bot
|
||||||
|
|
||||||
# Option 2: run directly
|
# Option 2: run directly
|
||||||
python -m src.cli --help
|
python -m src.bot_runner
|
||||||
```
|
```
|
||||||
|
|
||||||
> **You're all set! 🎉** Now you can start using the bot. Check `--help` for available commands. 🚀
|
> **You're all set! 🎉** Now you can start using the bot.
|
||||||
|
|
||||||
## Note on limits
|
## Note on limits
|
||||||
|
|
||||||
@@ -204,3 +169,38 @@ To run:
|
|||||||
So now you can run `listen_create_from_blocksubscribe.py` and `listen_new_direct_full_details.py` at the same time and see which one is faster.
|
So now you can run `listen_create_from_blocksubscribe.py` and `listen_new_direct_full_details.py` at the same time and see which one is faster.
|
||||||
|
|
||||||
Also here's a doc on this: [Solana: Listening to pump.fun token mint using only logsSubscribe](https://docs.chainstack.com/docs/solana-listening-to-pumpfun-token-mint-using-only-logssubscribe)
|
Also here's a doc on this: [Solana: Listening to pump.fun token mint using only logsSubscribe](https://docs.chainstack.com/docs/solana-listening-to-pumpfun-token-mint-using-only-logssubscribe)
|
||||||
|
|
||||||
|
# Pump.fun bot development roadmap
|
||||||
|
|
||||||
|
~~As of March 21, 2025, the bot from the **refactored/main-v2** branch is signficantly better over the **main** version, so the suggestion is to FAFO with v2.~~
|
||||||
|
|
||||||
|
As of April 30, 2025, all changes from **refactored/main-v2** are merged into the **main** version.
|
||||||
|
|
||||||
|
| Stage | Feature | Comments | Implementation status
|
||||||
|
|-------|---------|----------|---------------------|
|
||||||
|
| **Stage 1: General updates & QoL** | Lib updates | Updating to the latest libraries | ✅ |
|
||||||
|
| | Error handling | Improving error handling | ✅ |
|
||||||
|
| | Configurable RPS | Ability to set RPS in the config to match your provider's and plan RPS (preferably [Chainstack](https://console.chainstack.com/) 🤩) | Not started |
|
||||||
|
| | Dynamic priority fees | Ability to set dynamic priority fees | ✅ |
|
||||||
|
| | Review & optimize `json`, `jsonParsed`, `base64` | Improve speed and traffic for calls, not just `getBlock`. [Helpful overview](https://docs.chainstack.com/docs/solana-optimize-your-getblock-performance#json-jsonparsed-base58-base64).| ✅ |
|
||||||
|
| **Stage 2: Bonding curve and migration management** | `logsSubscribe` integration | Integrate `logsSubscribe` instead of `blockSubscribe` for sniping minted tokens into the main bot | ✅ |
|
||||||
|
| | Dual subscription methods | Keep both `logsSubscribe` & `blockSubscribe` in the main bot for flexibility and adapting to Solana node architecture changes | ✅ |
|
||||||
|
| | Transaction retries | Do retries instead of cooldown and/or keep the cooldown | ✅ |
|
||||||
|
| | Bonding curve status tracking | Checking a bonding curve status progress. Predict how soon a token will start the migration process | ✅ |
|
||||||
|
| | Account closure script | Script to close the associated bonding curve account if the rest of the flow txs fails | ✅ |
|
||||||
|
| | PumpSwap migration listening | pump_fun migrated to their own DEX — [PumpSwap](https://x.com/pumpdotfun/status/1902762309950292010), so we need to FAFO with that instead of Raydium (and attempt `logSubscribe` implementation) | ✅ |
|
||||||
|
| **Stage 3: Trading experience** | Take profit/stop loss | Implement take profit, stop loss exit strategies | FAFO |
|
||||||
|
| | Market cap-based selling | Sell when a specific market cap has been reached | Not started |
|
||||||
|
| | Copy trading | Enable copy trading functionality | Not started |
|
||||||
|
| | Token analysis script | Script for basic token analysis (market cap, creator investment, liquidity, token age) | Not started |
|
||||||
|
| | Archive node integration | Use Solana archive nodes for historical analysis (accounts that consistently print tokens, average mint to raydium time) | Not started |
|
||||||
|
| | Geyser implementation | Leverage Solana Geyser for real-time data stream processing | ✅ |
|
||||||
|
| **Stage 4: Minting experience** | Token minting | Ability to mint tokens (based on user request - someone minted 18k tokens) | FAFO |
|
||||||
|
|
||||||
|
|
||||||
|
## Development timeline (closed)
|
||||||
|
- Development begins: Week of March 10, 2025
|
||||||
|
- Implementation approach: Gradual rollout in separate branch
|
||||||
|
- Priority: Stages progress from simple to complex features
|
||||||
|
- Completion guarantee: Full completion of Stage 1, other stages dependent on feedback and feasibility
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user