# GoFundMeme - Launch the next viral meme


# FAQs

<details>

<summary>What is GoFundMeme?</summary>

**GoFundMeme** is the first memecoin launchpad to give 100% of the fees back to creators, traders and stakers. We've got the most customizable launch options for you to create viral and fun memecoins, all in one place.

</details>

<details>

<summary>How secure is GoFundMeme?</summary>

**GoFundMeme** uses top-notch security measures and encryption to ensure your security. The platform is also regularly audited.

</details>

<details>

<summary>Is GoFundMeme decentralized?</summary>

Yes, we integrate directly with decentralized protocols and applications. All transactions and funds remain fully on-chain, ensuring you maintain complete control over your assets at all times.

</details>


# Referral Program

## Welcome to GoFundMeme's Revenue Share Program!

We’re excited to introduce GoFundMeme's Referral Program, designed to reward you for helping grow our trading community. Earn passive income every time your referrals trade a GoFundMeme token — the more they trade, the more you earn!

We believe in rewarding our community. That’s why users who sign up using a referral link receive a 10% discount on trading fees!

✅ How to Get Your Discount:

1️⃣ Sign up through a referral link

2️⃣ Start trading and automatically pay 10% less!

💸 Save on every trade & start earning with GoFundMeme today! 🚀

***

## Your Referral Link

When you join GoFundMeme, you’ll receive a unique referral link. Share this with others, and whenever someone signs up using your link and starts trading, you’ll earn a percentage of the fees generated from their trades.

More trading volume = Higher earnings!

***

## Revenue Share Breakdown

GoFundMeme's 3-Tier Referral System rewards you across multiple levels:

1️⃣ Level 1: Earn 30% commission

2️⃣ Level 2: Earn 3% commission

3️⃣ Level 3: Earn 2% commission

***

## Level 1: Direct Referrals (30%)

Who qualifies? **Anyone who signs up using your referral link.**

Your Earnings:

You earn 30% of GoFundMeme's fee on every trade made by your Level 1 referrals.

Example:

• You refer Person B, who trades $10,000 in a day.

• GoFundMeme Fee: $10,000 × 1% = $100

• Your Commission: 30% of $100 = $30

## Level 2: Indirect Referrals (3%)

Who qualifies? **Users who sign up using your Level 1 referrals’ links.**

Your Earnings:

You earn 3% of GoFundMeme's fee on every trade made by your Level 2 referrals.

Example:

• Person B refers Person C, who trades $10,000 in a day.

• GoFundMeme Fee: $10,000 × 1% = $100

• Your Commission: 3% of $100 = $3

• Person B’s Commission: 30% of $100 = $30

## Level 3: Extended Referrals (2%)

Who qualifies? **Users who sign up using your Level 2 referrals’ links.**

Your Earnings:

You earn 2% of GoFundMeme's fee on every trade made by your Level 3 referrals.

Example:

• Person C refers Person D, who trades $10,000 in a day.

• GoFundMeme Fee: $10,000 × 1% = $100

• Your Commission: 2% of $100 = $2

• Person B’s Commission: 3% of $100 = $3

• Person C’s Commission: 30% of $100 = $30

***

## Important Notes

Commissions Are Based on GoFundMeme's 1% Fee – Your earnings are calculated from GoFundMeme's standard 0.75 - 0.9% trading fee, regardless of any discounts applied to the user.

Referral Rewards Are Unlimited – The more you refer, the more you earn... there’s no cap!


# Reward System

Coming soon.


# Point System

Coming soon.


# Fees

Updated fees.


# Launch a Memecoin

{% content-ref url="/pages/ah7ssRoY7f8z1EzqYkSW" %}
[Bonding Curve](/gofundmeme/launch-a-memecoin/bonding-curve)
{% endcontent-ref %}

{% content-ref url="/pages/9hk5LVj7p9PPp7uU4O9G" %}
[Fair Launch](/gofundmeme/launch-a-memecoin/fair-launch)
{% endcontent-ref %}


# Bonding Curve


# Intro


# Fair Launch

The Fair Launch model on the GoFundMeme (GFM) protocol is crafted to ensure an equitable and transparent distribution of tokens. In this model, every SOL contributed holds the same value, meaning that each participant’s investment is proportionately rewarded. This approach fosters a community-driven and inclusive environment, where everyone has an equal stake.

**Equal Investment, Equal Rewards**

At the heart of the Fair Launch is the principle of equality:

* **Proportional Allocation**: The amount of SOL you invest directly determines the number of tokens you receive. There’s no preferential treatment—every contribution is valued equally.
* **Transparency**: The process is fully transparent, with clear rules that apply to all participants, ensuring trust and fairness throughout the launch.

**Customizable Configurations**

One of the strengths of the Fair Launch model is its flexibility, allowing you to tailor the launch to your project’s specific needs:

* **Tokenomics**: You can design a tokenomics model that aligns with your project’s goals, ensuring sustainability and growth.
* **Pre-Allocated Tokens**: Reserve tokens for key stakeholders or future initiatives, giving you control over distribution.
* **Supply Management**: Define the total token supply, including detailed aspects like decimal precision, to fit your project's requirements.
* **Target Raise**: Set a fundraising goal that matches your financial objectives, allowing you to plan and execute effectively.
* **Vesting Programs**: Implement vesting schedules to incentivize long-term commitment, ensuring that tokens are held by those dedicated to the project's success.

**A Platform for Creativity**

The Fair Launch model isn’t just about equal distribution; it’s also about providing a canvas for creativity:

* **Innovative Setup**: Experiment with different configurations to craft a launch strategy that’s both effective and unique.
* **Playful Exploration**: With GFM’s robust tools, launching a token can be a dynamic and engaging process, allowing you to explore various possibilities and find the perfect fit for your vision.


# Tokenomics

Effective tokenomics is important to the success of any token. Our Tokenomics Configuration page offers a comprehensive set of tools to fully customize the structure of your token, ensuring that it aligns with your project’s goals and vision. As the saying goes, “Good tokenomics is the key to a token's success.”

**Define Your Token’s Supply**

You have the flexibility to set the total supply of your token anywhere from 1 million to 1 quadrillion tokens. This wide range allows you to choose a supply size that fits the scale and ambitions of your project.

## **Strategic Distribution**

The next step is to determine how the total supply will be divided between **Presalers** and the **Liquidity Pool (LP)**:

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FMha0U7flAhs2ujk2PBCr%2FScreen%20Shot%202024-08-18%20at%2020.19.13.png?alt=media&amp;token=eb1e8d70-54cb-4ec8-a230-2fe5def8703f" alt=""><figcaption></figcaption></figure>

* **Presalers' Allocation**:\
  The tokens allocated to presalers will be distributed proportionately to each participant after the presale concludes. Once the presale ends, these tokens will immediately enter circulation, providing early supporters with their share.
* **Liquidity Pool Allocation**:\
  The tokens reserved for the liquidity pool will be automatically added to the DEX pool along with all the funds raised during the presale. This ensures that your token is tradable right from the start, providing liquidity and stability to the market.

## **Allocations: Reserving Tokens for Key Goals**

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FOAM06w3k0xgLwsP7k5YE%2FScreen%20Shot%202024-08-18%20at%2020.21.26.png?alt=media&amp;token=bbd72fd6-9d1d-4058-a177-0cf20dfc5e93" alt=""><figcaption></figcaption></figure>

Allocations offer a powerful way to set aside tokens for specific purposes, such as marketing, exchange listings, or team incentives. You can create up to four unique allocations, each requiring its own wallet address and name. These tokens will be claimable by the designated wallets immediately after the fundraising is successfully completed, giving you the resources you need to drive your project forward.


# Target Target

Every project is unique, with its own specific goals and requirements. Setting the target raise is a critical step in your token launch, as it determines the amount of SOL you aim to collect during the presale.

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FNrXze9u3N6dPT6fvMoQu%2FScreen%20Shot%202024-08-18%20at%2020.29.30.png?alt=media&amp;token=c3c3409e-24c5-457d-a59b-9413a87fb0e5" alt=""><figcaption></figcaption></figure>

When deciding on your target raise, it's important to be realistic. The token will not be launched on the DEX until this target is met, so choosing an achievable amount is key. Setting an overly ambitious target might deter potential investors, as they could be hesitant to join if they perceive the goal as unattainable.

In a Fair Launch, tokens are distributed to presale participants only after the presale concludes. This means that any SOL invested will be locked until the presale ends, making it crucial to set a target that aligns with both your project's needs and the expectations of your community.

**KYC Configuration**

On this page, you also have the option to enable KYC (Know Your Customer) verification for participants in your fundraising campaign. By activating this feature, you can enforce KYC requirements, ensuring that users are verified through facial recognition technology provided by Civic. This helps prevent the use of multiple wallets by the same individual, adding an additional layer of security and trust to your project.

