# Fees

Memez.gg has a versatile fee mechanism enforced by the contracts. Each integrator is able to customize their fees parameters.

{% hint style="success" %}
The system supports 0 fees.
{% endhint %}

### <mark style="color:yellow;">Fee Mechanism</mark>

Depending on the fee, it can be defined in basis points percentage or in a nominal value.\
The fees are collected by the stake holders depending on how the configuration is set.

#### <mark style="color:blue;">Fees Configuration</mark>

Each fee below requires the following configuration:

* Fee Value&#x20;
* Address of fee recipients
* Percentage that each recipient should receive in basis points.

&#x20;If we set the **Creation Fee** to 2 Sui and the recipients to be the following: **Alice (20%)**, **Bob (50%)** and **Jose (30%).**&#x20;

At pool creation, the contract will automatically send **0.4 Sui to Alice**, **1 Sui to Bob** and **0.6 Sui to Jose**. The system supports **dynamic fee recipients** at pool creation and **system enforced ones** as well.\
\
For example, we can set that **20% of the creation fee always goes to the integrator**, while the rest of the **fees recipients are set dynamically at pool creation**.

* <mark style="color:blue;">**Creation:**</mark> This fee is collected when a pool is created and it is defined in a nominal value. It is always charged in Sui.&#x20;
* <mark style="color:blue;">**Meme Coin Swap:**</mark> This fee is collected on every swap and is defined in percentage in meme coin.&#x20;
* <mark style="color:blue;">**Quote Coin Swap:**</mark> This fee is collected on every swap and is defined in percentage in quote coin.&#x20;
* <mark style="color:blue;">**Migration:**</mark> This fee is charged in Sui from the liquidity being migrated in percentage.
* <mark style="color:blue;">**Allocation:**</mark> This fee is charged in meme coin after migration in percentage.

The fees configuration can be fetched via the SDK using the following [**method**](https://github.com/interest-protocol/sdk-monorepo/blob/main/packages/memez-fun-sdk/src/sdk.ts#L97)**.**

At pool creation, the caller can pass an [**array of stakeholders (Sui addresses)**](https://github.com/interest-protocol/sdk-monorepo/blob/main/packages/memez-fun-sdk/src/pump.ts#L94) to set dynamic fee recipients. This has to match the number of fees distribution set by the integrator.\
\
For example: if the integrator sets the creation fee to be **2 Sui and have 3 recipients** and **one recipient to always be the system**. The pool creator must pass two additional addresses dynamically.&#x20;

### <mark style="color:yellow;">Blast.fun Configuration</mark>

Blast.fun fees configuration has 4 system addresses that earn **migration and swap fees.**

* <mark style="color:yellow;">**Blast**</mark> 0xef4145dc8710cb56970a56607a1a36da6db655ddaf1991d9f3bc3d859a81cd42

| Creation  | Meme Swap   | Quote Swap | Migration  | Allocation  |
| --------- | ----------- | ---------- | ---------- | ----------- |
| **0 Sui** | &#x30;**%** | 1.2%       | **5%**     | &#x35;**%** |
|           |             | 80% Blast  | 100% Blast | 100% Blast  |
|           |             | 20% Dev    |            |             |

Blast.fun has two owned public addresses:

* <mark style="color:yellow;">**Treasury:**</mark> 0xaab6feadd3236ecc1b4fa34d00356f0f826f5e3d225818cb738ccdf77dcac979
* <mark style="color:yellow;">**Bluefin LP Manager:**</mark> 0x22441936a0d6fd21d07d596813dfa29fbc54d44b94eb87916fbcb51d639fde96
