Configuration

Overview

Memez.gg is highly configurable to facilitate third party integrations and revenue sharing.

Integrators can configure the following parameters:

  • Burner tax

  • Fees

  • Pump Configuration

  • Auction Configuration

  • Stable Configuration

During creation, the deployer can choose which configuration the pool will adhere to. E.g., user A could opt for the Default configuration, while user B opts for another.

Integrators need to request our team to add their configuration.

Burner

The Auction and Pump strategies have a burn tax built-in. This is a dynamic tax that increases linearly as the amount of Sui in the pool increases. It can range from 0 to 30%. This tax is only applied when one sells Meme coins for Sui. The coins are actually burnt (not sent to 0x0) as Memez uses the IPX Coin Standard for all meme coins. This is to prevent king of the hill griefing tactics. As the tax is quite high when it is close to bonding.

public struct MemezBurner has copy, drop, store {
    fee: BPS,
    start_liquidity: u64,
    target_liquidity: u64,
}
  • Fee: A percentage in bps to determine how much amount to burn.

  • Start Liquidity: The virtual liquidity at which the pool started at.

  • Target Liquidity: The liquidity required t migrate the pool.

Example

Burner tar Tax Formula

total_range = target_liquidity - start_liquidity

progress = current_liquidity - start_liquidity

tax = burner_tax * progress / total_range Example

Let's assume we have a pool using the Pump strategy with a Sui Target Amount of 1_000 Sui and a Burner tax of 20% of 2_000 basis points.

At t0: The pool has 0 Sui - burn tax would be 0%

Math:

total_range = 1_000

progress = 0

20% * 0 / 1000 ⇒ 0%

At t1: The pool has 800 Sui - burn tax would be 16%

Math:

total_range = 1_000

progress = 800

20% * 800/ 1000 ⇒ 16%

Fees

Memez.fun has 3 fees:

public struct FeePayload has copy, drop, store {
    value: u64,
    percentages: vector<u64>,
    recipients: vector<address>,
}

public struct MemezFees has copy, drop, store {
    creation: FeePayload,
    swap: FeePayload,
    migration: FeePayload,
}
  • Creation: Sui amount charged to create a meme coin + pool

  • Swap: % charged on every sell or buy.

  • Migration: Sui amount charged during the migration

The integrator can decide the total amount of each fee and the number of recipients per fee. It is possible to charge no fees at all and different percentages and recipients per fee. The swap and migration fee include the deployer as one of the recipients if chosen by the integrator.

For example an integrator can decide to have:

  • Creation Fee of 2 Sui:

    • 20% to X

    • 60% to Y

    • 20% to Z

  • No Swap fee

  • Migration Fee of 200 Sui:

    • 50% to A

    • 50% to B

Pump Configuration

The pump strategy has 4 configurable parameters:

public struct PumpModel has copy, drop, store {
    burn_tax: u64,
    virtual_liquidity: u64,
    target_sui_liquidity: u64,
    liquidity_provision: BPS,
}
  • Burn Tax: The burner tax explained above

  • Virtual Liquidity: The floor price of the Meme coin as determined by a virtual Sui amount

  • Target Sui Liquidity: The amount of Sui the pool must collect to migrate. It can be seen as a target price.

  • Liquidity Provision: Percentage of Meme coin to be used to seed the liquidity pool during migration.

Auction Configuration

The pump strategy has 7 configurable parameters:

public struct AuctionModel has copy, drop, store {
    auction_duration: u64,
    dev_allocation: BPS,
    burn_tax: u64,
    virtual_liquidity: u64,
    target_sui_liquidity: u64,
    liquidity_provision: BPS,
    seed_liquidity: BPS,
}
  • Burn Tax: The burner tax explained above

  • Dev Allocation: Percentage of meme coin the deployer should get.

  • Auction Duration: How long should the auction last.

  • Virtual Liquidity: The floor price of the Meme coin as determined by a virtual Sui amount

  • Target Sui Liquidity: The amount of Sui the pool must collect to migrate. It can be seen as a target price.

  • Seed Liquidity: Percentage of meme coin that the pool should start with at the beginning of the auction.

  • Liquidity Provision: Percentage of Meme coin to be used to seed the liquidity pool during migration.

Stable Configuration

The pump strategy has 3 configurable parameters:

public struct StableModel has copy, drop, store {
    max_target_sui_liquidity: u64,
    liquidity_provision: BPS,
    meme_sale_amount: BPS,
}
  • Max Target Sui Liquidity: The maximum amount of liquidity the deployer can raise.

  • Liquidity Provision: Percentage of Meme coin to be used to seed the liquidity pool during migration.

  • Meme Sale Amount: Percentage of Meme coin to sell during the bonding phase.

Move Dependencies

Interest BPS

It is an utility library to calculate percentages from values using basis points. It is referred as BPSin the code blocks.

IPX Coin Standard

It is an utility library designed to separate the capabilities of the treasury cap (mint/burn/update) to provide the owner more granular control.

Last updated