{
  "markdown": "<p align=\"center\">    \n  <h1 align=\"center\">Pump SDK</h1>  \n  <p align=\"center\">\n    TypeScript SDK for the Pump protocol on Solana — token creation, bonding curves, AMM pools, fee sharing, and volume rewards.\n  </p>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@nirholas/pump-sdk\"><img src=\"https://img.shields.io/npm/v/@nirholas/pump-sdk.svg?style=flat-square&color=blue\" alt=\"npm version\" /></a>\n  <a href=\"https://github.com/nirholas/pump-fun-sdk/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/@nirholas/pump-sdk.svg?style=flat-square\" alt=\"license\" /></a>\n  <a href=\"https://www.npmjs.com/package/@nirholas/pump-sdk\"><img src=\"https://img.shields.io/npm/dm/@nirholas/pump-sdk.svg?style=flat-square\" alt=\"downloads\" /></a>\n  <img src=\"https://img.shields.io/badge/TypeScript-5.0+-blue?style=flat-square&logo=typescript\" alt=\"TypeScript\" />\n  <img src=\"https://img.shields.io/badge/Solana-1.98+-purple?style=flat-square&logo=solana\" alt=\"Solana\" />\n</p>\n\n---\n\n## What is Pump SDK?\n\nPump SDK is the community TypeScript SDK for the [Pump.fun](https://pump.fun) protocol on Solana. It provides **offline-first instruction builders** for every on-chain operation — token creation, bonding curve trading, AMM pool management, tiered fee configuration, creator fee sharing, volume-based token incentives, and social referral fees.\n\nThe SDK never sends transactions itself. It returns `TransactionInstruction[]` that you compose into transactions with your preferred signing and sending strategy.\n\n---\n\n## 📋 Table of Contents\n\n- [Quick Start](#-quick-start)\n- [The `pump` CLI](#-the-pump-cli)\n- [50 Runnable Examples](#-50-runnable-examples)\n- [Usage Examples](#-usage-examples)\n  - [Create a Token](#create-a-token)\n  - [Create a Token With a `...pump` Vanity Mint](#create-a-token-with-a-pump-vanity-mint)\n  - [Buy Tokens on the Bonding Curve](#buy-tokens-on-the-bonding-curve)\n  - [Sell Tokens](#sell-tokens)\n  - [Check Graduation Progress](#check-graduation-progress)\n  - [Set Up Fee Sharing](#set-up-fee-sharing)\n- [API Reference](#-api-reference)\n- [On-Chain Programs](#-on-chain-programs)\n- [Configuration](#-configuration)\n- [Error Handling](#-error-handling)\n- [FAQ](#-faq)\n- [Architecture](#-architecture)\n- [Contributing](#-contributing)\n- [License](#-license)\n- [Acknowledgments](#-acknowledgments)\n\n---\n## 🚀 Live Demos & Resources\n\n- **[Token Launchpad](https://sdk.pumpk.it/live/launchpad)**: launch and trade real Pump tokens from your browser, built entirely on this SDK\n- **[SDK Docs & Live Dashboards](https://sdk.pumpk.it)** (trades, launches, vanity: [sdk.pumpk.it/live](https://sdk.pumpk.it/live/))\n- **[pump.fun UI Template](https://demo.pumpk.it)**\n- **[DeFi Agents API](https://agents.pumpk.it)**\n- **[PumpKit](https://github.com/nirholas/pumpkit)**\n- **[PumpKit Site](https://pumpk.it)**\n- **[Telegram PumpFun Github Claim Tracker Bot](https://t.me/pumpfunclaims)**\n- **[Telegram PumpFun Graduation/Migration Tracker Bot](https://t.me/trackpumpfun)**\n- **[Pumpfun Claim Tracker](https://t.me/pfclaimsbot)** (best bot — currently offline while building)\n\n## 📈 Proof & Virality\n\n**Proof the GitHub Claim Tracker bot is profitable to monitor**  \n[→ View tweet](https://x.com/nichxbt/status/2033377591592444056)\n\n**Went mega viral**  \n[→ View tweet](https://x.com/RoundtableSpace/status/2027417189918064915)\n\n> **just shipped a real-time PumpFun intelligence bot on Telegram**  \n> \n> 17 commands. zero cost. fully on-chain.  \n> \n> `/price` → instant token price & bonding curve  \n> `/monitor` → live token launch feed  \n> `/cto` → creator takeover alerts  \n> `/watch` → wallet fee claim tracking  \n> `/quote` → buy/sell estimates  \n> `/graduated` → AMM graduation status  \n> `/alerts` → customize your notifications  \n> \n> all powered by the open-source **pump-fun-sdk**\n\n[→ View original post](https://x.com/nichxbt/status/2027304823712817503)\n\n**The post that started it all**  \n[→ View tweet](https://x.com/nichxbt/status/2027087471683698811)\n\n# Looking for more? Check out PumpKit 💊💚\n\n> Open-source framework for building PumpFun Telegram bots on Solana. Claim monitors, channel feeds, group trackers, whale alerts — build your own or use ours.\n>\n>  [PumpKit Web App + Documentation](https://pumpk.it)\n\n---\n\n## 🚀 Quick Start\n\n### Installation\n\n```bash\n# npm\nnpm install @nirholas/pump-sdk\n\n# yarn\nyarn add @nirholas/pump-sdk\n\n# pnpm\npnpm add @nirholas/pump-sdk\n```\n\n### Peer Dependencies\n\nThe SDK requires these Solana packages (install them if not already present):\n\n```bash\nnpm install @solana/web3.js @solana/spl-token @coral-xyz/anchor bn.js\n```\n\n### Minimal Example\n\n```typescript\nimport { Connection, PublicKey } from \"@solana/web3.js\";\nimport { OnlinePumpSdk } from \"@nirholas/pump-sdk\";\n\n// 1. Create an online SDK instance\nconst connection = new Connection(\"https://api.mainnet-beta.solana.com\");\nconst sdk = new OnlinePumpSdk(connection);\n\n// 2. Fetch current token state\nconst mint = new PublicKey(\"YourTokenMintAddress...\");\nconst summary = await sdk.fetchBondingCurveSummary(mint);\n\nconsole.log(\"Market Cap:\", summary.marketCap.toString(), \"lamports\");\nconsole.log(\"Graduated:\", summary.isGraduated);\nconsole.log(\"Progress:\", summary.progressBps / 100, \"%\");\n```\n\n---\n\n## 💻 The `pump` CLI\n\nThe SDK ships with a binary. No wallet, no API key, and no configuration are needed for anything that reads the chain.\n\n```bash\nnpm install -g @nirholas/pump-sdk\n\npump curve <mint>                  # price, market cap, graduation meter, fee tier\npump quote buy <mint> --sol 1      # what 1 SOL really buys, after fees and impact\npump watch <mint>                  # live dashboard\npump doctor                        # check your RPC, wallet, and balance in one shot\n```\n\nOr without installing anything: `npx -p @nirholas/pump-sdk pump curve <mint>`.\n\n```\nFeMbDoX7R1Psc4GEcvJdsbNbZA3bfztcyDCatJVJpump live on the bonding curve\n────────────────────────────────────────────────────────────\n\n  Market cap   93.705347 SOL\n  Buy price    0.000000096 SOL per token\n  Sell price   0.000000091 SOL per token\n  Trading fee  1.25% 0.95% protocol + 0.3% creator\n\n  Graduation  ███████████████░░░░░░░░░ 61.39%\n\n  SOL to graduate   60.684661 SOL\n  SOL in curve      24.921536 SOL\n  Tokens left       306.21M of 793.1M\n```\n\n| Command | What it does |\n|---|---|\n| `pump curve` / `price` / `pool` / `global` | Read curve, price, AMM pool, and protocol state |\n| `pump quote buy\\|sell` | Price a trade offline: output, fees, effective price, impact |\n| `pump buy` / `sell` | Trade, auto-routing between the bonding curve and PumpAMM |\n| `pump create` | Launch a token, optionally with an atomic first buy |\n| `pump vanity` | Grind a `...pump` mint address |\n| `pump fees` / `incentives` | Check and claim creator fees and volume rewards |\n| `pump watch` | Live-refreshing dashboard, or a JSON price feed |\n| `pump events` | Decode the Pump events in any transaction |\n| `pump pda` | Derive any Pump program address |\n| `pump doctor` / `config` | Diagnose and configure |\n\n**Safe by construction.** Reads never load a keypair. Every trade is simulated before anything is sent, prints exactly what is about to happen, and waits for an explicit yes. `--simulate` sends nothing; `--yes` is the scripting escape hatch; a piped command with neither refuses rather than spending funds unattended.\n\n**Scriptable.** Every command takes `--json` and writes nothing else to stdout in that mode:\n\n```bash\npump curve <mint> --json | jq .marketCapSol\npump watch <mint> --json --interval 10 | jq -r '\"\\(.at)  \\(.marketCapSol) SOL\"'\npump events <sig> --json | jq '.events[] | select(.type==\"trade\")'\n```\n\nFull reference: **[docs/cli.md](docs/cli.md)**. Ten-minute walkthrough: **[tutorial 45](tutorials/45-cli-quickstart.md)**.\n\n---\n\n## 🧪 50 Runnable Examples\n\nThe repo ships fifty tested, runnable examples covering the entire SDK surface. Each one runs with a single command, exports its logic for offline testing, and has a matching step-by-step tutorial.\n\n```bash\ngit clone https://github.com/nirholas/pump-fun-sdk && cd pump-fun-sdk && npm install\nnpm run example        # list all 50\nnpm run example 11     # offline buy quotes\nnpm run test:examples  # run every example's test suite offline\n```\n\n| Range | Category |\n|-------|----------|\n| 01-10 | Token Lifecycle: create, buy, sell, mayhem mode, cashback |\n| 11-20 | Curve Math & Fees: offline quotes, tiers, price impact |\n| 21-30 | Accounts & Events: every PDA, every decoder |\n| 31-40 | Live Data: mainnet reads, batching, WebSocket feeds |\n| 41-50 | AMM & Advanced: pools, liquidity, fee sharing, incentives, vanity mints |\n\nFull catalog: [docs/examples.md](docs/examples.md) · Browse: [examples/](examples/) · Tutorials: [tutorials/examples/](tutorials/examples/)\n\n---\n\n## 📖 Usage Examples\n\n### Create a Token\n\n```typescript\nimport { Keypair } from \"@solana/web3.js\";\nimport { PUMP_SDK } from \"@nirholas/pump-sdk\";\n\nconst mintKeypair = Keypair.generate();\nconst creator = wallet.publicKey;\n\nconst createIx = await PUMP_SDK.createV2Instruction({\n  mint: mintKeypair.publicKey,\n  name: \"My Token\",\n  symbol: \"MYTKN\",\n  uri: \"https://arweave.net/metadata.json\",\n  creator,\n  user: creator,\n  mayhemMode: false,\n});\n\n// createIx is a TransactionInstruction — add to a Transaction and send\n```\n\n> **Warning**: Do NOT use `createInstruction` — it is deprecated (v1). Always use `createV2Instruction`.\n\n### Create a Token With a `...pump` Vanity Mint\n\nMint addresses ending in `pump` (like the ones on pump.fun) are produced by\ngrinding keypairs off-chain. The SDK exposes this as a first-class helper —\nswap `Keypair.generate()` for `generateVanityMint()` and the rest of the\nflow is unchanged.\n\n```typescript\nimport { generateVanityMint, PUMP_SDK } from \"@nirholas/pump-sdk\";\n\n// Grind until we find a mint whose address ends in \"pump\" (~11M attempts, ~1–4 min in Node)\nconst { keypair: mintKeypair } = await generateVanityMint({ suffix: \"pump\" });\n\nconst createIx = await PUMP_SDK.createV2Instruction({\n  mint: mintKeypair.publicKey,  // ← ends in \"pump\"\n  name: \"My Token\",\n  symbol: \"MYTKN\",\n  uri: \"https://arweave.net/metadata.json\",\n  creator: wallet.publicKey,\n  user: wallet.publicKey,\n  mayhemMode: false,\n});\n\n// Sign the transaction with BOTH the payer and the mint keypair.\n// tx.sign([wallet, mintKeypair]);\n```\n\nSupports `prefix`, `suffix`, `caseInsensitive`, `maxAttempts`, `onProgress`,\nand `AbortSignal`. For patterns longer than 4 characters, use the\nmulti-threaded Rust generator at [`rust/`](rust/). See\n[Tutorial 13: Vanity Mints](tutorials/13-vanity-addresses.md) for the full\nend-to-end flow and a runnable devnet example.\n\n### Buy Tokens on the Bonding Curve\n\n```typescript\nimport { Connection, PublicKey } from \"@solana/web3.js\";\nimport BN from \"bn.js\";\nimport { getBuyTokenAmountFromSolAmount, OnlinePumpSdk } from \"@nirholas/pump-sdk\";\n\nconst connection = new Connection(\"https://api.mainnet-beta.solana.com\");\nconst sdk = new OnlinePumpSdk(connection);\n\nconst mint = new PublicKey(\"TokenMintAddress...\");\nconst user = wallet.publicKey;\n\n// Fetch all required state in parallel — buyState includes tokenProgram (auto-detected)\nconst [buyState, global, feeConfig] = await Promise.all([\n  sdk.fetchBuyState(mint, user),\n  sdk.fetchGlobal(),\n  sdk.fetchFeeConfig(),\n]);\n\nassert(!buyState.bondingCurve.complete, \"Token has already graduated to AMM\");\n\n// Calculate expected tokens for 0.1 SOL\nconst solAmount = new BN(100_000_000); // 0.1 SOL in lamports\nconst expectedTokens = getBuyTokenAmountFromSolAmount({\n  global,\n  feeConfig,\n  mintSupply: buyState.bondingCurve.tokenTotalSupply,\n  bondingCurve: buyState.bondingCurve,\n  amount: solAmount,\n});\n\n// buyState spreads: bondingCurveAccountInfo, bondingCurve, associatedUserAccountInfo, tokenProgram\nconst buyIxs = await sdk.buyInstructions({\n  ...buyState,\n  mint,\n  user,\n  amount: expectedTokens,\n  solAmount,\n  slippage: 0.05,         // 5% slippage tolerance\n});\n// buyIxs is TransactionInstruction[] — compose into a VersionedTransaction and send\n```\n\n> **Note**: `fetchBuyState` auto-detects whether the token uses SPL Token or Token-2022 and returns `tokenProgram` accordingly. Always spread `...buyState` into `buyInstructions` to ensure the correct program is used.\n\n### Sell Tokens\n\n```typescript\nimport BN from \"bn.js\";\nimport { getSellSolAmountFromTokenAmount, OnlinePumpSdk } from \"@nirholas/pump-sdk\";\n\nconst sdk = new OnlinePumpSdk(connection);\n\n// Fetch required state in parallel\n// Pass buyState.tokenProgram if you have it to avoid a second mint account fetch\nconst [sellState, global, feeConfig] = await Promise.all([\n  sdk.fetchSellState(mint, user),\n  sdk.fetchGlobal(),\n  sdk.fetchFeeConfig(),\n]);\n\nconst tokenAmount = new BN(1_000_000_000); // amount in raw units (6 decimals)\nconst expectedSol = getSellSolAmountFromTokenAmount({\n  global,\n  feeConfig,\n  mintSupply: sellState.bondingCurve.tokenTotalSupply,\n  bondingCurve: sellState.bondingCurve,\n  amount: tokenAmount,\n});\n\n// sellState spreads: bondingCurveAccountInfo, bondingCurve, tokenProgram\nconst sellIxs = await sdk.sellInstructions({\n  ...sellState,\n  mint,\n  user,\n  amount: tokenAmount,\n  solAmount: expectedSol,\n  slippage: 0.05,\n});\n```\n\n> **Note**: `fetchSellState` returns `tokenProgram` (auto-detected from the mint). Always spread `...sellState` into `sellInstructions`.\n\n### Check Graduation Progress\n\n```typescript\nimport { OnlinePumpSdk } from \"@nirholas/pump-sdk\";\n\nconst sdk = new OnlinePumpSdk(connection);\nconst progress = await sdk.fetchGraduationProgress(mint);\n\nconsole.log(`Progress: ${progress.progressBps / 100}%`);\nconsole.log(`Graduated: ${progress.isGraduated}`);\nconsole.log(`Tokens remaining: ${progress.tokensRemaining.toString()}`);\nconsole.log(`SOL accumulated: ${progress.solAccumulated.toString()}`);\n```\n\n### Set Up Fee Sharing\n\n```typescript\nimport { PublicKey } from \"@solana/web3.js\";\nimport { PUMP_SDK } from \"@nirholas/pump-sdk\";\n\n// Create a fee sharing config (creator only, before or after graduation)\nconst createConfigIx = await PUMP_SDK.createFeeSharingConfig({\n  creator: wallet.publicKey,\n  mint: tokenMint,\n  pool: null,  // null for pre-graduation tokens\n});\n\n// Update shareholders (must total exactly 10,000 BPS = 100%)\nconst updateIx = await PUMP_SDK.updateFeeShares({\n  authority: wallet.publicKey,\n  mint: tokenMint,\n  currentShareholders: [wallet.publicKey],\n  newShareholders: [\n    { address: wallet.publicKey, shareBps: 7000 },         // 70%\n    { address: new PublicKey(\"Partner...\"), shareBps: 3000 }, // 30%\n  ],\n});\n```\n\n> **Warning**: Shares must total **exactly** 10,000 BPS. The SDK throws `InvalidShareTotalError` otherwise. Maximum 10 shareholders.\n\n---\n\n## 📚 API Reference\n\nSee [docs/api-reference.md](./docs/api-reference.md) for the complete API documentation with full TypeScript signatures, parameters, and examples.\n\n### Core Classes\n\n| Class | Description |\n|-------|-------------|\n| `PumpSdk` | Offline instruction builder — no RPC connection required |\n| `OnlinePumpSdk` | Extends `PumpSdk` with RPC fetchers for account state |\n| `PUMP_SDK` | Pre-instantiated singleton of `PumpSdk` |\n\n### Bonding Curve Functions\n\n| Function | Returns | Description |\n|----------|---------|-------------|\n| `getBuyTokenAmountFromSolAmount(...)` | `BN` | Tokens received for a given SOL amount |\n| `getBuySolAmountFromTokenAmount(...)` | `BN` | SOL cost for a given token amount |\n| `getSellSolAmountFromTokenAmount(...)` | `BN` | SOL received for selling tokens |\n| `bondingCurveMarketCap(...)` | `BN` | Current market cap in lamports |\n| `newBondingCurve(global)` | `BondingCurve` | Fresh bonding curve from global config |\n\n### Analytics Functions\n\n| Function | Returns | Description |\n|----------|---------|-------------|\n| `calculateBuyPriceImpact(...)` | `PriceImpactResult` | Price impact for a buy trade |\n| `calculateSellPriceImpact(...)` | `PriceImpactResult` | Price impact for a sell trade |\n| `getGraduationProgress(...)` | `GraduationProgress` | Bonding curve completion percentage |\n| `getTokenPrice(...)` | `TokenPriceInfo` | Current buy/sell price per token |\n| `getBondingCurveSummary(...)` | `BondingCurveSummary` | Complete bonding curve overview |\n\n### Fee Functions\n\n| Function | Returns | Description |\n|----------|---------|-------------|\n| `getFee(...)` | `BN` | Fee amount for a trade |\n| `computeFeesBps(...)` | `CalculatedFeesBps` | Current fee basis points (protocol + creator) |\n| `calculateFeeTier(...)` | `Fees` | Fee tier for a given market cap |\n\n### Token Incentive Functions\n\n| Function | Returns | Description |\n|----------|---------|-------------|\n| `totalUnclaimedTokens(...)` | `BN` | Unclaimed $PUMP reward tokens |\n| `currentDayTokens(...)` | `BN` | Tokens earned today |\n\n---\n\n## 🔗 On-Chain Programs\n\n| Program | ID | Purpose |\n|---------|----|---------|\n| **Pump** | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | Bonding curve creation, buying, selling, migration |\n| **PumpAMM** | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | Graduated AMM pools — trading, liquidity, fees |\n| **PumpFees** | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | Fee sharing config and social fee PDAs |\n\n---\n\n## 🔧 Configuration\n\n### Constructor\n\nThe SDK has no required environment variables. You configure it via the constructor:\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `connection` | `Connection` | Only for `OnlinePumpSdk` | Solana RPC connection |\n\n### Key Constants\n\n| Constant | Value | Description |\n|----------|-------|-------------|\n| `PUMP_PROGRAM_ID` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | Main Pump program |\n| `PUMP_AMM_PROGRAM_ID` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | AMM program |\n| `PUMP_FEE_PROGRAM_ID` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | Fee program |\n| `PUMP_TOKEN_MINT` | `pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn` | $PUMP token mint |\n| `MAX_SHAREHOLDERS` | `10` | Maximum shareholders in fee sharing |\n| `ONE_BILLION_SUPPLY` | `1000000000000000` | 1B tokens with 6 decimals |\n| `BONDING_CURVE_NEW_SIZE` | `151` | Bonding curve account size in bytes |\n\n---\n\n## ⚠️ Error Handling\n\nThe SDK defines typed errors for fee sharing validation:\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `NoShareholdersError` | Empty shareholders array | Provide at least 1 shareholder |\n| `TooManyShareholdersError` | More than 10 shareholders | Reduce to ≤ 10 shareholders |\n| `ZeroShareError` | A shareholder has 0 or negative BPS | Set all shares to positive values |\n| `InvalidShareTotalError` | Shares don't sum to 10,000 BPS | Ensure shares total exactly 10,000 |\n| `DuplicateShareholderError` | Same address appears twice | Remove duplicate addresses |\n| `ShareCalculationOverflowError` | BPS sum exceeds safe integer range | Check share values |\n| `PoolRequiredForGraduatedError` | `pool` is null for a graduated coin | Pass the pool address from `fetchPool()` |\n\n### Common Pitfalls\n\n> **Warning**: Never use JavaScript `number` for token or lamport amounts. Always use `BN` from bn.js. JavaScript numbers lose precision above 2^53.\n\n> **Warning**: Check `bondingCurve.complete` before trading. If `true`, the token has graduated to AMM — use `ammBuyInstruction`/`ammSellInstruction` instead.\n\n> **Warning**: `createInstruction` is deprecated. Use `createV2Instruction` for all new token creation.\n\n---\n\n## ❓ FAQ\n\n**Q: Do I need an RPC connection to use the SDK?**\nNo. `PumpSdk` (and the `PUMP_SDK` singleton) builds instructions offline. Only use `OnlinePumpSdk` when you need to fetch on-chain state.\n\n**Q: How do I know if a token has graduated to AMM?**\nCheck `bondingCurve.complete === true` or use `sdk.isGraduated(mint)`. Graduated tokens trade on PumpAMM, not the bonding curve.\n\n**Q: What is `slippage` in buy/sell instructions?**\nA decimal fraction (e.g., `0.05` = 5%). The SDK adjusts `maxSolCost` (buy) or `minSolOutput` (sell) to protect against price movement.\n\n**Q: Why do amounts use `BN` instead of `number`?**\nSolana token amounts (lamports, token units) regularly exceed JavaScript's safe integer limit (2^53). `BN` provides arbitrary-precision arithmetic.\n\n**Q: What's the difference between Pump and PumpAMM programs?**\nPump handles the bonding curve phase (creation → graduation). PumpAMM handles post-graduation trading with constant-product AMM pools.\n\n**Q: How does fee sharing work?**\nToken creators can split their creator fees among up to 10 shareholders. Each shareholder gets a share in basis points (1/10,000). The total must equal exactly 10,000 BPS (100%).\n\n**Q: What is Mayhem Mode?**\nA special token creation mode with randomized bonding curve parameters. Tokens created with `mayhemMode: true` have unpredictable pricing dynamics.\n\n**Q: Can I use the SDK in the browser?**\nYes. The SDK has no Node.js-specific dependencies. The ESM build works in modern browsers with a bundler.\n\n---\n\n## 🏗️ Architecture\n\nSee [docs/architecture.md](./docs/architecture.md) for detailed system design, data flow diagrams, and module explanations.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions! See [CONTRIBUTING.md](./CONTRIBUTING.md) for:\n\n- Development setup\n- Branch naming and commit conventions\n- Testing requirements\n- PR process\n\n---\n\n## 📄 License\n\n[Apache-2.0](./LICENSE) © [nirholas](https://github.com/nirholas)\n\n---\n\n## 🙏 Acknowledgments\n\n- **[Pump.fun](https://pump.fun)** — The protocol this SDK interfaces with\n- **[Solana Labs](https://solana.com)** — Blockchain infrastructure and `@solana/web3.js`\n- **[Coral (Anchor)](https://www.anchor-lang.com/)** — IDL-based program interaction via `@coral-xyz/anchor`\n- **[bn.js](https://github.com/indutny/bn.js)** — Arbitrary-precision arithmetic for financial math\n- **[@pump-fun/pump-swap-sdk](https://www.npmjs.com/package/@pump-fun/pump-swap-sdk)** — AMM swap integration\n\n## Documentation\n\nFull documentation site: **https://nirholas.github.io/pump-fun-sdk/**\n\n- [Getting started](docs/getting-started.md) covers install and first run.\n- [Examples](docs/examples.md) has copy-paste snippets.\n",
  "bytes": 22035,
  "sha": "8f81b9410bf5b004039d041b3e09bafafe0803025ab2e742b9766ad7cd02ffe5",
  "repo_slug": "nirholas/pump-fun-sdk",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_nirholas_pump_fun_sdk_4f3cc5ec/readme"
}