# memez\_config

<mark style="color:yellow;">set\_public\_key -</mark> allows the admin to set a public key address to verify signatures for protected pools. It is one per configuration.

```rust
public fun set_public_key<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    public_key: vector<u8>,
    _ctx: &mut TxContext,
) 
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with the new public key.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.
* **`public_key: vector<u8>`**\
  The new public key (as raw bytes) to be set in the configuration.\
  It is used for verifying signatures in the Memez system.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.<br>

<mark style="color:yellow;">set\_fees -</mark> allows the admin to set the fees for a configuration. This includes: creation, meme swap, quote swap, allocation and migration fee values.

```rust
public fun set_fees<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    values: vector<vector<u64>>,
    recipients: vector<vector<address>>,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with new fee settings.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.
* `values: vector<vector<u64>>`\
  A nested vector of fee values, expressed in basis points or absolute units.\
  Defines the fee structure to apply across different pools or operations.
* **`recipients: vector<vector<address>>`**\
  A nested vector of recipient addresses corresponding to each fee value.\
  Specifies how fees are distributed among multiple beneficiaries (e.g., treasury, referrers, liquidity providers).
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.<br>

<mark style="color:yellow;">set\_meme\_referrer\_fee -</mark> allows the admin to set fee that will be shared with a referrer address during meme coin swaps. It is in basis points.

```rust
public fun set_meme_referrer_fee<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    fee: u64,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with a new meme referrer fee setting.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.\
  Ensures only governance or privileged accounts can modify referrer fees.
* **`fee: u64`**\
  The new referrer fee value, expressed in basis points. Determines the portion of each meme trade allocated to the referrer.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.<br>

<mark style="color:yellow;">set\_quote\_referrer\_fee -</mark> allows the admin to set fee that will be shared with a referrer address during quote coin swaps. It is in basis points.

```rust
public fun set_quote_referrer_fee<ConfigWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    fee: u64,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config being updated with a new meme referrer fee setting.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to update the Memez configuration.\
  Ensures only governance or privileged accounts can modify referrer fees.
* **`fee: u64`**\
  The new referrer fee value, expressed in basis points. Determines the portion of each meme trade allocated to the referrer.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">remove -</mark> allows the admin to remove the values of a configuration.

```rust
public fun remove<ConfigWitness, Model: drop + store>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _ctx: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is authorized to remove a Memez configuration.\
  Ensures only governance or privileged accounts can perform this destructive action.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">add\_quote\_coin -</mark> whitelists a quote coin for a specific configuration.

```rust
public fun add_quote_coin<ConfigWitness, Quote>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">remove\_quote\_coin -</mark> removes a quote coin from the whitelist of a specific configuration.

```rust
public fun remove_quote_coin<ConfigWitness, Quote>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">add\_migrator\_witness -</mark> whitelists a migrator witness for a specific configuration.

```rust
public fun add_migrator_witness<ConfigWitness, MigratorWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.

<mark style="color:yellow;">remove\_migrator\_witness -</mark> removes a migrator witness from the whitelist of a specific configuration.

```rust
public fun remove_migrator_witness<ConfigWitness, MigratorWitness>(
    self: &mut MemezConfig,
    _: &AdminWitness<MEMEZ>,
    _: &mut TxContext,
)
```

**Arguments:**

* **`self: &mut MemezConfig`**\
  A mutable reference to the Memez global configuration object.\
  This is the config instance being removed.
* **`_: &AdminWitness<MEMEZ>`**\
  An admin witness proving that the caller is an admin.
* **`_ctx: &mut TxContext`**\
  A mutable reference to the transaction context provided by the Sui blockchain.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.interestprotocol.com/overview/sui/memez.gg/memez.fun/contract/memez_config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
