# Welcome

Welcome to the MimbleWimble DAO documentation! Here, if you're lucky, you can find answers to your questions—assuming you can actually read :sob:

Please head over to the [Support](/support/how-to-get-help) section for assistance.


# MWDAO bridge

This bridge (<https://bridge.mwdao.xyz/>) was designed to make it as easy as possible for users to obtain testnet MONAD tokens by paying with ETH, USDT, or USDC on the Arbitrum One network.

<figure><img src="/files/AoRSw54O76F7TNetVlaR" alt=""><figcaption><p><a href="https://bridge.mwdao.xyz/">https://bridge.mwdao.xyz/</a></p></figcaption></figure>

The idea behind this bridge didn’t come out of nowhere—getting test MONAD tokens from a faucets is notoriously difficult, so we created a more convenient solution.

The price of MONAD test tokens is dynamically calculated based on several factors, including:

1. **Current Demand & Supply** – The system adjusts pricing based on available reserves and user activity.
2. **Exchange Rate Updates** – The conversion rate for ETH, USDT, and USDC is determined in real-time.
3. **Network Conditions** – High congestion may influence the final cost.

For the most accurate pricing, refer to the UI or check the [Developers](/bridge/mwdao-bridge/developers) section for integration details.


# Limits

To ensure that all users have a smooth and positive experience with our bridge, we have implemented certain limits.

Please review them carefully.

### Limit on the Maximum Single Purchase of MON

The limit is calculated automatically based on the current faucet load and available reserves.

* **Frontend Users:** The UI will dynamically display the limits you cannot exceed.
* **Developers:** Please refer to the **Developers** section and review the documentation for more details.

### Minimum Purchase Limit for $ETH, $USDC, $USDT

* **Frontend Users:** The UI will automatically display the minimum purchase limits for each supported currency.
* **Developers:** If interacting via code, please be mindful of these limits and refer to the [Developers](/bridge/mwdao-bridge/developers) section for detailed information.


# Contracts

### Depositor contracts

#### Arbitrum One:

[0xb8283440bBA1679a3aB29f91008bf5a49FdC5b54](https://arbiscan.io/address/0xb8283440bba1679a3ab29f91008bf5a49fdc5b54)

#### Base:

[0xdd7c00ef6759a434d413c690f3d3b1d313f4be55](https://basescan.org/address/0xdd7c00ef6759a434d413c690f3d3b1d313f4be55#readContract)

#### Optimism:

[0xdd7c00ef6759a434d413c690f3d3b1d313f4be55](https://optimistic.etherscan.io/address/0xdd7c00ef6759a434d413c690f3d3b1d313f4be55#code)

This contracts accepts deposits, issues refunds when necessary, and enforces a minimum deposit limit, reverting transactions that fall below it.

### Monad testnet distributor contract:

[0xc11350Fd29aC48181b0117bd1935dBE781cdd03d](https://testnet.monadexplorer.com/address/0xc11350Fd29aC48181b0117bd1935dBE781cdd03d?portfolio=Info\&tab=Contract)

This contract distributes test MONAD testnet tokens based on the corresponding deposit made on the Arbitrum One network and is managed through our private relayer.

All contracts are verified. You can review the source code and find the ABI using the links above in the corresponding explorer. 🫡


# Developers

If you're reading this section, you’re likely looking to automate the process of obtaining test MONAD tokens.

Please read this page carefully. If anything is unclear, feel free to join our [Discord](/support/how-to-get-help) for further assistance.

### **Info Endpoint:**

`GET https://api.mwdao.xyz/bridge/api/v1/info`

This endpoint provides information about the bridge's current exchange rates, limits, and status.

#### **Response Format (JSON)**

```
{
  "exchangeRate": {
    "ETH": "0.000094",
    "USDC": "0.170000",
    "USDT": "0.170000"
  },
  "faucetReserve": "7.006998",
  "faucetWorking": true,
  "limitType": "per transaction",
  "walletLimit": "2.102099"
}

```

#### **Response Parameters**

#### **Exchange Rates**

The `exchangeRate` object defines the cost of **1 MONAD** in various currencies:

* `"ETH": "0.000094"` → 1 MONAD = 0.000094 ETH
* `"USDC": "0.170000"` → 1 MONAD = 0.17 USDC
* `"USDT": "0.170000"` → 1 MONAD = 0.17 USDT

#### **Faucet Reserve**

* `"faucetReserve": "7.006998"` → The total remaining MONAD tokens in the faucet.

#### **Faucet Status**

* `"faucetWorking": true` → Indicates whether the faucet is currently active.

#### **Transaction Limits**

* `"limitType": "per transaction"` → The limit is enforced on a per-transaction basis.
* `"walletLimit": "2.102099"` → The maximum amount of MONAD that a single wallet can receive in one transaction.

***

#### **Usage Recommendations**

1. **Before making a deposit**, check the `exchangeRate` values to calculate how much MONAD you will receive.
2. **Ensure the faucet is working** (`faucetWorking = true`) before initiating a transaction.
3. **Respect the limits** (`walletLimit`) to avoid reverts.
4. **Check minimum deposit limits** in depositor contract read functions.

### **Transaction Status Endpoint:**

`POST https://api.mwdao.xyz/bridge/api/v1/transaction/status`

This endpoint is used to check the status of a Monad bridge transaction by providing the **Arbitrum transaction hash**.

***

#### **Request Format**

#### **Method:**

`POST`

#### **Headers:**

```
{
  "Content-Type": "application/json"
}

```

#### **Body Parameters:**

```
{
  "source_tx": "<source transaction hash>"
}

```

`source_tx` (**string**) – The transaction hash from the source blockchain that initiated the bridge transfer. Format example: `0x6719c8b4e630adb0e3efe052d6f9d834ddffccd69f2c2c15198cb12a3ad21c6a`

#### **Response Format (JSON)**

```
{
  "status": "pending" | "processed" | "failed" | "not_found" | "refunded",
  "message": "<optional message>",
  "txs": {
    "source_tx": "<source transaction hash>",
    "destination_tx": "<destination transaction hash>"
  },
  "deposit_id": "<deposit ID>",
  "source_chain_id": <number>,
  "destination_chain_id": <number>,
  "error": "<error message>"
}
```

#### Response Parameters

* `status` (string) – Indicates the current status of the request. Possible values:
  * `pending`: The transaction is still being processed.
  * `processed`: The transaction has been successfully completed.
  * `failed`: The transaction encountered an error and could not be completed.
  * `not_found`: No transaction matching the provided hash was found.
  * `refunded`: The transaction has been refunded.
* `message` (string) – A descriptive message about the request outcome (e.g., "Transaction status retrieved successfully").
* txs (object) – Contains transaction hashes for both the source and destination:
  * `source_tx` (string): The original transaction hash provided in the request.
  * `destination_tx` (string) – The corresponding transaction hash on the destination blockchain after bridging.
* `deposit_id` (string) – A unique identifier for the deposit associated with this bridge transaction.
* source\_chain\_id (number): Numeric identifier for the source blockchain network.
* `destination_chain_id` (number): Numeric identifier for the destination blockchain network.
* `error` (string): Provides details about any error encountered during the request.

#### **Usage Recommendations**

1. **Poll the transaction status** every few seconds until a `"processed"` response is received.
2. **Set a maximum retry limit** (e.g., 3 minutes with 5-second intervals).
3. **Handle different statuses**:
   * `"processed"` → Show confirmation and provide the Monad transaction hash.
   * `"pending"` → Keep polling until the status changes.
   * `"failed"` → Notify the user and suggest troubleshooting steps.

### **Reading Limits from the Depositor Smart Contract**

The Depositor contract provides **view functions** to retrieve deposit limits and contract status.

#### **Available Functions:**

* `minEthDeposit() → uint256 (wei)` – Returns the **minimum deposit amount in ETH (in wei)**.
* `minUsdcDeposit() → uint256 (wei)` – Returns the **minimum deposit amount in USDC (in wei, with 6 decimals)**.
* `minUsdtDeposit() → uint256 (wei)` – Returns the **minimum deposit amount in USDT (in wei, with 6 decimals)**.
* `paused() → bool` – Returns `true` if the contract is **paused** (deposits are disabled), otherwise `false`.

Always **check `paused()`** before processing transactions.

### **Deposit Functions in the Smart Contract**

The Depositor contract allows users to deposit ETH, USDC, and USDT to receive test MONAD tokens based on the [current exchange rate](#info-endpoint). Each deposit function includes an metadata field for additional data, such as referral codes, which can be an empty string ("").

#### depositETH()

* Function Signature: `depositETH(string calldata metadata)`
* Description: Accepts ETH deposits (payable function).
* Parameters:
  * `metadata`: A string for additional data, such as a referral code. This field is optional and can be an empty string ("").
* Requirements:
  * The deposited ETH amount `msg.value` must meet or exceed the minimum deposit limit `minEthDeposit`.
  * The `metadata` string must not exceed 32 characters.

#### **depositUSDC()**

* Function Signature: `depositUSDC(uint256 amount, string calldata metadata)`
* Description: Accepts USDC deposits using `transferFrom()`.
* Parameters:
  * `amount`: The amount of USDC to deposit, specified in 6 decimals (e.g., 1 USDC = 1 \* 10^6 wei).
  * `metadata`: A string (up to 32 characters) for additional data, such as a referral code. This field is optional and can be an empty string ("").
* Requirements:
  * The sender must approve the contract to spend the specified amount of USDC beforehand.
  * The amount must meet or exceed the minimum deposit limit `minUsdcDeposit`.
  * The `metadata` string must not exceed 32 characters.

#### **depositUSDT()**

* Function Signature: `depositUSDT(uint256 amount, string calldata metadata)`
* Description: Accepts USDT deposits using `transferFrom()`.
* Parameters:
  * `amount`: The amount of USDT to deposit, specified in 6 decimals (e.g., 1 USDT = 1 \* 10^6 wei).
  * `metadata`: A string (up to 32 characters) for additional data, such as a referral code. This field is optional and can be an empty string ("").
* Requirements:
  * The sender must approve the contract to spend the specified amount of USDT beforehand.
  * The amount must meet or exceed the minimum deposit limit `minUsdtDeposit`.
  * The `metadata` string must not exceed 32 characters.

#### **Notes**

* Always check the **minimum deposit limits** before sending funds.
* For USDC/USDT deposits, **approval is required** before calling the deposit function.
* Transactions will **fail** if the deposit amount is below the minimum threshold.


# Bullas game analytics

[Bullas Analytics](https://bullas-live-queue.vercel.app/) provide real-time blockchain insights for the [Bullas Game](https://game.bullas.xyz/). These dashboards help users make better decisions before pressing buttons 🎮 in the game. The project was created purely for fun as an experiment with [*viem*](https://viem.sh/) and [*multicall3*](https://www.multicall3.com/). It fetches data from \~2600 addresses (with three requests each) in just a few seconds.

<figure><img src="/files/gTsOoKYWsEJdgd2I7Uon" alt=""><figcaption><p><a href="https://bullas-live-queue.vercel.app/">https://bullas-live-queue.vercel.app/</a></p></figcaption></figure>

<figure><img src="/files/7UBq3vmWYSuTVS34eyC4" alt=""><figcaption><p><a href="https://bullas-live-queue.vercel.app/pass-analytics">https://bullas-live-queue.vercel.app/pass-analytics</a></p></figcaption></figure>


# Berachain faucet (sunsetted)

A simple faucet was built to distribute test $BERA tokens on the Beraсhain Bartio to $MWD token holders. (archive link: <https://mwdao-bera-faucet.vercel.app/>).&#x20;

<figure><img src="/files/wOx4abQwKuZi0LheZO1B" alt=""><figcaption></figcaption></figure>


# Treasury

This page lists the wallet addresses holding collected donations for the **MimbleWimble DAO**.

### **Public Donation Wallets**

#### **EVM Address (Any Ethereum-Compatible Network)**

**0xe9BEf44a516A70cA83857927A1021D976F52dc4a**\
🔗 [Ownership Signature](https://etherscan.io/verifySig/38426)

#### **NEAR**

[**mwdao.near**](https://nearblocks.io/address/mwdao.near)\
🔗 [View on NEAR Explorer](https://nearblocks.io/address/mwdao.near)

#### **TON + Jettons**

**UQB\_kZAqI8azeB5Fzx5cmfiCPw2LyDIl5aeaJecMyIzK38eb**\
🔗 [View on TON Explorer](https://tonscan.org/address/UQB_kZAqI8azeB5Fzx5cmfiCPw2LyDIl5aeaJecMyIzK38eb)

#### **SOLANA**

**HtE8vyMfcGbg52MqHkzWWpvXh1DDKNVNTsUKp55EeHwE**\
🔗 [View on Solana Explorer](https://solscan.io/account/HtE8vyMfcGbg52MqHkzWWpvXh1DDKNVNTsUKp55EeHwE)

#### **MimbleWimble DAO Public Portfolio**

🔗 [View on Dropstab](https://dropstab.com/p/mimble-wimble-dao-rmh8gdhvq2)


# Whitelist Contributors

\[redacted]


# How to get help?

If you need assistance or have any questions in English, please visit our official Discord server:\
<https://discord.gg/grcNaeCY>

If you prefer to communicate in Russian, feel free to join our official Telegram chat:\
<https://t.me/MWDAO_Chat>


