npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@gofundmeme/sdk

v1.2.3

Published

GFM SDK

Readme

🚀 GoFundMeme SDK

Website
X (Twitter)
Telegram
NPM


If you’re developing a frontend application, consider using @gofundmeme/sdk-frontend instead.

Why Choose the Frontend SDK? The full SDK includes dependencies like Orca SDK, Raydium SDK, and Meteora SDK, which can cause compatibility issues in frontend environments. The frontend version is optimized for seamless client-side integration.

Use @gofundmeme/sdk-frontend if: • You don’t need Harvesting features. • You only require pool interactions, swaps, and claims. • You want a lightweight, frontend-optimized SDK.

Frontend SDK Documentation: See here: https://www.npmjs.com/package/@gofundmeme/sdk-frontend

🌟 Introduction

The GoFundMeme SDK is the official all-in-one developer toolkit for interacting with the GoFundMeme Protocol (GFM). It enables seamless integration with Fair Launches, Bonding Curves, Staking, Harvesting, and Rewards.

📚 Full Documentation: docs.gofundmeme.io


🛠 Installation

This package is optimized for backend development and includes full Harvesting capabilities.

Using npm:

npm install @gofundmeme/sdk @solana/web3.js moment decimal.js

Using yarn:

yarn add @gofundmeme/sdk @solana/web3.js moment decimal.js

🔥 Key Features

✔️ Fair Launch Pools – Decentralized, transparent fundraising for memecoins & beyond. ✔️ Bonding Curve Pools – Dynamic pricing and token issuance. ✔️ Swaps & Liquidity – Token trading and liquidity management. ✔️ Staking & Rewards – Earn a share of protocol fees through staking. ✔️ Harvesting – (Backend-only feature) Collect LP fees and distribute rewards.

🚀 Getting Started

Initialize the SDK

import { Connection } from "@solana/web3.js";
import { initGoFundMemeSDK } from "@gofundmeme/sdk";

// Replace with your RPC endpoint
const connection = new Connection("https://api.mainnet-beta.solana.com");

(async () => {
  const gfmSDK = await initGoFundMemeSDK({ connection });

  // Example: Fetch a Fair Launch Pool
  const pool = await gfmSDK.pools.fairLaunch.fetchFairLaunchPool({
    mintB: "MINT_ADDRESS_HERE"
  });

  console.log("Pool Data:", pool);
})();

🏗️ Example Use Cases

1️⃣ Fetching a Fair Launch Pool

const pool = await gfmSDK.pools.fairLaunch.fetchFairLaunchPool({ mintB: "MINT_ADDRESS_HERE" }); console.log("Fair Launch Pool:", pool);

2️⃣ Creating a Fair Launch Pool

const { transaction, requestId } = await gfmSDK.api.fairLaunch.createPool.request({
  token: {
    base64: "IMAGE_BASE64_STRING",
    name: "My Token",
    symbol: "MTKN",
    description: "An example token",
    website: "https://example.com",
    twitter: "https://twitter.com/example",
    discord: "https://discord.gg/example",
    telegram: "https://t.me/example"
  },
  tokenomics: {
    supply: 1000000000,
     lpPercent: 40, // % for LP
      fundersPercent: 40, // % for funders
      allocations: [
          { name: "Marketing", percent: 10, destination: "3KgPZdBvh..." },
          { name: "Team", percent: 10, destination: "6KgQZzCvh..." }
      ]
  },
  campaignDurationHours: 6,
  targetRaise: 50,
  amountIn: 5,
  network: "mainnet",
  creatorWalletAddress: "WALLET_PUBLIC_KEY"
});

// Sign and confirm the transaction
const signedTx = transaction.sign(creatorKeypair);
const { mintAddress, txid } = await gfmSDK.api.fairLaunch.createPool.process({
  requestId,
  signedTransaction: signedTx
});

console.log(`🎉 Pool Created! Mint Address: ${mintAddress}, TXID: ${txid}`);

3️⃣ Fetching a Bonding Curve Pool

const bondingCurvePool = await gfmSDK.pools.bondingCurve.fetchBondingCurvePool({
  mintB: "MINT_ADDRESS_HERE"
});
console.log("Bonding Curve Pool Data:", bondingCurvePool);

4️⃣ Buying Tokens on the Bonding Curve

import { Keypair, sendAndConfirmTransaction } from "@solana/web3.js";
import Decimal from "decimal.js";

const payer = Keypair.generate(); // Replace with your actual signer

const { quote: buyQuote, transaction: buyTransaction } =
  await bondingCurvePool.actions.swap.buy({
    amountInUI: new Decimal(1.2), // Buy with 1.2 SOL
    funder: payer.publicKey,
    slippage: 1, // 1% slippage tolerance
  });

// Sign and send the transaction
const buyTxid = await sendAndConfirmTransaction(connection, buyTransaction, [payer]);

console.log(`🎉 Successfully bought tokens! TXID: ${buyTxid}`);

5️⃣ Harvesting LP Fees

const harvestTransaction = await bondingCurvePool.actions.harvestUtils.harvest({
  cranker: payer.publicKey,
});

const harvestTxid = await sendAndConfirmTransaction(
  connection,
  harvestTransaction,
  [payer]
);

console.log(`🌾 Successfully harvested LP fees! TXID: ${harvestTxid}`);

📖 Learn More

📚 Full Documentation: docs.gofundmeme.io 🎨 Frontend SDK (@gofundmeme/sdk-frontend): See Here 💻 Contribute to GFM: GitHub 🌍 Join the Community: Telegram | X (Twitter)