If you’d like to explore this feature further, you can find more details on our [KYC page](/gofundmeme/kyc-gating).


# Boosters & Vesting

Boosters and vesting are innovative mechanisms designed to give presale participants the ability to gain an edge over others in a fair and transparent manner. These features allow participants to maximize their returns by multiplying the number of tokens they receive for their investment, though this advantage comes with a trade-off: time.

**How Boosters Work**

Boosters offer a way to enhance the value of your investment during a presale. By selecting a booster, you increase the number of tokens you receive, making your SOL investment more impactful compared to others. However, to benefit from this multiplier, the boosted tokens are subject to a vesting period, meaning they will be locked for a specified duration after the pool launches on Orca.

* **Vesting Periods**: Each booster must be configured with a vesting period. This is the time during which your tokens are locked and unavailable for trading. Once the vesting period ends, the multiplied tokens are released to you.

Boosters not only incentivize users to lock up their tokens, reducing the circulating supply immediately after the pool launches, but they also provide a direct reward for the time committed. This creates a dynamic and strategic element within the token distribution process.

**How Boosters Affect Distribution**

To better understand the impact of boosters on token distribution, let’s explore a few scenarios:

**Example Setup:**

* **Pool Target**: 2 SOL
* **Total Tokens for Presale**: 100

In a scenario without boosters, each participant receives tokens proportional to their investment. For instance, if two users each contribute 1 SOL, they both receive an equal share of the tokens—50 tokens each—available for immediate claim after the pool launch.

**Introducing Boosters:**

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2Fx1rhIfmjvoCQymoO7NVL%2FScreen%20Shot%202024-08-20%20at%2014.00.26.png?alt=media&amp;token=66f86f6a-1b3e-4811-bb6a-02533555e4ea" alt=""><figcaption></figcaption></figure>

When boosters are applied, the fixed number of tokens (in this case, 100) doesn’t change, but their distribution does. Here’s how:

1. **Booster 1: No Vesting**
   * **Multiplier**: 1x
   * **Vesting Period**: None (Tokens available immediately after launch)
2. **Booster 2: 6-Hour Vesting**
   * **Multiplier**: 2x
   * **Vesting Period**: 6 hours
3. **Booster 3: 24-Hour Vesting**
   * **Multiplier**: 3x
   * **Vesting Period**: 24 hours

**Scenario Analysis:**

**Scenario 1**: Two participants each invest 1 SOL with no boosters. The distribution is straightforward—each receives 50 tokens, available immediately after launch.

| User   | Booser | Locked  | Invested | Allocation      |
| ------ | ------ | ------- | -------- | --------------- |
| User 1 | 1X     | NO LOCK | 1 SOL    | 50 Tokens (50%) |
| User 2 | 1X     | NO LOCK | 1 SOL    | 50 Tokens (50%) |

**Scenario 2**: One participant invests 1 SOL using the 2x booster with a 6-hour vesting period. This alters the distribution:

| User   | Booser | Locked  | Invested | Allocation          |
| ------ | ------ | ------- | -------- | ------------------- |
| User 1 | 1X     | NO LOCK | 1 SOL    | 33.3 Tokens (33.3%) |
| User 2 | 2X     | 6 Hours | 1 SOL    | 66.6 Tokens (66.6%) |

**Scenario 3**: One participant invests 0.5 SOL in Booster 2 (2x, 6-hour vesting) and 0.5 SOL in Booster 3 (3x, 24-hour vesting). This results in a more complex distribution:

| User   | Booser | Locked   | Invested | Allocation            |
| ------ | ------ | -------- | -------- | --------------------- |
| User 1 | 1X     | NO LOCK  | 1 SOL    | 28.57 Tokens (28.57%) |
| User 2 | 2X     | 6 Hours  | 0.5 SOL  | 28.57 Tokens (28.57%) |
| User 2 | 3X     | 24 Hours | 0.5 SOL  | 42.86 Tokens (60%)    |

#### **Observations from Scenario 3**

1. **Efficiency in Investment**:
   * **User 1** and **User 2** both receive 28.57 tokens. However, **User 2** achieved this with only 0.5 SOL by using the 2x booster, effectively doubling the value of their investment compared to **User 1**.
2. **Diversification Strategy**:
   * **User 2** chose to diversify their investment by splitting it between two boosters, each with different vesting periods. This strategy allowed them to maximize their token allocation while managing their exposure to vesting timeframes.
3. **Constant Token Supply**:
   * Despite the use of boosters, the total token supply of 100 remains unchanged. The boosters simply redistribute the tokens based on the participants' effective contributions, ensuring a fair and transparent allocation.

#### **On-Chain Trust and Security**

The entire process of using boosters and vesting is fully managed on-chain, making it a trustless and permissionless system. Here are some key points:

* **Immutable Calculations**:\
  All calculations and allocations occur on-chain and are hard-coded into the smart contract. This means that the distribution process cannot be manipulated or altered by any third party, ensuring complete fairness and transparency.
* **Secure Vesting Periods**:\
  The vesting periods associated with each booster are stored on-chain, with no ability to release the tokens ahead of the scheduled time. Once tokens are locked under a vesting period, they are inaccessible until the period ends, as dictated by the smart contract.
* **No Third-Party Intervention**:\
  There is no need for a third party to manage or oversee the process. The smart contract autonomously handles everything, from calculating token distribution to enforcing vesting periods.

#### **Caution for Presalers: Consider Your Vesting Period Carefully (NFA)**

As a presaler, selecting the right booster is crucial, but it's equally important to carefully consider the length of the vesting period associated with your choice. The vesting period dictates how long your tokens will be locked and inaccessible after the pool launches.

For instance, if you choose a booster with a 2,400-hour vesting period, you will be required to wait 100 days before you can claim your tokens. This is a significant commitment, and you need to ensure that you’re comfortable with not having access to those tokens during this period.

Before finalizing your decision, reflect on your financial needs and market expectations over the vesting period. Locking in your tokens for an extended time might offer a higher multiplier and more tokens, but it also means you’re committing to a long-term hold. Make sure this aligns with your overall investment strategy and risk tolerance.


# Harvest (LP LOCK)

## The Broken System of Memecoin Launches

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FTnd6BwFU8BEQwZ6iItVl%2FDALL%C2%B7E%202024-08-20%2015.36.07%20-%20Create%20a%20landscape%20image%20representing%20'The%20Broken%20System%20of%20Memecoin%20Launches.'%20The%20scene%20should%20depict%20a%20chaotic%20and%20crumbling%20digital%20landscape%20wher.webp?alt=media&amp;token=63ff21d8-f90b-48aa-b333-819d851cd6da" alt=""><figcaption></figcaption></figure>

Let’s talk about how memecoin launches are, to put it bluntly, **burning your hard-earned money**. Here’s the deal: when these projects raise the funds to launch their token on a DEX, they go ahead and do it, but then they do something mind-boggling—**they burn the LP** **token** associated with that initial liquidity injection. Yep, you heard that right. They’re literally **setting fire** to **your money**.

See, the funds you chip in to get that pool going - that’s not just cash for the project - **it’s working capital** that **should be earning you fees** from trading volume. But when they burn those LP tokens, they’re basically saying, “Thanks for the money, now let’s toss any chance of you seeing more of it straight into the flames.” You’re forced to **forfeit 100%** of the upside that comes from the fees your capital could’ve generated. Pardon my French, but that’s downright **stupid**.

So, why on earth do they do it? idk... Burning the LP token is their way of guaranteeing that the liquidity won’t be yanked out of the pool—no rug pulls, they say. But here’s the kicker: there’s a smarter way to lock in that liquidity without torching your money and robbing you of the profits you deserve. You can secure the pool without having to throw your potential earnings out the window.

## Introducing the LP Locking Mechanism in the GFM Protocol

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2Fept3xV4ENtyxNB45WIe6%2FDALL%C2%B7E%202024-08-20%2015.36.09%20-%20Create%20a%20landscape%20image%20representing%20'Introducing%20the%20LP%20Locking%20Mechanism%20in%20the%20GFM%20Protocol.'%20The%20scene%20should%20depict%20a%20secure%20and%20futuristic%20digi.webp?alt=media&amp;token=3dc0d7b2-244c-4fce-b156-94dfdf25cdda" alt=""><figcaption></figcaption></figure>

In the GFM Protocol, your investment is safeguarded by a fully automated and secure onChain contract--no one is burning your money here. Instead of destroying the LP tokens, the smart contract locks them away, ensuring that **no one has access** to them. This guarantees that the liquidity will never be pulled out of the pool. But because the LP tokens are not burned, you retain the opportunity to **receive your fair share** of the fees generated by your working capital.

From the creation of the pool, to the raising of funds, to the final injection of liquidity and the creation and locking of LP tokens--everything happens within a **permissionless, trustless environment**. No one other than the program itself has control or access at any stage, whether it's handling the valuable assets collected or the tokens created during the process.

