{"id":27404718,"url":"https://github.com/vvizardev/pumpfun-bundler","last_synced_at":"2026-01-21T07:25:13.764Z","repository":{"id":247992960,"uuid":"827413171","full_name":"vvizardev/pumpfun-bundler","owner":"vvizardev","description":"pumpfun-bundler: this bot proceed mint tx + create pool + add liquidity + token first buy in one bundled tx","archived":false,"fork":false,"pushed_at":"2024-11-06T18:35:39.000Z","size":107,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-20T13:37:13.401Z","etag":null,"topics":["bundle","first-buy","pumpfun","safety","token"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vvizardev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-11T15:54:42.000Z","updated_at":"2025-06-12T14:34:57.000Z","dependencies_parsed_at":"2024-09-29T07:05:50.116Z","dependency_job_id":"3280f6ea-d5e7-48e9-ab08-d79fbb81077d","html_url":"https://github.com/vvizardev/pumpfun-bundler","commit_stats":null,"previous_names":["anti-dominator/utxo-management","solkeen/utxo-management","wizasol/utxo-management","wizasol/pumpfun-bundler","vvizardev/pumpfun-bundler"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vvizardev/pumpfun-bundler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvizardev%2Fpumpfun-bundler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvizardev%2Fpumpfun-bundler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvizardev%2Fpumpfun-bundler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvizardev%2Fpumpfun-bundler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vvizardev","download_url":"https://codeload.github.com/vvizardev/pumpfun-bundler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvizardev%2Fpumpfun-bundler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28629915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bundle","first-buy","pumpfun","safety","token"],"created_at":"2025-04-14T05:42:48.777Z","updated_at":"2026-01-21T07:25:13.749Z","avatar_url":"https://github.com/vvizardev.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PumpFun Bundler\n\nBest tool for holdling your token on moment of token launching\n\n## Overview\n\nThis bundler is designed for user to be first buyer\nThis bot runs mint token tx + create pool tx + add liquidity tx + first buyer tx in one bundled tx\n\u003ch4\u003e 📞 Cᴏɴᴛᴀᴄᴛ ᴍᴇ Oɴ ʜᴇʀᴇ: 👆🏻 \u003c/h4\u003e\n\n\u003cdiv style={{display : flex ; justify-content : space-evenly}}\u003e \n    \u003ca href=\"mailto:nakao95911@gmail.com\" target=\"_blank\"\u003e\n        \u003cimg alt=\"Email\"\n        src=\"https://img.shields.io/badge/Email-00599c?style=for-the-badge\u0026logo=gmail\u0026logoColor=white\"/\u003e\n    \u003c/a\u003e\n     \u003ca href=\"https://x.com/_wizardev\" target=\"_blank\"\u003e\u003cimg alt=\"Twitter\"\n        src=\"https://img.shields.io/badge/Twitter-000000?style=for-the-badge\u0026logo=x\u0026logoColor=white\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://discordapp.com/users/471524111512764447\" target=\"_blank\"\u003e\u003cimg alt=\"Discord\"\n        src=\"https://img.shields.io/badge/Discord-7289DA?style=for-the-badge\u0026logo=discord\u0026logoColor=white\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://t.me/wizardev\" target=\"_blank\"\u003e\u003cimg alt=\"Telegram\"\n        src=\"https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge\u0026logo=telegram\u0026logoColor=white\"/\u003e\u003c/a\u003e\n\u003c/div\u003e\u003cbr/\u003e\n\u003ch2\u003e Why does we need Bundler\u003c/h2\u003e\n\nIn Pumpfun , there are many sniping bots which buy token as soon as token launched.\nThat makes user not able to hold majority of his token for maintaining specific token price safely.\nIn other words , that means that token is not launchers token and token launcher lost his token and other fees on launching token\nIn this case , we can use bundler\nAs for the bundler , It can helps spam launch in first buy on Pumpfun\n\n## What is first buyer\n\nFirst buyer is the term which means user who buy token as soon as token launched\nIn tokenomics , the moment of the lowest token price is as soon as token launched\nSo , if token launcher hold his token on that moment , he can own this token on moment of the lowest token price\n\n## What is important in bundler bot\n\nIn terms of aspect of bundling , there are many things which take effect in bundling\nBut the most important thing in bundling is wallet count which buys token with in the moment of token launching\n\n## Max Number for bundling for 16 wallets \n\nBot of this repo proceeds bundle buy with 2 wallets.\nOf cause , we can proceed bundle with custom wallet count within 16 wallets\nIt's paid project\nContact me if you need that bundling project\n\n\u003ca href=\"https://t.me/_wizardev\"\u003eWizardev ( telegram )\u003c/a\u003e\n\n## Difference between free and paid bot\n\n| Aspect | Free | Paid |\n| :---: | --- | --- |\n| Bundle Wallet Count | 2 | 16 (Max) |\n\n## Installation\n\n`\nnpm i pumpdotfun-sdk\n`\n\n## Usage Example\n\nFirst you need to create a `.env` file and set your RPC URL like in the `.env.example`\n\nThen you need to fund an account with atleast 0.004 SOL that is generated when running the command below\n\n`\nnpx ts-node example/basic/index.ts\n`\n\n```typescript\nimport dotenv from \"dotenv\";\nimport { Connection, Keypair, LAMPORTS_PER_SOL } from \"@solana/web3.js\";\nimport { DEFAULT_DECIMALS, PumpFunSDK } from \"pumpdotfun-sdk\";\nimport NodeWallet from \"@coral-xyz/anchor/dist/cjs/nodewallet\";\nimport { AnchorProvider } from \"@coral-xyz/anchor\";\nimport {\n  getOrCreateKeypair,\n  getSPLBalance,\n  printSOLBalance,\n  printSPLBalance,\n} from \"./util\";\n\nconst getProvider = () =\u003e {\n  \n};\n\nconst createAndBuyToken = async (sdk, testAccount, mint) =\u003e {\n \n};\n\nconst buyTokens = async (sdk, testAccount, mint) =\u003e {\n  \n};\n\nconst sellTokens = async (sdk, testAccount, mint) =\u003e {\n  \n};\n\nconst main = async () =\u003e {\n  try {\n    const provider = getProvider();\n    const sdk = new PumpFunSDK(provider);\n    const connection = provider.connection;\n\n    const testAccount = getOrCreateKeypair(KEYS_FOLDER, \"test-account\");\n    const mint = getOrCreateKeypair(KEYS_FOLDER, \"mint\");\n\n    await printSOLBalance(connection, testAccount.publicKey, \"Test Account keypair\");\n\n    const globalAccount = await sdk.getGlobalAccount();\n    console.log(globalAccount);\n\n    const currentSolBalance = await connection.getBalance(testAccount.publicKey);\n    if (currentSolBalance === 0) {\n      console.log(\"Please send some SOL to the test-account:\", testAccount.publicKey.toBase58());\n      return;\n    }\n\n    console.log(await sdk.getGlobalAccount());\n\n    let bondingCurveAccount = await sdk.getBondingCurveAccount(mint.publicKey);\n    if (!bondingCurveAccount) {\n      await createAndBuyToken(sdk, testAccount, mint);\n      bondingCurveAccount = await sdk.getBondingCurveAccount(mint.publicKey);\n    }\n\n    if (bondingCurveAccount) {\n      await buyTokens(sdk, testAccount, mint);\n      await sellTokens(sdk, testAccount, mint);\n    }\n  } catch (error) {\n    console.error(\"An error occurred:\", error);\n  }\n};\n\nmain();\n```\n\n\n### PumpDotFunSDK Class\n\nThe `PumpDotFunSDK` class provides methods to interact with the PumpFun protocol. Below are the method signatures and their descriptions.\n\n\n#### createAndBuy\n\n```typescript\nasync createAndBuy(\n  creator: Keypair,\n  mint: Keypair,\n  createTokenMetadata: CreateTokenMetadata,\n  buyAmountSol: bigint,\n  slippageBasisPoints: bigint = 500n,\n  priorityFees?: PriorityFee,\n  commitment: Commitment = DEFAULT_COMMITMENT,\n  finality: Finality = DEFAULT_FINALITY\n): Promise\u003cTransactionResult\u003e\n```\n\n- Creates a new token and buys it.\n- **Parameters**:\n  - `creator`: The keypair of the token creator.\n  - `mint`: The keypair of the mint account.\n  - `createTokenMetadata`: Metadata for the token.\n  - `buyAmountSol`: Amount of SOL to buy.\n  - `slippageBasisPoints`: Slippage in basis points (default: 500).\n  - `priorityFees`: Priority fees (optional).\n  - `commitment`: Commitment level (default: DEFAULT_COMMITMENT).\n  - `finality`: Finality level (default: DEFAULT_FINALITY).\n- **Returns**: A promise that resolves to a `TransactionResult`.\n\n#### buy\n\n```typescript\nasync buy(\n  buyer: Keypair,\n  mint: PublicKey,\n  buyAmountSol: bigint,\n  slippageBasisPoints: bigint = 500n,\n  priorityFees?: PriorityFee,\n  commitment: Commitment = DEFAULT_COMMITMENT,\n  finality: Finality = DEFAULT_FINALITY\n): Promise\u003cTransactionResult\u003e\n```\n\n- Buys a specified amount of tokens.\n- **Parameters**:\n  - `buyer`: The keypair of the buyer.\n  - `mint`: The public key of the mint account.\n  - `buyAmountSol`: Amount of SOL to buy.\n  - `slippageBasisPoints`: Slippage in basis points (default: 500).\n  - `priorityFees`: Priority fees (optional).\n  - `commitment`: Commitment level (default: DEFAULT_COMMITMENT).\n  - `finality`: Finality level (default: DEFAULT_FINALITY).\n- **Returns**: A promise that resolves to a `TransactionResult`.\n\n#### sell\n\n```typescript\nasync sell(\n  seller: Keypair,\n  mint: PublicKey,\n  sellTokenAmount: bigint,\n  slippageBasisPoints: bigint = 500n,\n  priorityFees?: PriorityFee,\n  commitment: Commitment = DEFAULT_COMMITMENT,\n  finality: Finality = DEFAULT_FINALITY\n): Promise\u003cTransactionResult\u003e\n```\n\n- Sells a specified amount of tokens.\n- **Parameters**:\n  - `seller`: The keypair of the seller.\n  - `mint`: The public key of the mint account.\n  - `sellTokenAmount`: Amount of tokens to sell.\n  - `slippageBasisPoints`: Slippage in basis points (default: 500).\n  - `priorityFees`: Priority fees (optional).\n  - `commitment`: Commitment level (default: DEFAULT_COMMITMENT).\n  - `finality`: Finality level (default: DEFAULT_FINALITY).\n- **Returns**: A promise that resolves to a `TransactionResult`.\n\n#### addEventListener\n\n```typescript\naddEventListener\u003cT extends PumpFunEventType\u003e(\n  eventType: T,\n  callback: (event: PumpFunEventHandlers[T], slot: number, signature: string) =\u003e void\n): number\n```\n\n- Adds an event listener for the specified event type.\n- **Parameters**:\n  - `eventType`: The type of event to listen for.\n  - `callback`: The callback function to execute when the event occurs.\n- **Returns**: An identifier for the event listener.\n\n#### removeEventListener\n\n```typescript\nremoveEventListener(eventId: number): void\n```\n\n- Removes the event listener with the specified identifier.\n- **Parameters**:\n  - `eventId`: The identifier of the event listener to remove.\n\n### Running the Examples\n\n#### Basic Example\n\nTo run the basic example for creating, buying, and selling tokens, use the following command:\n\n```bash\nnpx ts-node example/basic/index.ts\n```\n\n#### Event Subscription Example\n\nThis example demonstrates how to set up event subscriptions using the PumpFun SDK.\n\n#### Script: `example/events/events.ts`\n\n```typescript\nimport dotenv from \"dotenv\";\nimport { Connection, Keypair } from \"@solana/web3.js\";\nimport { PumpFunSDK } from \"pumpdotfun-sdk\";\nimport NodeWallet from \"@coral-xyz/anchor/dist/cjs/nodewallet\";\nimport { AnchorProvider } from \"@coral-xyz/anchor\";\n\ndotenv.config();\n\nconst getProvider = () =\u003e {\n  if (!process.env.HELIUS_RPC_URL) {\n    throw new Error(\"Please set HELIUS_RPC_URL in .env file\");\n  }\n\n  const connection = new Connection(process.env.HELIUS_RPC_URL || \"\");\n  const wallet = new NodeWallet(new Keypair());\n  return new AnchorProvider(connection, wallet, { commitment: \"finalized\" });\n};\n\nconst setupEventListeners = async (sdk) =\u003e {\n  const createEventId = sdk.addEventListener(\"createEvent\", (event, slot, signature) =\u003e {\n    console.log(\"createEvent\", event, slot, signature);\n  });\n  console.log(\"Subscribed to createEvent with ID:\", createEventId);\n\n  const tradeEventId = sdk.addEventListener(\"tradeEvent\", (event, slot, signature) =\u003e {\n    console.log(\"tradeEvent\", event, slot, signature);\n  });\n  console.log(\"Subscribed to tradeEvent with ID:\", tradeEventId);\n\n  const completeEventId = sdk.addEventListener(\"completeEvent\", (event, slot, signature) =\u003e {\n    console.log(\"completeEvent\", event, slot, signature);\n  });\n  console.log(\"Subscribed to completeEvent with ID:\", completeEventId);\n};\n\nconst main = async () =\u003e {\n  try {\n    const provider = getProvider();\n    const sdk = new PumpFunSDK(provider);\n\n    // Set up event listeners\n    await setupEventListeners(sdk);\n  } catch (error) {\n    console.error(\"An error occurred:\", error);\n  }\n};\n\nmain();\n```\n\n#### Running the Event Subscription Example\n\nTo run the event subscription example, use the following command:\n\n```bash\nnpx ts-node example/events/events.ts\n```\n\n## Contributing\n\nWe welcome contributions! Please submit a pull request or open an issue to discuss any changes.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\nBy following this README, you should be able to install the PumpDotFun SDK, run the provided examples, and understand how to set up event listeners and perform token operations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvizardev%2Fpumpfun-bundler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvvizardev%2Fpumpfun-bundler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvizardev%2Fpumpfun-bundler/lists"}