2025-04-02 14:08:48 +08:00
2025-04-02 13:39:59 +08:00
2025-04-02 14:08:48 +08:00
2025-01-09 00:12:43 +08:00
2025-04-02 13:39:59 +08:00
2025-01-09 00:12:43 +08:00
2025-04-02 14:03:56 +08:00

PumpFun Rust SDK

A comprehensive Rust SDK for seamless interaction with the PumpFun Solana program. This SDK provides a robust set of tools and interfaces to integrate PumpFun functionality into your applications.

Explanation

  1. Add create, buy, sell for pump.fun.
  2. Add logs_subscribe to subscribe the logs of the PumpFun program.
  3. Add yellowstone grpc to subscribe the logs of the PumpFun program.
  4. Add jito to send transaction with Jito.
  5. Add nextblock to send transaction with nextblock.
  6. Add 0slot to send transaction with 0slot.
  7. Submit a transaction using Jito, Nextblock, and 0slot simultaneously; the fastest one will succeed, while the others will fail.

Usage

logs subscription for token create and trade transaction


// create grpc client
let grpc_url = "http://127.0.0.1:10000";
let client = YellowstoneGrpc::new(grpc_url);

// Define callback function
let callback = |event: PumpfunEvent| {
    match event {
        PumpfunEvent::NewToken(token_info) => {
            println!("Received new token event: {:?}", token_info);
        },
        PumpfunEvent::NewDevTrade(trade_info) => {
            println!("Received dev trade event: {:?}", trade_info);
        },
        PumpfunEvent::NewUserTrade(trade_info) => {
            println!("Received new trade event: {:?}", trade_info);
        },
        PumpfunEvent::NewBotTrade(trade_info) => {
            println!("Received new bot trade event: {:?}", trade_info);
        }
        PumpfunEvent::Error(err) => {
            println!("Received error: {}", err);
        }
    }
};

let payer_keypair = Keypair::from_base58_string("your private key");
let client = GrpcClient::get_instance();
client.subscribe_pumpfun(callback, Some(payer_keypair.pubkey())).await?;

pumpfun Create, Buy, Sell


let payer = Keypair::from_base58_string(&settings.dex.payer.clone());
let cluster = Cluster::new( 
    rpc_url.clone(),
    jito_url.clone(),
    nextblock_url.clone(),
    nextblock_auth_token.clone(),
    zeroslot_url.clone(),
    zeroslot_auth_token.clone(),
    priority_fee,
    CommitmentConfig::processed(),
    use_jito,
    use_nextblock,
    use_zeroslot,
);

// create pumpfun instance
let pumpfun = PumpFun::new(Arc::new(payer), &cluster).await;

// Mint keypair
let mint_pubkey: Keypair = Keypair::new();

// buy token with tip
pumpfun.buy_with_tip(mint_pubkey, 10000, None).await?;

// sell token by percent with tip
pumpfun.sell_by_percent_with_tip(mint_pubkey, 100, None).await?;

Languages
Rust 100%