Recognizing this opportunity, the GFM Protocol has introduced a unique harvesting ability. This way, not only is your investment safe, but it also **continues to work for you**, earning fees, **FOREVER.**\
&#x20;**You heard right - passive income - FOREVER.**

It’s the best of both worlds--**security and profitability**--all while keeping your money where it belongs: working for you.


# How it works

One of the key advantages of the GFM Protocol is that it doesn’t burn the LP tokens after launching the pool on the DEX. This unique approach allows the protocol to claim the earned fees from those LP tokens, ensuring that the benefits continue to flow back to the early supporters of the project.

**Distribution of Earned Fees**

Since the LP tokens were created using the funds contributed by presalers, they are the ones who receive the fee rewards. In other words, if you participated in the fundraising of the pool early on the GFM platform, you are eligible to receive a share of the fees generated by the pool’s trading activity. This system creates a powerful incentive for investors to get in early and contribute to the pool, helping it reach its fundraising goal and launch on the DEX.

For those who prefer to wait on the sidelines and invest only after the pool launches—while that’s perfectly fine—you’ll miss out on the opportunity to earn a share of the LP fees.

**How the Fees Are Distributed**

The distribution of the earned fees is straightforward:

1. **10% Allocation to the $GFM Staking Network**:
   * A portion of the earned LP fees—10%—is allocated to the $GFM Staking Network. This contribution supports the management of the pool and gives back to the network, fostering a sustainable ecosystem.
2. **90% Proportional Distribution to Presalers**:
   * The remaining 90% of the fees are distributed proportionally among the presalers. Essentially, the portion of the fees you receive corresponds to the relative size of your contribution to the pool’s total fundraising target.

For example, consider a pool with a target of 50 SOL:

* **Investor 1** contributed 5 SOL, which is 10% of the total target.
* **Investor 2** contributed 40 SOL, which is 80% of the total target.

When the fees are distributed:

* **Investor 1** will receive 10% of the 90% fee rewards.
* **Investor 2** will receive 90% of the 90% fee rewards.

This method ensures that your rewards are directly tied to your level of contribution, making it a fair and transparent process.

### There’s only one other way to claim a share of the LP fee rewards—by [harvesting](/gofundmeme/harvest-lp-lock/harvesting-lp-fees).


# Harvesting LP Fees

The Harvesting Process: A Smooth and Transparent Reward Distribution Lifecycle

In the GFM Protocol, there’s a clear and efficient process for moving the fees from the LP tokens into the wallets of the presalers. This process is a key part of the reward distribution lifecycle and is designed to be as smooth and transparent as possible.

### **Harvest: Permissionless Contribution**

The first step in this process is to claim the fees and redeem them through the LP tokens. The GFM Protocol's harvesting instruction is a completely permissionless on-chain interaction. Its primary goal is to claim the earned fees and allocate them correctly to the presalers. But this raises an important question: who’s responsible for monitoring and executing this transaction on-chain? And why would anyone want to send this transaction—what’s in it for them?

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FNWn7qTOY0p0SQJZQ2yoM%2FScreen%20Shot%202024-08-20%20at%2016.56.41.png?alt=media&amp;token=6ceb0ef5-0d2d-43e9-8da8-450a8d1655bc" alt=""><figcaption></figcaption></figure>

### **The Harvester: Earn While You Harvest**

Simply put, the answer lies with the Harvester. Whoever runs the harvest instruction earns 1% of the fees generated. In other words, this is a completely permissionless on-chain instruction called "Harvest" that anyone can invoke for any pool. In return for their effort, the Harvester receives 1% of the fees they help to harvest.

This mechanism makes the GFM Protocol unique—it's the only protocol where you can literally make money for free just by executing a simple transaction.

If you’re a presaler, you can sit back and watch as your rewards grow, thanks to others harvesting for you. Or, you can take matters into your own hands and do the harvesting yourself. The choice is yours.\
\
Now that the fees have been collected from the LP tokens and allocated to the presalers, all that’s left is for them to claim their rewards.


# Claim Rewards

In the GFM Protocol, the final step in the reward distribution process is claiming your earned fees. Due to the nature of the Solana blockchain, it’s impossible to create a transaction that interacts with multiple wallets simultaneously. This means that the fees cannot be directly sent to presalers’ wallets at the moment of harvesting.

**The Role of Harvesting**

The harvesting process is responsible for claiming the fees from the LP tokens and allocating them to the presalers. However, the actual transfer of these fees into individual wallets requires an additional step: **claiming**.

### **Claiming Your Rewards**

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2F9bciN94sGILEDzxSQNQW%2FScreen%20Shot%202024-08-20%20at%2018.59.42.png?alt=media&amp;token=1c2909eb-f4ef-45da-bc3b-e7c4a5946ee7" alt=""><figcaption></figcaption></figure>

As a presaler, you have the flexibility to claim your accumulated rewards directly to your wallet at any time. There’s no deadline or limit. The fees from multiple harvests compound and accumulate over time, allowing you to claim all your rewards in one go whenever it suits you. This ensures that you can manage your rewards according to your own schedule, making the process both convenient and user-friendly.


# GFM Protocol

#### Why is the GFM Protocol a Protocol?

The GFM Protocol isn’t just another platform—it's a protocol because it establishes a set of standardized, immutable rules that govern the entire lifecycle of a token, from creation to distribution, all within a decentralized and permissionless environment.

**A Foundation Built on Code**

At the heart of the GFM Protocol lies its on-chain, code-driven foundation. Every action within the GFM ecosystem is governed by smart contracts—self-executing pieces of code that enforce rules without the need for human intervention. This is what makes GFM a protocol: it's a system where the rules are baked into the code, ensuring consistency, transparency, and fairness.

**Decentralization at its Core**

Unlike traditional platforms that rely on centralized control and oversight, the GFM Protocol operates autonomously on the blockchain. There are no gatekeepers, no intermediaries, and no centralized authority dictating the process. Instead, the protocol's decentralized nature empowers users to interact directly with the system, knowing that every transaction is executed fairly and transparently.

**A Trustless Environment**

One of the defining features of a protocol is its trustless nature. In the GFM Protocol, trust isn’t placed in a company or a group of individuals—it’s placed in the code. Smart contracts handle everything from fundraising and token distribution to fee harvesting and reward claims. This trustless environment eliminates the risk of manipulation or human error, ensuring that the system operates exactly as intended, every time.

**Empowering Communities**

The GFM Protocol is designed to be a scalable, reliable foundation for launching and managing memecoins. By embedding all the necessary rules and processes directly into the blockchain, it empowers communities to create, fund, and grow their projects without relying on any central authority. This autonomy is what makes the GFM Protocol more than just a platform—it’s a blueprint for decentralized success.

**The Power of Protocol**

In the end, the GFM Protocol is a protocol because it provides a framework—a set of unchangeable rules that ensure every participant plays by the same guidelines. It’s this structure that allows the GFM ecosystem to thrive, bringing together the best of DeFi and memes in a way that’s secure, transparent, and entirely decentralized.


# Defi x Memecoins

DeFi x Memes: The Perfect Marriage in the GFM Protocol

The GFM Protocol is the ultimate fusion of Decentralized Finance (DeFi) and the vibrant world of memecoins. By combining the rigorous financial tools of DeFi with the community-driven energy of memes, GFM creates a unique ecosystem where innovation meets culture, providing a platform that is both secure and engaging.

**Permissionless and Trustless: The Heart of DeFi**

At the core of the GFM Protocol is its on-chain, permissionless nature. Every transaction, from fundraising to reward distribution, is governed by immutable smart contracts. This ensures transparency, security, and fairness, with no need for intermediaries. Whether you're creating a token, participating in a launch, or claiming rewards, you can trust that the process is fully automated and free from external interference. This trustless system embodies the very essence of DeFi, providing a secure foundation for the dynamic world of memecoins.

**A Unified Ecosystem**

GFM isn’t just about creating tokens—it’s about building a comprehensive ecosystem that brings together the best of DeFi and memecoins:

* **Fair Launch & Bonding Curve**: GFM offers flexible launch options, whether through a Fair Launch or a Bonding Curve, allowing participants to engage in a way that suits their strategy. This blend of structured financial mechanisms with the excitement of memecoin launches ensures that everyone has a fair shot.
* **Boosters & Vesting**: With features like boosters and vesting periods, GFM introduces strategic depth, allowing participants to maximize their returns while committing to the project's success. This adds a layer of engagement that combines the thrill of memecoins with the calculated investments of DeFi.
* **Tokenomics & Preallocations**: GFM’s robust tokenomics and preallocation features enable creators to design their token distribution to reward early supporters, secure liquidity, and incentivize future development. This flexibility showcases how GFM merges financial planning with the viral potential of memecoins.

**Innovative Tools for a Dynamic Market**

GFM provides a range of tools designed to ensure the ongoing success and growth of your project:

