> ## 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.

# Deposit Addresses

> One permanent address that accepts any token and delivers the token you chose.

Give each user an address that never expires. They send any supported token from any supported chain, and you receive the token you configured, on the chain you configured, in the wallet you configured. No swap interface, no wallet connection, and no approvals.

## How it works

<Steps>
  <Step title="Get a deposit address from a quote">
    Request a [quote](/integration/quote-api#deposit-address-mpsdeposit) with `mpsDeposit: true` and a `destinationAddress`, then read `mpsDepositAddress` off an eligible quote. It is a deterministic address on the source chain of that quote, permanent and reusable for the same recipient.
  </Step>

  <Step title="The user deposits">
    Show the address to your user. They send the input token on the source chain, with no signature and no transaction to build.
  </Step>

  <Step title="Mayan detects and settles">
    The deposit is detected and its USD value checked. The user's smart wallet is deployed the first time only, then the swap executes through Mayan.
  </Step>

  <Step title="Funds delivered">
    The destination token arrives at the destination wallet on the destination chain, and the swap reaches `status: "completed"`.
  </Step>
</Steps>

Track every step in real time through [events](/payment-service/events), or by polling the [`/swaps`](/payment-service/api-reference#list-swaps) endpoint.

## Key concepts

* **Deterministic and permanent addresses.** The same parameters always produce the same address. Addresses never expire and can be reused for repeat payments from the same user.
* **One address, many chains.** An EVM deposit address is valid on every supported EVM chain; quote from an EVM source chain to get it. A Solana source quote returns a Solana vault that accepts native SOL as well as SPL and Token-2022 deposits, where SOL, USDC, USDT, WETH and WSOL are auto-detected.
* **Any token in, one token out.** Users pay in whatever they hold, and you always receive the destination token you configured. Common tokens are detected automatically, and anything else can be indexed on demand.
* **Structured, real-time lifecycle.** A single `status_changed` event stream reports progress, retries, success, and terminal failure, each with a stable [error model](/payment-service/api-reference#errors).

## Supported chains

Deposits are accepted on a fixed set of source chains, and settle to any chain Mayan supports as the destination. Chains are identified by their **Wormhole chain ID** (the EVM chain ID is shown for reference only).

### Deposit (source) chains

| Chain     | Wormhole chain ID | EVM chain ID | Native token |
| --------- | ----------------- | ------------ | ------------ |
| Solana    | 1                 | n/a          | SOL          |
| Ethereum  | 2                 | 1            | ETH          |
| BSC       | 4                 | 56           | BNB          |
| Polygon   | 5                 | 137          | POL          |
| Avalanche | 6                 | 43114        | AVAX         |
| Arbitrum  | 23                | 42161        | ETH          |
| Optimism  | 24                | 10           | ETH          |
| Base      | 30                | 8453         | ETH          |
| Monad     | 48                | 143          | MON          |

### Destination chains

The destination (`destChain`) can be any chain Mayan supports, including chains beyond the deposit set above. See [Chains & Contracts](/resources/chains-contracts) for the full list.

<Warning>
  Always pass the **Wormhole chain ID** in `destChain` and read it in `chainId`. Base is `30`, not `8453`. Passing an EVM chain ID will produce a different, wrong deposit address or be rejected.
</Warning>

## Supported tokens

A deposit address can receive any token, but the scanner auto-detects and settles this whitelist per source chain with no action from you. `Min deposit` is in the token's own units, and a deposit below it is detected but not settled.

| Chain     | Token | Contract / mint address                        | Min deposit |
| --------- | ----- | ---------------------------------------------- | ----------- |
| Solana    | SOL   | native (`11111111111111111111111111111111`)    | 0.02        |
| Solana    | USDC  | `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | 3           |
| Solana    | USDT  | `Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` | 3           |
| Solana    | WETH  | `7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs` | 0.002       |
| Solana    | WSOL  | `So11111111111111111111111111111111111111112`  | 0.02        |
| Ethereum  | ETH   | native                                         | 0.004       |
| Ethereum  | USDC  | `0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48`   | 10          |
| BSC       | BNB   | native                                         | 0.01        |
| BSC       | USDC  | `0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d`   | 3           |
| Polygon   | POL   | native                                         | 200         |
| Polygon   | USDC  | `0x3c499c542cef5e3811e1192ce70d8cc03d5c3359`   | 3           |
| Avalanche | AVAX  | native                                         | 1           |
| Avalanche | USDC  | `0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e`   | 3           |
| Arbitrum  | ETH   | native                                         | 0.002       |
| Arbitrum  | USDC  | `0xaf88d065e77c8cc2239327c5edb3a432268e5831`   | 3           |
| Optimism  | ETH   | native                                         | 0.002       |
| Optimism  | USDC  | `0x0b2c639c533813f4aa9d7837caf62653d097ff85`   | 3           |
| Base      | ETH   | native                                         | 0.002       |
| Base      | USDC  | `0x833589fcd6edb6e08f4c7c32d4f71b54bda02913`   | 3           |
| Monad     | MON   | native                                         | 200         |
| Monad     | USDC  | `0x754704bc059f8c67012fed69bc8a327a5aafb603`   | 3           |

<Note>
  On Solana, **SOL** and **WSOL** are separate entries. `SOL` is native lamports sent to the vault address, and `WSOL` is the wrapped-SOL SPL token. Both are auto-detected, but they are different balances, so use the address matching what you actually send.
</Note>

The table above is a convenience snapshot. The authoritative, live list, with current per-token minimums, is [`GET /source-config`](/payment-service/api-reference#source-config). Poll it rather than hardcoding, and surface each token's `minDeposit` to your users before they pay.

<Note>
  **Need another token whitelisted?** Email [support@mayan.finance](mailto:support@mayan.finance) with the chain and token contract, and we add tokens in under 12 hours, 24/7. Until then, any other token can still be settled on demand via [`POST /request-index`](/payment-service/api-reference#request-index), which sweeps the wallet's balance and settles it if Mayan can route the token.
</Note>

## Getting access

You need an API key, a UUID, to call the tracking API, connect to the event stream, and log in to the [MPS panel](https://mps.mayan.finance). Getting a deposit address from a quote works without one. To request a key, email [support@mayan.finance](mailto:support@mayan.finance) or reach the team in [Discord](https://discord.com/invite/MayanFinance).

<Tip>
  **Want to try it right away?** Use the shared demo key:

  ```
  03b9969f-7c6a-4bd1-9ad4-c0e0e9f3dcb7
  ```

  It works with every example in these docs. It is public and shared by everyone, so use it only for evaluation, and request your own key for anything beyond testing.
</Tip>

A web dashboard is also available at [mps.mayan.finance](https://mps.mayan.finance). Log in with your API key to browse generated addresses and settlement statuses.

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/payment-service/quickstart">
    Get your first deposit address from a quote and receive events end to end.
  </Card>

  <Card title="API Reference" icon="code" href="/payment-service/api-reference">
    Every endpoint, request and response shape, and the structured error model.
  </Card>

  <Card title="Swap Statuses" icon="list-check" href="/payment-service/statuses">
    The full status lifecycle, covering phase, category, terminal, and retries.
  </Card>
</CardGroup>
