中文 | English | Telegram | Discord
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.
PumpFun Rust SDK is a Solana trading and event subscription toolkit for applications that need Pump.fun token creation, buy/sell transactions, log streaming, and low-latency transaction submission.
| Area | Coverage |
|---|---|
| Pump.fun operations | Token create, buy, sell, sell by percent |
| Event streams | PumpFun program log subscription and Yellowstone gRPC subscriptions |
| Transaction submission | Standard RPC, Jito bundle, Nextblock, and 0slot submission paths |
| Use cases | Pump.fun trading bots, launch monitoring, memecoin tooling, low-latency Solana transaction workflows |
create, buy, sell for pump.fun.logs_subscribe to subscribe the logs of the PumpFun program.yellowstone grpc to subscribe the logs of the PumpFun program.jito to send transaction with Jito.nextblock to send transaction with nextblock.0slot to send transaction with 0slot.cd `your project root directory`
git clone https://github.com/0xfnzero/pumpfun-sdk
# add to your Cargo.toml
pumpfun-sdk = { path = "./pumpfun-sdk", version = "2.4.3" }
use pumpfun_sdk::{common::logs_events::PumpfunEvent, grpc::YellowstoneGrpc};
// 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");
client.subscribe_pumpfun(callback, Some(payer_keypair.pubkey())).await?;
use std::sync::Arc;
use pumpfun_sdk::{common::{Cluster, PriorityFee}, PumpFun};
use solana_sdk::{commitment_config::CommitmentConfig, signature::Keypair, signer::Signer};
let priority_fee = PriorityFee{
unit_limit: 190000,
unit_price: 1000000,
buy_tip_fee: 0.001,
sell_tip_fee: 0.0001,
};
let cluster = Cluster {
rpc_url: "https://api.mainnet-beta.solana.com".to_string(),
block_engine_url: "https://block-engine.example.com".to_string(),
nextblock_url: "https://nextblock.example.com".to_string(),
nextblock_auth_token: "nextblock_api_token".to_string(),
zeroslot_url: "https://zeroslot.example.com".to_string(),
zeroslot_auth_token: "zeroslot_api_token".to_string(),
use_jito: true,
use_nextblock: false,
use_zeroslot: false,
priority_fee,
commitment: CommitmentConfig::processed(),
};
// create pumpfun instance
let payer = Keypair::from_base58_string("your private key");
let pumpfun = PumpFun::new(
Arc::new(payer),
&cluster,
).await;
use pumpfun_sdk::PumpFun;
use solana_sdk::{native_token::sol_to_lamports, signature::Keypair, signer::Signer};
// 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?;
use pumpfun_sdk::PumpFun;
use solana_sdk::{native_token::sol_to_lamports, signature::Keypair, signer::Signer};
// create pumpfun instance
let pumpfun = PumpFun::new(Arc::new(payer), &cluster).await;
// sell token with tip
pumpfun.sell_with_tip(mint_pubkey, 100000, None).await?;
// sell token by percent with tip
pumpfun.sell_by_percent_with_tip(mint_pubkey, 100, None).await?;
https://t.me/fnzero_group
$ claude mcp add pumpfun-sdk \
-- python -m otcore.mcp_server <graph>