* **Auto Deployment to DEX**: Once the fundraising goal is achieved, GFM automatically deploys the token to a decentralized exchange (DEX), providing immediate liquidity and trading opportunities. This automation exemplifies the efficiency of DeFi, combined with the rapid momentum that memecoins generate.
* **Harvesting & Fee Reward Distribution**: By retaining LP tokens, GFM enables continuous fee generation and distribution. This encourages early participation and ongoing engagement, offering a continuous reward system that blends DeFi’s yield-generating capabilities with the community support typical of memecoins.
* **The GFM Staking Network**: GFM introduces a staking network where participants can earn a share of protocol fees, tying the community’s success directly to the success of the project. This is where the long-term rewards of DeFi meet the enthusiastic participation of meme culture.

**Security & Trust Built In**

In an environment often fraught with uncertainty, GFM integrates essential security features directly into its protocol:

* **KYC Gating**: Through Civic’s KYC verification, GFM ensures that only verified participants can engage, adding a layer of security without sacrificing the permissionless nature of DeFi. This gives creators peace of mind, knowing that their community is made up of real, verified individuals.
* **Smart Contract Integration**: Every aspect of GFM, from tokenomics to fee distribution, is governed by smart contracts, ensuring that the rules are clear, transparent, and unchangeable. This trustless system guarantees that your project operates fairly and securely, without the need for human intervention.

**The Future of DeFi x Memes**

The GFM Protocol is more than just a platform; it’s a demonstration of what’s possible when DeFi and memecoins come together. By offering a space that is both secure and engaging, GFM allows creators, investors, and communities to thrive in an ecosystem that rewards participation, creativity, and long-term commitment.

In GFM, financial success and cultural expression aren’t just compatible—they’re intertwined. Whether you’re launching a new token, staking for rewards, or simply engaging with a vibrant community, GFM is where DeFi and memecoins converge to create something truly groundbreaking.


# Staking

The GFM Staking Network: Fueling Growth and Rewarding Participation

The GFM Staking Network is at the heart of the GoFundMeme ecosystem, designed to reward participants and fuel the growth of the platform. By staking your GFM tokens, you not only earn a share of the protocol fees but also contribute to the overall health and expansion of the network.

**How It Works**

The GFM Staking Network operates with the precision and fairness that only smart contracts can provide. This fully autonomous, transparent system ensures that rewards are distributed equitably and trustlessly, based on each staker’s contribution.

* **Proportional Rewards**: When you stake your GFM tokens, you become eligible to receive a portion of the GFM Protocol Fees. These fees are distributed proportionally based on the amount of tokens you have staked. The more you stake, the larger your share of the rewards, offering a clear incentive for long-term commitment.
* **Autonomous and Transparent**: The staking process is entirely managed by protocol, eliminating the need for human intervention. This creates a transparent and trustless environment where rewards are distributed fairly, ensuring that every staker gets what they deserve based on their contribution.

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FT5q2XOeASZMjcljngTl3%2FDALL%C2%B7E%202024-08-19%2001.40.00%20-%20Create%20a%20vibrant%20and%20engaging%20landscape%20image%20that%20prominently%20features%20the%20'GFM'%20logo%20in%20a%20clear%20and%20central%20manner.%20The%20image%20should%20represent%20the%20G.webp?alt=media&amp;token=f32d4bcb-a7e8-4b3a-9b2f-c9b7edad247a" alt=""><figcaption></figcaption></figure>

**Benefits of Staking**

Staking GFM tokens offers more than just financial rewards. it’s a strategic move that benefits both the stakers and the entire GFM ecosystem:

* **Drive Network Growth**: Staking your tokens encourages you to engage with and promote the network. As more participants join and more transactions occur, the protocol fees increase, leading to higher rewards for stakers. This creates a positive feedback loop where increased network activity directly benefits those who support it through staking.
* **Incentivize Long-Term Participation**: The reward structure is designed to favor long-term participants. By staking your tokens for extended periods, you maximize your share of the rewards, encouraging a steady and committed holder base that supports the network's stability.

**A Symbiotic Ecosystem**

The GFM Staking Network plays a crucial role in creating a symbiotic relationship within the GFM ecosystem:

* **For Builders**: Developers are motivated to create new features and drive more transactions, knowing that their innovations will generate additional protocol fees, which in turn benefit the stakers.
* **For Holders**: Token holders are incentivized to stay engaged with the platform, as their staking rewards are directly tied to the network’s performance. This engagement ensures a vibrant and active community that continuously supports the platform’s growth.
* **For Users**: Regular users benefit from a constantly evolving network, where the collective efforts of builders, holders, and stakers lead to improved functionality and increased opportunities within the ecosystem.

**Conclusion**

The GFM Staking Network is more than just a rewards program- it’s a key driver of the GoFundMeme ecosystem’s growth and success. By staking your GFM tokens, you’re not only earning rewards but also playing a vital role in the network’s expansion. This interconnected system of incentives ensures that everyone involved—builders, holders, users, and stakers—has a stake in the success of GFM, creating a thriving and resilient community.


# KYC Gating

KYC Gating: Enhancing Security in the Memecoin Space

The memecoin space is full with bad actors, and while we can't eliminate them entirely, the GFM Protocol is committed to doing everything possible to help protect your fundraising campaign.

**KYC Protection Embedded in the Smart Contract**

The GFM Protocol brings KYC (Know Your Customer) protection directly into the smart contract. We offer the option to gate your fundraising campaign, allowing only verified individuals to participate. This added layer of security helps ensure that your campaign is backed by real people, not bots or bad actors.

**How It Works**

