Skip to content

A fully functional pump.fun trading and sniping bot not relying on any 3rd party APIs

Notifications You must be signed in to change notification settings

ThinkIbrokeIt/pump

 
 

Repository files navigation

>>WARNNING ON SCAMS IN ISSUES COMMENT SECTION<<

The issues comment section is often targeted by scam bots willing to redirect you to an external resource and drain your funds.

I have enabled a GitHub actions script to detect the common patterns and tag them, which obviously is not 100% accurate.

The official maintainers are in the MAINTAINERS.md file.

Not everyone is a scammer though, sometimes there are helpful outside devs who comment and I absolutely appreciate it.

>>END OF WARNING<<

For the full walkthrough, see Solana: Creating a trading and sniping pump.fun bot.

For near-instantaneous transaction propagation, you can use the Chainstack Solana Trader nodes.

Sign up with Chainstack.

Make sure you have the required packages installed pip install -r requirements.txt.

Make sure you have your endpoints set up in config.py.

Quick note on a couple on a few new scripts in /learning-examples:

(this is basically a changelog now)

Bonding curve state check

check_boding_curve_status.py — checks the state of the bonding curve associated with a token. When the bonding curve state is completed, the token is migrated to Raydium.

To run:

python check_boding_curve_status.py TOKEN_ADDRESS

Listening to the Raydium migration

When the bonding curve state completes, the liquidity and the token graduate to Raydium.

listen_to_raydium_migration.py — listens to the migration events of the tokens from pump_fun to Raydium and prints the signature of the migration, the token address, and the liquidity pool address on Raydium.

Note that it's using the blockSubscribe method that not all providers support, but Chainstack does and I (although obviously biased) found it pretty reliable.

To run:

python listen_to_raydium_migration.py

The following two new additions are based on this question associatedBondingCurve #26

You can take the compute the associatedBondingCurve address following the Solana docs PDA description logic. Take the following as input as seed (order seems to matter):

  • bondingCurve address
  • the Solana system token program address: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
  • the token mint address

And compute against the Solana system associated token account program address: ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL.

The implications of this are kinda huge:

  • you can now use logsSubscribe to snipe the tokens and you are not limited to the blockSubscribe method
  • see which one is faster
  • not every provider supports blockSubscribe on lower tier plans or at all, but everyone supports logsSubscribe

The following script showcase the implementation.

Compute associated bonding curve

compute_associated_bonding_curve.py — computes the associated bonding curve for a given token.

To run:

python compute_associated_bonding_curve.py and then enter the token mint address.

Listen to new direct full details

listen_new_direct_full_details.py — listens to the new direct full details events and prints the signature, the token address, the user, the bonding curve address, and the associated bonding curve address using just the logsSubscribe method. Basically everything you need for sniping using just logsSubscribe and no extra calls like doing getTransaction to get the missing data. It's just computed on the fly now.

To run:

python listen_new_direct_full_details.py

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.

About

A fully functional pump.fun trading and sniping bot not relying on any 3rd party APIs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%