pump-solana-dev
Solana development patterns used in the Pump SDK — Anchor IDL-based program interaction, SPL Token and Token-2022 management, transaction construction with instruction composition, RPC batching, and cross-program coordination.
- License 许可
- MIT
- 最近更新
- 2026-08-01
- Stars
- ★ 2
- Forks
- 3
01 前言 Front Matter
- name
- pump-solana-dev
- metadata
- { "solanaos": { "homepage": "https://github.com/nirholas/pump-fun-sdk", "requires": { "env": [ "SOLANA_RPC_URL" ] } } }
- description
- Solana development patterns used in the Pump SDK — Anchor IDL-based program interaction, SPL Token and Token-2022 management, transaction construction with instruction composition, RPC batching, and cross-program coordination.
03 SKILL.md 正文
Solana Development — Web3.js, Anchor, SPL Tokens & On-Chain Patterns
Apply Solana development patterns used throughout the Pump SDK: Anchor IDL-based program interaction, SPL Token and Token-2022 account management, transaction construction with instruction composition, RPC batching, and cross-program account coordination.
Anchor Program Initialization
import { Program, AnchorProvider } from '@coral-xyz/anchor';
function getPumpProgram(connection: Connection): Program<Pump> {
const provider = new AnchorProvider(
connection,
{ publicKey: PublicKey.default, signTransaction: async (tx) => tx, signAllTransactions: async (txs) => txs },
{ commitment: 'confirmed' }
);
return new Program(pumpIdl as Pump, PUMP_PROGRAM_ID, provider);
}
Offline pattern: Uses a dummy provider (no wallet) for building instructions. Actual signing happens in the caller's code.
Instruction Building with accountsStrict
const ix = await program.methods
.buy(amount, maxSolCost, flags)
.accountsStrict({
global: GLOBAL_PDA,
bondingCurve: bondingCurvePda(mint),
user: userPublicKey,
// ... all required accounts
})
.remainingAccounts(additionalAccounts)
.instruction();
PDA Derivation
const [pda, bump] = PublicKey.findProgramAddressSync(
[Buffer.from("bonding-curve"), mint.toBuffer()],
PUMP_PROGRAM_ID
);
RPC Batching
const accounts = await connection.getMultipleAccountsInfo([
bondingCurvePda(mint),
GLOBAL_PDA,
FEE_CONFIG_PDA,
]);
Token-2022 Support
The SDK supports both SPL Token and Token-2022:
createV2Instructioncreates Token-2022 mintstokenProgramparameter selects the appropriate program- Associated Token Accounts (ATAs) are created idempotently
Account Decoding
const bondingCurve = program.coder.accounts.decode('bondingCurve', accountInfo.data);
Nullable variants handle missing accounts:
const bc = decodeBondingCurveNullable(accountInfo); // returns null instead of throwing
Transaction Simulation
const result = await connection.simulateTransaction(tx, [signer]);
// Parse return data from simulation logs
BN.js Arithmetic
All amounts use BN for arbitrary-precision integer arithmetic:
const fee = amount.mul(new BN(feeBps)).div(new BN(10000));
const ceilFee = amount.mul(new BN(feeBps)).add(new BN(9999)).div(new BN(10000));
Patterns to Follow
- Always use
accountsStrict— notaccounts— for type-safe account specification - Use
getMultipleAccountsInfoto batch account fetches - Build instruction arrays, not transactions — let callers compose
- Handle both Token and Token-2022 programs via parameter
- Use nullable decoders for optional accounts
Common Pitfalls
AnchorProviderwith dummy wallet is for instruction building only — never sign with itgetMultipleAccountsInforeturns nulls for missing accounts — always check- Transaction size limit is 1232 bytes — large instruction sets may need multiple transactions
remainingAccountsorder matters — the on-chain program reads them positionally
04 同仓库更多 Skills
solana-dev
End-to-end Solana development playbook (Jan 2026). Prefer Solana Foundation framework-kit (@solana/client + @solana/react-hooks) for React/Next.js UI. Prefer @solana/kit for all new client/RPC/transaction code. When legacy dependencies require web3.js, isolate it behind @solana/web3-compat (or @solana/web3.js as a true legacy fallback). Covers wallet-standard-first connection (incl. ConnectorKit), Anchor/Pinocchio programs, Codama-based client generation, LiteSVM/Mollusk/Surfpool testing, and security checklists.
xurl
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.
wurk-integration
WURK API integration for monetizing agents with x402 payments on Solana/Base - create social jobs, custom challenges, and agent help tasks
workflows
Manage application workflows including configuration, restart, and removal.
web-search
Search the web, fetch content, extract branding profiles, and capture screenshots from URLs. Use for real-time information, API documentation, current events, design matching, and visual reference.
weather
Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or detailed meteorological analysis. No API key needed.