We’ve integrated [Civic](https://civic.com/) directly into our smart contract to provide seamless KYC verification. Here’s how it works:

**1 Wallet per 1 Person**:

* If you enable KYC protection on your pool, any investor who wants to participate must undergo a quick, 30-second KYC verification process using Civic.
* Once verified, their wallet will be uniquely attached to them, preventing them from linking an additional wallet to their account. This ensures that **1 wallet represents 1 person**.

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2Fq6avMhAQ8LKDDJAQKywU%2FScreen%20Shot%202024-08-20%20at%2019.57.50.png?alt=media&amp;token=58464a79-753a-4d4a-a9d2-57017c7d4403" alt=""><figcaption></figcaption></figure>

This approach reinforces the security of your campaign, giving you confidence that the number of wallets involved more accurately reflects the number of genuine individuals investing.

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FBqu6Dopdxr7YsLIYVGTm%2FScreen%20Shot%202024-08-20%20at%2019.59.24.png?alt=media&amp;token=de608cef-edea-46f6-97d5-7f2584dd3a9d" alt=""><figcaption></figcaption></figure>

**Seamless Integration with Civic**

Our KYC enforcement tool is fully integrated into the smart contract, meaning that while funding remains permissionless, any transaction will only succeed if the wallet has been verified through Civic. This ensures that every participant is a verified individual, adding a critical layer of trust and security to your fundraising efforts.


# SocialFi

SocialFi on the GFM Platform: Revolutionizing the Meme Culture Experience

The GFM Platform wasn’t built in an ivory tower--it was crafted by trench warriors, for trench warriors. We’ve been in the thick of it, sharing the same struggles and frustrations that arise from navigating the ever-growing and unpredictable world of memecoins. We understand the pain points that come with the meme culture: the endless scrolling, the lack of transparency, and the challenge of discovering authentic communities in a sea of noise.

That’s why we’ve taken SocialFi and completely reimagined it for the modern degens. At GFM, we believe that the future of memecoins lies in community-driven transparency and discoverability, and we’ve built the tools to make that a reality.

For us, it has always been about the community-first approach. The power of memecoins is in their communities, and we wanted to make sure that those communities could shine through. This led us to develop two key features that redefine how memecoin enthusiasts connect and engage:

[**TG Chat Livestream**](/gofundmeme/socialfi/telegram-chat-livestream) **(coming soon)**

[**Community Bubbles**](/gofundmeme/socialfi/community-bubbles)

These features are designed to minimize screen time and maximize the quality of your interactions. By focusing on transparency and discoverability, we’re helping you find the best communities without having to endlessly scroll through chats and forums. With GFM, we’ve made it easier to get the full picture at a glance--allowing trench warriors like us to spend less time glued to our screens and more time touching grass.


# Community Bubbles

Community Bubbles: The Viral Heartbeat of GFM

At GFM, we didn’t just want to recreate the memecoin culture--we wanted to elevate it. With Community Bubbles, we’ve done just that, transforming how communities interact and thrive within the GFM ecosystem. Imagine if every Telegram group chat for a memecoin project became like a Twitter profile, where viral growth and visibility were at the core. That’s what Community Bubbles are all about.

Just like a tweet can be retweeted, a bubble can be blasted. Each member of a Telegram group can blast the community’s bubble, increasing its size and visibility. The more blasts, the bigger the bubble grows, creating a dynamic representation of the community’s activity. And just like viral content on social media, the largest and most active bubbles get the most attention.

On our platform, we showcase the Top 20 Community Bubbles, ranked by the number of blasts they’ve received. The bigger your bubble, the more attention your community will attract from other degens, allowing them to easily discover your project. This feature doesn’t just promote engagement--it turns community participation into a game where the goal is to make your bubble the biggest.

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FsIByRDwxkYvx2ynoTN7p%2FScreen%20Shot%202024-10-04%20at%2015.14.46.png?alt=media&amp;token=94284153-0264-4129-be53-9dd852fbbec8" alt=""><figcaption></figcaption></figure>

With Community Bubbles, we’ve created a space where memecoin communities can compete for attention, rise to the top, and showcase their strength to the world. It’s a fun and interactive way for communities to thrive in the attention economy, all while encouraging organic growth and fostering genuine connections within the GFM ecosystem.

**HOW IT WORKS:**\
[After connecting your TG group chat](/gofundmeme/socialfi/telegram-chat-livestream), you can now run the ***/bubble*** command in the chat.\
\
![](https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FDcLCSs2m6135FFkPKem7%2FScreen%20Shot%202024-10-04%20at%2015.22.30.png?alt=media\&token=5d899ef8-b228-4f3c-a67d-d31922681e6e)

To create a new bubble, simply select the **CREATE BUBBLE** option:

![](https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2Fo5oXsDaI4rU7MlaRWo90%2FScreen%20Shot%202024-10-04%20at%2015.23.36.png?alt=media\&token=1eeb91f4-7c96-4123-9d07-2d3e2169fcaf)

Think of a **bubble** as the Telegram equivalent of a tweet on Twitter—it’s a way to engage your community and grab attention. But here’s the twist: it’s now up to the community to **BLAST** the bubble and make it grow!

You can always check the status of your bubble by running the `/bubble` command in the chat. This will show you its current stats and how much it's growing.\
\
![](https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FyNAudoSY6F52sGWqipJm%2FScreen%20Shot%202024-10-04%20at%2015.26.08.png?alt=media\&token=7975b786-3aa4-4781-900a-ceec28df2d67)

Remember, bubbles don’t last forever. Just like tweets lose relevance over time, each new bubble will **pop and expire** after 24 hours of its creation. It’s all about keeping the momentum alive!


# Telegram Chat Livestream

At GFM, we recognize that community is the lifeblood of the memecoin culture. That’s why we’ve made it easy to bring your community directly to the GFM website, enhancing engagement and helping potential investors get a true sense of your project's vibe.

**Connect Your Community Chat to Your Fundraising Page**

With GFM, token creators can seamlessly integrate their Telegram community chat directly into their fundraising page. This feature allows visitors to see real-time conversations and interactions within your community, giving them an authentic glimpse of the energy and engagement surrounding your project.

<figure><img src="https://903054182-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDQRxvkU4KW8NfNCJVFSM%2Fuploads%2FfHgaVhxshBd00X0wOzms%2FScreen%20Shot%202024-08-20%20at%2020.04.26.png?alt=media&amp;token=97763a97-aeec-4283-88a4-3139779c0c78" alt=""><figcaption></figcaption></figure>

**How to Livestream Your Community Chat**

To start livestreaming your community chat on your GFM fundraising page, simply follow these easy steps:

1. **Start Chatting with the Gofundmemebot:**
   * Click here to begin chatting with the **@Gofundmemebot** on Telegram.
2. **Initiate the Process:**
   * Type `/start` or click the start button to begin the setup process with the bot.
3. **Add the Bot to Your Chat:**
   * Add the **@Gofundmemebot** to your Telegram chat. Make sure the bot has admin access to manage the livestream.
4. **Configure the Livestream:**
   * In your Telegram chat, type `/config` and follow the steps provided by the bot to set up the livestream.

**Engage Your Community, Attract New Supporters**

By livestreaming your community chat on your GFM fundraising page, you make it easy for potential investors to see the buzz and excitement around your project. It’s a powerful way to showcase your community’s spirit and attract new supporters, all within the GFM ecosystem.


# GFM for Builders

## 🚀 GoFundMeme SDK

The GoFundMeme SDK is a powerful toolkit designed to simplify and streamline development within the GFM Protocol. Whether you’re integrating Fair Launches, Bonding Curves, Staking Pools, or real-time data streams, this SDK provides seamless and efficient interaction with the GFM Program IDL and WebSocket-based subscriptions.

###

### ✨ Key Features

✔️ Fair Launch – Fully decentralized & transparent fundraising for memecoins and beyond.

✔️ Bonding Curve – Automated price discovery & dynamic token issuance.

✔️ Subscriptions API – Real-time updates on pool states, market cap, swaps, funding events, and more.

✔️ Harvesting – Efficient LP fee collection and reward distribution.

✔️ Claiming Rewards – Automated, flexible claims for presale & staking rewards.

✔️ Pool Staking – Permissionless liquidity staking with incentives.

✔️ GFM Staking Network – Earn a proportional share of protocol fees through staking.

###

### 🔥 Why Use the GFM SDK?

🔹 Developer-Friendly – Intuitive API, well-structured methods, and clear documentation.

🔹 WebSocket Subscriptions – Live monitoring of pool activity and liquidity movements.

🔹 Optimized for Performance – Efficient, high-speed transaction processing.

🔹 Scalable & Secure – Built to handle large-scale token launches with safety measures in place.

🔹 Seamless Integration – Works effortlessly with Solana Web3.js, Anchor, and decentralized pools.

🔹 Evolving & Expanding – Continuous updates with new features and improvements.

With GoFundMeme SDK, creating, funding, swapping, and staking within the GFM Protocol has never been easier. 🚀


# Installation Guide

## 🚀 Installing the GoFundMeme SDK

The GoFundMeme SDK is a complete toolkit designed for seamless interaction with the GFM Protocol, supporting Fair Launch, Bonding Curve, Staking, and Harvesting features.

## 🔧 Install GFM-SDK (Full Version)

If you need full access to all features, including Harvesting, use the main GFM-SDK package.

Using npm:

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

Using yarn:

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

## 🎨 Installing the GoFundMeme SDK (Frontend Version)

To simplify frontend development, we’ve released GFM-SDK-Frontend, a lightweight version of the SDK that removes external dependencies such as Orca SDK, Raydium SDK, and Meteora SDK. This helps avoid compatibility issues when integrating the SDK into frontend applications.

{% hint style="warning" %}
Important: The frontend SDK does not support Harvesting.
{% endhint %}

If your application requires Harvesting, use the main GFM-SDK on your backend and expose an API endpoint to retrieve Harvest transactions for your frontend.

## 🔧 Install GFM-SDK-Frontend (Optimized for Frontend)

If you only need core functionalities such as Pool Creation, Swaps, and Claiming, use the lighter frontend version.

Using npm:

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

Using yarn:

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

## 🛠 Which SDK Should You Use?

| Use Case                                               | SDK to Use                                                    | Supports Harvesting? |
| ------------------------------------------------------ | ------------------------------------------------------------- | -------------------- |
| Backend applications with full GFM Protocol support    | @gofundmeme/sdk                                               | ✅ Yes                |
| Frontend applications that need core interactions only | @gofundmeme/sdk-frontend                                      | ❌ No                 |
| You need both frontend & backend integration           | Use both (GFM-SDK for backend, GFM-SDK-Frontend for frontend) | ✅ Yes (via backend)  |


# Init gfmSDK

Setting up the SDK is **effortless**. Simply create a **Solana RPC connection** and pass it into the **SDK initializer**:

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

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

(async () => {
  // This is all you need to start interacting with the GFM protocol
  const gfmSDK = await initGoFundMemeSDK({ connection });
})();
```

\
Now that your SDK is initialized, you’re ready to interact with the **GoFundMeme Protocol**! Check out the next sections for detailed guides on **Fair Launch**, **Bonding Curves**, **Staking**, and more. 🚀

<br>


# GFM Methods


# Bonding Curve


# Pool Interaction

The **Bonding Curve Pool** is a dynamic pricing mechanism used in the **GoFundMeme Protocol** to enable seamless token swaps. Instead of relying on traditional order books, **bonding curves** establish an automated market maker (AMM)-style system where price adjusts based on supply and demand.

With the **GoFundMeme SDK**, you can:\
✅ Fetch **Bonding Curve pool** details\
✅ Buy tokens from the bonding curve\
✅ Sell tokens back for SOL\
✅ Harvest LP fees and staking rewards\
✅ Stake, unstake, and claim rewards

***

## 🛠️ Fetching a Bonding Curve Pool

To interact with a **Bonding Curve Pool**, fetch its data using the **mint address** of the token launched in a Fair Launch.

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

const connection = new Connection("https://api.mainnet-beta.solana.com");

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

  // Replace with the token mint address
  const mintAddress = new PublicKey("THE TOKEN MINT ADDRESS");

  // Fetch the Bonding Curve Pool
  const bondingCurvePool = await gfmSDK.pools.bondingCurve.fetchBondingCurvePool(
    { mintB: mintAddress }
  );

  console.log("Bonding Curve Pool Data:", bondingCurvePool);
})();
```

***

## 📊 Checking Pool Status

Once you've fetched the **Bonding Curve Pool**, you can check its **status, target raise, and funding progress**.

```typescript
import { LAMPORTS_PER_SOL } from "@solana/web3.js";

const { poolStatus, targetRaise, totalRaised } = bondingCurvePool.poolData;

if (poolStatus.raising) {
  console.log("✅ The pool is still in the raising phase.");
}

if (targetRaise.toNumber() > totalRaised.toNumber()) {
  const remainingSolToRaise =
    (targetRaise.toNumber() - totalRaised.toNumber()) / LAMPORTS_PER_SOL;
  console.log("⚠️ Pool is NOT fully funded yet!", { remainingSolToRaise });
}
```

***

## 🛒 Buying Tokens on the Bonding Curve

Purchasing tokens from the **Bonding Curve Pool** is simple. Specify the **amount of SOL** you wish to spend and set a **slippage tolerance**.

```typescript
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
  });

// View the purchase quote details
console.log("Buy Quote:", buyQuote);

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

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

***

## 💰 Selling Tokens Back for SOL

If you want to **sell** tokens back to the **Bonding Curve Pool**, specify the **amount of tokens** to sell and set your **slippage tolerance**.

```typescript
const { quote: sellQuote, transaction: sellTransaction } =
  await bondingCurvePool.actions.swap.sell({
    amountInUI: new Decimal(10_000_000.1153), // Selling 10,000,000.1153 tokens
    funder: payer.publicKey,
    slippage: 2.5, // 2.5% slippage tolerance
  });

// View the sell quote details
console.log("Sell Quote:", sellQuote);

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

console.log(
  `💰 Successfully sold tokens on the bonding curve for SOL! TXID: ${sellTxid}`
);
```

***

## 🏦 Fetching LP Fees & Harvester Rewards

{% hint style="danger" %}
NOT supported on **GFM-SDK-Frontend**
{% endhint %}

Once the **Bonding Curve Pool** has completed its lifecycle, **LP fees and harvester rewards** can be retrieved.

```typescript
const summary = await bondingCurvePool.actions.harvestUtils.getLpStateSummary();
console.log("📊 LP Fee Summary:", summary);
```

#### 📌 Example Response:

```json
{
  "totalHarvested": {
    "tokenA": 33.013248883,
    "tokenB": 56016886.86489466
  },
  "availableForHarvest": {
    "tokenA": 0,
    "tokenB": 885.540800497
  },
  "harvesterRewards": {
    "tokenA": 0,
    "tokenB": 8.85540800497
  }
}
```

***

### 🌾 Harvesting LP Fees

LP fees generated from trades can be **harvested** by crankers.

```typescript
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}`);
```

