> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mayan.finance/llms.txt
> Use this file to discover all available pages before exploring further.

# Referral Program

> The Mayan Referrer Program lets Integrators of the Mayan SDK and widget earn referral fees on transactions by setting their wallet address as the referrer.

Each bridging method within the Mayan protocol has its own referral fee behavior and collection mechanism. This document explains how referral fees work across all methods and how to configure them in the SDK.

***

## **Swift V1 (will deprecated in favour of V2)**

**Fee Collection**

* Fees are collected on the **destination chain** only if the bridge is successfully completed.
* Collected via the **output token**.

**Fee Rate**

* **From Solana:** up to **100 bps**
* **From other chains:** up to **50 bps**

***

## **Swift V2**

**Fee Collection**

* Fees are collected on the **source chain** once the bridge is successfully completed.
* Collected via the **locked assets** (e.g., USDC, ETH).

**Fee Rate**

* Maximum referral fee for all chains: **100 bps**

***

## **MCTP Method**

**Fee Collection**

* Fees are collected on the **destination chain** only if:
  1. The bridge includes a **swap on the destination chain**. (e.g., USDC → USDC transfers have no fee)
  2. The bridge completes **successfully**.
* Fees are collected in the **Circle-issued stablecoin** minted during bridging (USDC or EURC).

**Fee Rate**

* Maximum referral fee:
  * **From Solana:** up to **100 bps**
  * **From other chains:** up to **50 bps**

***

## **FastMCTP Method**

**Fee Collection**

* Fees are collected on the **destination chain** only if the bridge is successfully completed.
* Unlike MCTP, the existence of a swap on the destination chain **does not matter**.
* Fees are collected in the **Circle-issued stablecoin** (USDC or EURC).

**Fee Rate**

* Maximum referral fee for all chains: **100 bps**

***

## **WH Method**

**Fee Collection**

* All referral fees are received on the **Solana chain**.
* Fees are only distributed if the **bridge is successfully completed** and **includes a swap**.\
  (Example: a bridge from Ethereum → Solana where ETH is swapped to WETH will **not** generate referral fees.)
* The fees are collected in the **output token** and automatically transferred to the **referrer Solana address**.

**Fee Rate**

* The **default referral fee rate** is **10 bps (0.1%)**.
* Referrers can configure their preferred rate from **0 to 50 bps**.
* Use the [Referrer Fee Management](https://explorer.mayan.finance/referrer-fee) page to set your on-chain referral fee.
* You must specify a **valid Solana wallet address** as your referral address.

***

## **General Rules**

* For all methods **except WH**, you can set your referral fee rate by including `referrerBps` in the quote request parameters.
* For all methods **except Swift V2 with EVM source chains**, referral fees are **automatically transferred** to the referrer’s address.
* For **Swift V2 (EVM source)** orders:
  * Referral fees are **deposited into the fee manager contract**.
  * Referrers can **withdraw** them using their address signature.

***

## **How to Enable Referral Fees in the SDK**

### Step 1 — Prepare Referrer Addresses

You must prepare a referral address for each VM type:

```text theme={null}
const referrerAddresses = {
  solana: 'VALID_SOLANA_WALLET_ADDRESS',
  evm: 'VALID_EVM_WALLET_ADDRESS',
  sui: 'VALID_SUI_WALLET_ADDRESS'
};
```

### Step 2 — During Quote Fetching

* Always pass your **Solana referral address** as the `"referrer"` parameter.
* Set your desired referral fee (in bps) as `"referrerBps"`.
* **Note:** Always use the Solana address as your referrer, regardless of source or destination chain (even for EVM → EVM routes).

```text theme={null}
const quote = await fetchQuote({
  ...
  referrer: referrerAddresses.solana,
  referrerBps: 25, // example: 25 bps = 0.25%
  ...
});
```

### Step 3 — During Transaction Building

All transaction or bridge functions in the SDK accept an optional `referrerAddresses` parameter:

```text theme={null}
type ReferrerAddresses = {
  solana: string;
  evm: string;
  sui: string;
};
```

Always pass the **full object** prepared in Step 1.\
The SDK will automatically determine which wallet to use based on the selected bridge method, source, and destination.

This ensures referral fees are correctly routed, regardless of the bridge type or source/destination chains.

***

<Warning>
  Please note that your Solana referrer address must have associated token accounts (ATAs) for USDC, USDT, and WETH. You can create these ATAs by sending a small (dust) amount of each SPL token to your referrer address.

  If these ATAs are not initialized, you may lose your referral bps.

  SPL token mint addresses:

  * USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
  * USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
  * WETH: 7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs
</Warning>

<Info>
  Please check [Mayan SDK](https://github.com/mayan-finance/swap-sdk) and [widget](/integration/swap-widget) to see how you can set your referrer address
</Info>
