Desk

Canonical

WMON: the canonical reference for Wrapped MON on Monad mainnet

WMON is the only wrapped asset Monad issues itself. It is MON in ERC-20 form, one for one, and every pool on this desk is a pool against it. This page is the contract, the interface, the bridge note, and every way the coin is misused.

MONAF Blog · 27 October 2026 · 42 min

This is the MONAF canonical reference for WMON on Monad mainnet, chain id 143, as of 27 October 2026. The Monad docs split assets into two families. Bridged assets are issued somewhere else and brought across. Natively issued assets are born here. WMON is in the second family, and on that page it is the entry. The mainnet network-information page lists the same contract under canonical contracts as Wrapped MON. Uniswap’s Monad deployment page names it the wrapped native token, the role WETH plays on Ethereum and WMATIC played on Polygon. If a later commit of monad-crypto/token-list changes the address, believe the list. Do not believe a ticker in a wallet until the address matches.

Identity card

Name: Wrapped MON. Symbol: WMON. Address: 0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A. Decimals: 18. Standard: WETH9. One human WMON is 1e18 raw units, the same scale as one MON in wei. Chain: Monad Mainnet, 143. Explorers: MonadVision and Monadscan. Logo, as published in the token list: the WMON svg in that repo. There is no fee inside the wrapper. There is no oracle. The rate to native MON is one, enforced by the contract holding the MON it has minted against, which is the WETH9 invariant: totalSupply equals the native balance of the contract. If those two numbers ever differ, stop and read the contract you actually called. You are not on this one.

The interface, function by function

deposit() is selector 0xd0e30db0. It is payable and takes no arguments. The MON attached as value is credited to the caller as WMON, one wei to one raw unit. A wallet that shows a plain MON transfer to the contract with no calldata is often this function. A wallet that shows a transfer of some other token to the same address is a donation. withdraw(uint256) is selector 0x2e1a7d4d. The argument is raw WMON. The contract burns it and sends the same number of wei to the caller as native MON. Classic WETH9 withdraw does not take a recipient. A prompt that asks you to type a destination into withdraw is a different function, possibly a different contract.

The rest is ERC-20. name, symbol, decimals, totalSupply, balanceOf, allowance, approve, transfer, transferFrom. Deposit and Withdrawal are the events that mark a wrap and an unwrap. Transfer marks movement of the already-wrapped token, which does not change the amount of MON locked. approve does not move value. It lets a spender, usually a router, pull WMON later. Infinite approvals are a habit. An approval of the amount you are about to swap is enough, and it is the one this desk requests.

deposit locks MON and mints WMON. withdraw burns WMON and returns MON. transfer moves the wrapper and does not touch the lock.

Why every pool speaks WMON

A v3-style pool holds two ERC-20s. Native MON cannot sit in a pool except by being wrapped first. PancakeSwap’s router on this desk, 0x21114915Ac6d5A2e156931e20B20b038dEd0Be7C, and Uniswap’s Monad deployment both treat 0x3bd3…433A as that wrapped native. The pools this desk marks are all WMON pairs: WETH at 0xB02793FE655C1169A8699B4ee462F8Ac9c75E402, WBTC at 0x0944526D2727B532653E6Ca6c4D980461E170a09, cbBTC at 0x614B85502B89540Bb79bE98d5429EC032A78A284, USDC at 0x63e48B725540A3Db24ACF6682a29f877808C53F2. Fee tier on each of those is 500, 0.05 percent. A swap whose path says WMON and whose pool is not one of these is a different market. The ticker will not tell you that. The pool address will.

A hop between two non-MON assets is two of these pools. USDC to WBTC is USDC to WMON, then WMON to WBTC. You pay the fee twice. You do not unwrap in the middle. The WMON is inside the router for the length of the transaction. Gas is a separate matter. The signer pays gas in native MON, from the gas pricing rule, never in WMON. A wallet that holds only WMON cannot even call withdraw until someone sends it a little native MON to pay for the unwrap. Keep that float. The gas sheet sizes it.

A finished swap can still leave WMON

Selling WETH, WBTC, cbBTC or USDC “into MON” is, at the router, a swap into WMON. Native MON appears only if withdraw runs afterwards. On a wallet close paid in MON, this desk adds the unwrap. On a vault close, the sell pays the vault in WMON and a following call unwraps the vault’s whole WMON balance. If the position disappears and the MON line does not move, read the WMON balance before you call the close a failure. The receipt can show a WMON transfer and no Withdrawal event. That is a finished swap and an unfinished unwrap. The hash of the swap is still the close. The unwrap is what makes the coin gas.

The bridge note, and what it is not

The token list attaches a Wormhole NTT extension to WMON, with bridge contract 0x36878C6FCa7e0E8a88F90dc410CfBBcA5B695C95. The docs also list wrapped MON on other chains, including a 2/2 NTT representation on Ethereum, and they do not print those foreign addresses in the summary table. This page will not invent them. A WMON balance on Ethereum, Solana, or anywhere else is not this contract and is not gas on chain 143. To spend it here you need a bridge the issuer or the docs name, then native MON on 143, then, if a pool requires it, a deposit into this contract. A searched-for bridge, a reply, or a support account is not that path.

WMON is not WETH, even though both use 18 decimals and the token list points WETH at the same NTT bridge contract. WETH is a bridged ether token. Calling withdraw on WETH does not return MON. WMON is not USDC, WBTC, or cbBTC. It is not aprMON, sMON, or gMON. Those are staking receipts. They accrue, they queue, and they do not unwrap one-for-one on 0x3bd3…433A. It is not Permit2. Permit2, 0x000000000022D473030F116dDEE9F6B43aC78BA3, is a shared allowance contract on the canonical list. Approving Permit2 is not wrapping.

How to verify a wrap or an unwrap

Before you sign: chain id 143, contract matches this page character for character, function is deposit or withdraw, and the value on a deposit is the amount you mean to wrap. After a deposit: native MON down by that amount, WMON balanceOf up by the same raw amount, a Deposit event. After a withdraw: the reverse, and a Withdrawal event. Gas for the transaction is extra and small, priced as gas used times the base fee, and it comes out of native MON, so the native drop on a deposit is the wrapped amount plus the gas. If the WMON rise does not equal the value you attached, you called something else.

What this desk will and will not do

It will route through this contract. It will unwrap WMON the vault received from a sell. It will not wrap your entire balance into WMON and leave you unable to pay gas. It will not send WMON to an address you type at the moment of a close. Profit leaves by the owner path on the vault, and a wallet close pays the wallet. It will not treat a staking receipt as WMON. If a screen offers a conversion rate other than one, the screen is not describing this contract.

Sources

  1. 1Monad docs — tokens and bridges
  2. 2monad-crypto/token-list — mainnet list
  3. 3Monad docs — mainnet network information
  4. 4Uniswap — Monad v3 deployments
  5. 5Monad docs — gas pricing
  6. 6MonadVision
  7. 7Monadscan
  8. 8MONAF Blog — WETH reference
  9. 9MONAF Blog — USDC reference
  10. 10MONAF Blog — the gas sheet