<br>


# Pool Staking Network

## 🔥 Staking in the Bonding Curve Pool

For **graduated Bonding Curve Pools**, LP fees are distributed through the pool’s **staking network**.

## 🎯 Fetching Staker Profile

Check your **staking balance**, claimed rewards, and available rewards.

```typescript
const stakerAccountData =
  await bondingCurvePool.actions.staking.fetchStakerAccount({
    staker: payer.publicKey,
  });

console.log("Staker Account Data:", JSON.stringify(stakerAccountData));
```

#### 📌 Example Response:

```json
{
  "staked": 95108188.8443,
  "stakingTimestamp": "2025-02-21T09:46:03.000Z",
  "claimed": {
    "tokenA": 0.153621963,
    "tokenB": 8530868.3904
  },
  "available": {
    "tokenA": 0.004289379,
    "tokenB": 154977.2035
  }
}
```

***

## ⛓️ Staking Tokens

Stake tokens into the **Bonding Curve Pool’s Staking Network** to earn rewards.

```typescript
const stakeTokensTransaction = await bondingCurvePool.actions.staking.stake({
  staker: payer.publicKey,
  amountUI: 112325.1425, // Staking 112,325.1425 tokens
});

const stakeTokensTxid = await sendAndConfirmTransaction(
  connection,
  stakeTokensTransaction,
  [payer]
);

console.log(
  `⛓️ Successfully staked tokens in the pool's Staking Network! TXID: ${stakeTokensTxid}`
);
```

***

## 🔓 Unstaking Tokens

Unstake your **Bonding Curve Pool** tokens partially or fully.

```typescript
const unstakeTokensTransaction =
  await bondingCurvePool.actions.staking.unstake({
    staker: payer.publicKey,
    amountUI: 112325.1425 / 2, // Unstaking 50% of staked tokens
  });

const unstakeTokensTxid = await sendAndConfirmTransaction(
  connection,
  unstakeTokensTransaction,
  [payer]
);

console.log(
  `🔓 Successfully unstaked tokens from the pool's Staking Network! TXID: ${unstakeTokensTxid}`
);
```

***

## 🎁 Claiming Staking Rewards

Claim your **LP rewards** from the **staking network**.

```typescript
const claimRewardsTransaction =
  await bondingCurvePool.actions.staking.claimRewards({
    staker: payer.publicKey,
  });

const claimRewardsTxid = await sendAndConfirmTransaction(
  connection,
  claimRewardsTransaction,
  [payer]
);

console.log(
  `🎁 Successfully claimed staking rewards! TXID: ${claimRewardsTxid}`
);
```


# Fair Launch

The **Fair Launch** mechanism in the **GoFundMeme Protocol** enables decentralized, transparent, and community-driven token launches. This system ensures equitable access to presale allocations while dynamically adjusting fundraising based on demand.

With the **GoFundMeme SDK**, you can seamlessly:\
✅ Fetch Fair Launch pool details\
✅ Fund or defund a pool\
✅ Claim presale allocations\
✅ Claim preallocations (marketing, team, etc.)\
✅ Harvest LP fees and rewards

<br>


# Pool Interaction

The **Fair Launch** mechanism in the **GoFundMeme Protocol** enables decentralized, transparent, and community-driven token launches. This system ensures equitable access to presale allocations while dynamically adjusting fundraising based on demand.

With the **GoFundMeme SDK**, you can seamlessly:\
✅ Fetch Fair Launch pool details\
✅ Fund or defund a pool\
✅ Claim presale allocations\
✅ Claim preallocations (marketing, team, etc.)\
✅ Harvest LP fees and rewards

***

## Fetching a Fair Launch Pool

To interact with a **Fair Launch pool**, you must first fetch its data using the **mint address** of the token being launched.

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

const connection = new Connection("https://api.mainnet-beta.solana.com");

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

  // Replace with your token mint address
  const mintAddress = new PublicKey("THE TOKEN MINT ADDRESS");

  // Fetch the Fair Launch Pool
  const pool = await gfmSDK.pools.fairLaunch.fetchFairLaunchPool({
    mintB: mintAddress,
  });

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

***

### 📊 Checking Pool Status

Once you've fetched the **Fair Launch pool**, you can check its **status, expiration, and funding progress**.

```typescript
import moment from "moment";

const { poolStatus, expirationTimestamp, targetRaise, totalRaised } =
  pool.poolData;

if (poolStatus.raising) {
  console.log("✅ The pool is still in the raising phase.");
}

if (moment(expirationTimestamp.toNumber() * 1000).isAfter(moment())) {
  console.log("⏳ The pool has not expired yet!");
}

if (targetRaise.toNumber() > totalRaised.toNumber()) {
  const remainingSolToRaise =
    (targetRaise.toNumber() - totalRaised.toNumber()) / LAMPORTS_PER_SOL;
  console.log("⚠️ Pool is NOT fully funded yet!", { remainingSolToRaise });
}
```

***

## 💰 Funding the Pool

Participants can contribute **SOL** to the **Fair Launch pool** before it reaches its target.

```typescript
import { Keypair, sendAndConfirmTransaction } from "@solana/web3.js";

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

// Create a funding transaction (1 SOL in this example)
const fundTransaction = await pool.actions.fund({
  solAmount: 1,
  funder: payer.publicKey,
});

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

console.log(`🎉 Successfully funded the pool! TXID: ${fundTxid}`);
```

***

## 💸 Defunding (Withdrawing Contributions)

If the pool is **still in the raising phase**, participants can withdraw their contributions.

```typescript
const defundTransaction = await pool.actions.defund({
  funder: payer.publicKey,
});

const defundTxid = await sendAndConfirmTransaction(
  connection,
  defundTransaction,
  [payer]
);

console.log(`💸 Successfully defunded the pool! TXID: ${defundTxid}`);
```

***

## 🎟️ Claiming Presale Allocations

After the **Fair Launch concludes**, contributors can claim their **presale tokens**.

```typescript
const claimPresaleTransaction = await pool.actions.claimPresale({
  funder: payer.publicKey,
});

const claimPresaleTxid = await sendAndConfirmTransaction(
  connection,
  claimPresaleTransaction,
  [payer]
);

console.log(`🎟️ Presale tokens claimed! TXID: ${claimPresaleTxid}`);
```

***

## 🎯 Claiming Preallocation (Marketing, Team, etc.)

Some tokens are reserved for marketing, partnerships, or team allocations. These can be claimed separately.

```typescript
const claimPreallocationTransaction = await pool.actions.claimPreallocation({
  funder: payer.publicKey,
});

const claimPreallocationTxid = await sendAndConfirmTransaction(
  connection,
  claimPreallocationTransaction,
  [payer]
);

console.log(`🚀 Preallocation tokens claimed! TXID: ${claimPreallocationTxid}`);
```

***

***

## 🎁 Fetching Presaler Rewards Summary

Presale contributors can **check their unclaimed LP rewards** before claiming.

```typescript
const presalerRewardsSummary =
  await pool.actions.funderRewardsUtils.fetchFunderRewardsSummary({
    funder: payer.publicKey,
  });

console.log("🎁 Presaler Rewards Summary:", presalerRewardsSummary);
```

#### 📌 Example Response:

```json
{
  "funded": 2.9,
  "claimed": {
    "tokenA": 6.090397809,
    "tokenB": 3987429.885834387
  },
  "available": {
    "tokenA": 0.503932604,
    "tokenB": 618413.982264954
  }
}
```

***

## 💎 Claiming Presaler LP Rewards

Once rewards are available, contributors can claim them.

```typescript
const claimPresalerRewardsTransaction =
  await pool.actions.funderRewardsUtils.claimRewards({
    funder: payer.publicKey,
  });

const claimPresalerRewardsTxid = await sendAndConfirmTransaction(
  connection,
  claimPresalerRewardsTransaction,
  [payer]
);

console.log(
  `💎 Successfully claimed LP rewards! TXID: ${claimPresalerRewardsTxid}`
);
```

***

## 🏦 Fetching LP Fees & Harvester Rewards

{% hint style="danger" %}
NOT supported on **GFM-SDK-Frontend**
{% endhint %}

Once the **Fair Launch concludes**, LP fees and harvester rewards can be tracked.

```typescript
const summary = await pool.actions.harvestUtils.getLpStateSummary();
console.log("📊 LP Fee Summary:", summary);
```

#### 📌 Example Response:

```bison
{
  "totalHarvested": {
    "tokenA": 33.013248883,
    "tokenB": 56016886.86489466
  },
  "availableForHarvest": {
    "tokenA": 0,
    "tokenB": 885.540800497
  },
  "harvesterRewards": {
    "tokenA": 0,
    "tokenB": 8.85540800497
  }
}
```

## 🌾 Harvesting LP Fees

LP fees collected in the pool can be **harvested** by authorized crankers.

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

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

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


# APIs


# Create Pools

## 🏗 Creating a Pool with the GoFundMeme SDK

The GoFundMeme SDK provides two main methods for creating pools:

• Bonding Curve Pools – Pools that use an automated market maker (AMM) for price discovery.

• Fair Launch Pools – A community-driven fundraising mechanism.<br>

### Each method follows a two-step process:

1\. Request Pool Creation – Generates a transaction that the creator must sign.

2\. Process Pool Creation – After signing, the transaction is submitted and finalized.

### 🔥 Key Features

✔️ Automated Market Making (for Bonding Curve Pools).

✔️ Community-Driven Fundraising (for Fair Launch Pools).

✔️ Built-in Tokenomics Validation – Prevents incorrect pool setups.

✔️ Decentralized Pool Ownership – Ensures fair and trustless execution.

✔️ Easy Integration – Only two simple API calls are needed.

🚀 Bonding Curve Pool Creation

<br>

### 📌 How Bonding Curve Pools Work

Bonding Curve Pools allow dynamic price discovery and automated liquidity provisioning without traditional order books. The token price increases as more SOL is contributed.

## 📜 Create a Bonding Curve Pool

To create a Bonding Curve Pool, follow these steps:

1️⃣ Request Pool Creation

```typescript
import { gfmSDK, NETWORK } from "@gofundmeme/sdk";
import { Keypair } from "@solana/web3.js";

const creator = Keypair.generate(); // Replace with the actual creator Keypair

const payload = {
    token: {
        base64: "BASE64 (Image/Gif)",  // Base64 image of token logo
        name: "MyToken",
        symbol: "MTK",
        description: "A community-driven token",
        website: "https://mytoken.io",
        twitter: "https://twitter.com/mytoken",
        discord: "https://discord.gg/mytoken",
        telegram: "https://t.me/mytoken"
    },
    amountIn: 5, // Initial SOL to seed the pool
    network: NETWORK.MAINNET,
    creatorWalletAddress: creator.publicKey.toString(),
    supply: 1_000_000_000 // Total supply
};

(async () => {
    const createRequest = await gfmSDK.api.bondingCurve.createPool.request(payload);
    console.log("✍️ Sign the transaction:", createRequest.transaction);
})();
```

## 2️⃣ Sign & Process the Transaction

Once the transaction is created, it must be signed and submitted.

```typescript
const response = await createRequest.signAndConfirm({ creator });
console.log("✅ Pool Created!", response);
```

✅ Successful Response

```json
{
  "mintAddress": "5tsHhs3GpmYjSWXbczVj...",
  "txid": "4hgh8a87sdg76agsd67as8...",
  "pool": {
    ...
  }
}
```

### 📌 Bonding Curve Pool API Methods

| Method                                                         | Description                          |
| -------------------------------------------------------------- | ------------------------------------ |
| gfmSDK.api.bondingCurve.createPool.request(payload)            | Initiates the pool creation request. |
| createRequest.signAndConfirm({ creator })                      | Signs and submits the transaction.   |
| gfmSDK.api.pools.bondingCurve.fetchBondingCurvePool({ mintB }) | Fetches the pool details.            |

## 🚀 Fair Launch Pool Creation

### 📌 How Fair Launch Pools Work

Fair Launch Pools enable decentralized fundraising where contributors purchase allocations at a fixed price over a specified duration.

<br>

## 📜 Create a Fair Launch Pool

To create a Fair Launch Pool, follow these steps:

1️⃣ Request Pool Creation

```typescript
import { gfmSDK, NETWORK } from "@gofundmeme/sdk";
import { Keypair } from "@solana/web3.js";

const creator = Keypair.generate(); // Replace with the actual creator Keypair

const payload = {
    token: {
        base64: "BASE64 (Image/Gif)",  // Base64 image of token logo
        name: "FairToken",
        symbol: "FAIR",
        description: "A fair and transparent launch",
        website: "https://fairtoken.io",
        twitter: "https://twitter.com/fairtoken",
        discord: "https://discord.gg/fairtoken",
        telegram: "https://t.me/fairtoken"
    },
    tokenomics: {
        supply: 1_000_000_000, // Total supply
        lpPercent: 40, // % for LP
        fundersPercent: 40, // % for funders
        allocations: [
            { name: "Marketing", percent: 10, destination: "3KgPZdBvh..." },
            { name: "Team", percent: 10, destination: "6KgQZzCvh..." }
        ]
    },
    campaignDurationHours: 3, // The campaign duration
    targetRaise: 30, // Target amount to raise in SOL
    amountIn: 10, // Initial SOL contribution
    network: NETWORK.MAINNET,
    creatorWalletAddress: creator.publicKey.toString()
};

(async () => {
    const createRequest = await gfmSDK.api.fairLaunch.createPool.request(payload);
    console.log("✍️ Sign the transaction:", createRequest.transaction);
})();
```

2️⃣ Sign & Process the Transaction

```typescript
const response = await createRequest.signAndConfirm({ creator });
console.log("✅ Fair Launch Pool Created!", response);
```

✅ Successful Response

```json
{
  "mintAddress": "9sHjdJkP6Yo...",
  "txid": "9jasdg67dsga7...",
  "pool": {
    ...
  }
}
```

### 📌 Fair Launch Pool API Methods

| Method                                                     | Description                          |
| ---------------------------------------------------------- | ------------------------------------ |
| gfmSDK.api.fairLaunch.createPool.request(payload)          | Initiates the pool creation request. |
| createRequest.signAndConfirm({ creator })                  | Signs and submits the transaction.   |
| gfmSDK.api.pools.fairLaunch.fetchFairLaunchPool({ mintB }) | Fetches the pool details.            |

### 🔍 Comparison of Bonding Curve vs Fair Launch Pools

| Feature           | Bonding Curve Pool            | Fair Launch Pool        |
| ----------------- | ----------------------------- | ----------------------- |
| Price Mechanism   | Dynamic price discovery       | Fixed pricing           |
| Fundraising Model | Continuous token issuance     | Fixed sale period       |
| Use Cases         | AMM-style trading             | Community-driven raises |
| Target Audience   | Traders & Liquidity Providers | Investors & Communities |
| Timeframe         | No expiration                 | Set campaign duration   |

### 🔌 Error Handling & Debugging

Here are some common errors and how to fix them:

| Error                                                       | Solution                               |
| ----------------------------------------------------------- | -------------------------------------- |
| Token name too long (Up to 30 characters)                   | Shorten the token name.                |
| Token symbol too long (Up to 8 characters)                  | Use a shorter symbol.                  |
| Supply must be between 10,000,000 and 1,000,000,000,000,000 | Adjust token supply.                   |
| Amount in must be between 0 SOL - 70 SOL                    | Ensure SOL contribution is valid.      |
| Total token allocation percent must equal 100%              | Adjust allocations to sum to 100%.     |
| Duration hours missing                                      | Specify campaignDurationHours.         |
| Incorrect signer                                            | Ensure the correct Keypair is signing. |

### 🎯 Final Summary

| Pool Type       | Method                                    | Description                     |
| --------------- | ----------------------------------------- | ------------------------------- |
| Bonding Curve   | createPool.request(payload)               | Starts pool creation            |
| Bonding Curve   | createRequest.signAndConfirm({ creator }) | Signs & submits                 |
| Fair Launch     | createPool.request(payload)               | Starts pool creation            |
| Fair Launch     | createRequest.signAndConfirm({ creator }) | Signs & submits                 |
| Fetching a Pool | fetchBondingCurvePool({ mintB })          | Retrieves Bonding Curve details |
| Fetching a Pool | fetchFairLaunchPool({ mintB })            | Retrieves Fair Launch details   |


# WebSockets


# Subscriptions

## 📡 Subscriptions API

The GoFundMeme SDK provides a WebSocket-based subscription system that allows real-time updates for Fair Launches, Bonding Curve swaps, Market Capitalization changes, Pool State updates, and more.

With *gfmSDK.api.subscription*, developers can efficiently listen to live events without polling.

### 🔥 Key Features

✔️ Real-Time Pool State Updates – Get notified when a pool’s status changes.

✔️ Live Market Cap Updates – Track the market cap of a token dynamically.

✔️ Bonding Curve Swaps – Receive buy/sell events in real-time.

✔️ Fair Launch Funding Events – Monitor funding and defunding actions.

✔️ New & Migrated Pools – Be alerted when a pool is created or migrated.

✔️ Seamless Disconnection – Easily unsubscribe when needed.

📜 How to Use Subscriptions

<br>

To start listening to real-time events, you can use the gfmSDK.api.subscription object and call one of the available listeners.

### 🚀 Quick Example

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

const connection = new Connection("https://api.mainnet-beta.solana.com");

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

    // Listen for funding events on Fair Launch pools in Mainnet
    const listener = gfmSDK.api.subscription.fairLaunch.funding.all(NETWORK.MAINNET);

    listener.subscription.subscribe((event) => {
        console.log("📡 Fair Launch Funding Event:", event);
    });
})();
```

🛠️ Explanation:

1️⃣ Initialize the SDK with a Solana RPC connection.

2️⃣ Subscribe to a WebSocket event (gfmSDK.api.subscription.fairLaunch.funding.all).

3️⃣ Log incoming events in real time.

📡 Available Subscription Methods<br>

***

## 1️⃣ Pool State Updates

Listens for pool state changes, such as raising, launching, or launched.

Subscribe by Network

```typescript
const listener = gfmSDK.api.subscription.poolState.all(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 Pool State Update:", event));
```

Subscribe by Mint Address

```typescript
const listener = gfmSDK.api.subscription.poolState.byMintAddress("YOUR_MINT_ADDRESS");
listener.subscription.subscribe((event) => console.log("📡 Pool State Update:", event));
```

📌 Event Type:

```typescript
type PoolStateEvent = {
    status: PoolStatus;
    totalRaised: number;
    raisePercent: number;
    token: TokenInfo;
    pool: PoolInfo;
    raiseType: RaiseType;
    dexType: DexType;
    network: NETWORK;
}
```

***

## 2️⃣ Market Cap Updates

Tracks market capitalization changes in real-time.

Subscribe by Network

```typescript
const listener = gfmSDK.api.subscription.marketcap.all(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 Market Cap Update:", event));
```

Subscribe by Mint Address

```typescript
const listener = gfmSDK.api.subscription.marketcap.byMintAddress("YOUR_MINT_ADDRESS");
listener.subscription.subscribe((event) => console.log("📡 Market Cap Update:", event));
```

📌 Event Type:

```typescript
type MarketcapUpdateEvent = {
    network: NETWORK;
    mintAddress: string;
    mcSOL: number;
}
```

***

## 3️⃣ Bonding Curve Swaps

Listens for buy and sell transactions on Bonding Curve pools.

Subscribe by Network

```typescript
const listener = gfmSDK.api.subscription.bondingCurve.swaps.all(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 Swap Event:", event));
```

Subscribe by Mint Address

```typescript
const listener = gfmSDK.api.subscription.bondingCurve.swaps.byMintAddress("YOUR_MINT_ADDRESS");
listener.subscription.subscribe((event) => console.log("📡 Swap Event:", event));
```

📌 Event Type:

```typescript
type SwapEvent = {
    direction: 'buy' | 'sell';
    solAmountChange: number;
    tokenAmountChange: number;
    price: number;
    pooledSOL: number;
    targetSOL: number;
    poolAddress: string;
    funderAddress: string;
    mintAddress: string;
    txid: string;
}
```

***

## 4️⃣ Fair Launch Funding Events

Tracks contributions (funding) and withdrawals (defunding) from Fair Launch pools.

Subscribe by Network

```typescript
const listener = gfmSDK.api.subscription.fairLaunch.funding.all(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 Funding Event:", event));
```

Subscribe by Mint Address

```typescript
const listener = gfmSDK.api.subscription.fairLaunch.funding.byMintAddress("YOUR_MINT_ADDRESS");
listener.subscription.subscribe((event) => console.log("📡 Funding Event:", event));
```

📌 Event Type:

```typescript
type FundingEvent = {
    direction: 'fund' | 'defund';
    solAmountChange: number;
    pooledSOL: number;
    targetSOL: number;
    poolAddress: string;
    funderAddress: string;
    mintAddress: string;
    txid: string;
}
```

***

## 5️⃣ New & Migrated Pools

These subscriptions notify you when a pool is created or migrated.

New Pools (All Networks)

```typescript
const listener = gfmSDK.api.subscription.pool.newPools(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 New Pool Created:", event));
```

Migrated Pools (All Networks)

```typescript
const listener = gfmSDK.api.subscription.pool.migratedPools(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 Pool Migrated:", event));
```

📌 Event Type:

```typescript
type PoolStateEvent = {
    status: PoolStatus;
    totalRaised: number;
    raisePercent: number;
    token: TokenInfo;
    pool: PoolInfo;
    raiseType: RaiseType;
    dexType: DexType;
    network: NETWORK;
}
```

***

## 🔌 Unsubscribing & Disconnecting

You can unsubscribe from a specific subscription or disconnect from all WebSocket events.

Unsubscribe from a Specific Event

```
const listener = gfmSDK.api.subscription.fairLaunch.funding.all(NETWORK.MAINNET);
listener.subscription.subscribe((event) => console.log("📡 Funding Event:", event));

// After 30 seconds, unsubscribe
setTimeout(() => {
    console.log("🔌 Disconnecting from funding events...");
    listener.disconnect();
}, 30000);
```

Disconnect from All Subscriptions

```
gfmSDK.api.subscription.disconnectAll();
console.log("🚫 All WebSocket connections closed.");
```

***

## 🎯 Final Summary

| Subscription Type   | Method                                                                         |
| ------------------- | ------------------------------------------------------------------------------ |
| Pool State Updates  | poolState.all(network), poolState.byMintAddress(mintAddress)                   |
| Market Cap Updates  | marketcap.all(network), marketcap.byMintAddress(mintAddress)                   |
| Bonding Curve Swaps | bondingCurve.swaps.all(network), bondingCurve.swaps.byMintAddress(mintAddress) |
| Fair Launch Funding | fairLaunch.funding.all(network), fairLaunch.funding.byMintAddress(mintAddress) |
| New Pools           | pool.newPools(network)                                                         |
| Migrated Pools      | pool.migratedPools(network)                                                    |
| Unsubscribe         | listener.disconnect()                                                          |
| Disconnect All      | gfmSDK.api.subscription.disconnectAll()                                        |

🚀 Instant Updates – No need for manual polling!

⚡ Efficient WebSockets – Optimized real-time data streams.

🔗 Simple API – Easy to integrate, minimal effort required.


