Desk

Canon

USDC on Monad: the pool, the six decimals, and the MON price of a dollar

The docs list a stablecoin and move on. A desk has to know which contract, which decimals, which pool fee, and how to turn a sqrt price into MON without trusting a ticker that says USDCm one place and USDC another.

MONAF Blog · 27 October 2026 · 24 min

Two names are in circulation for one idea, and mixing them up is how a transfer goes to the wrong contract. On this desk the tradable dollar is USDCm, the native USDC on Monad, six decimals, pooled against WMON. The screen says USDC where a person is choosing it, and USDCm where the contract’s symbol is the precise word. There is not a second, secret USDC that the buttons spend. If a site hands you a different contract address, do not approve it because the ticker matched.

Why six decimals change the arithmetic

MON and WETH use 18 decimals. WBTC and cbBTC use 8. USDC uses 6. A raw balance of 1,090,000 is 1.09 USDC, not 1.09 MON and not a wei figure you can compare with a MON balance by eye. The desk converts through the pool before it compares a USDC stack with a 50 MON idea. Forgetting the decimals, and treating the raw integer as if it were MON, either refuses a fortune or tries to spend one. Both have happened on every chain that bridged a six-decimal dollar into an eighteen-decimal mental model.

The pool’s slot0 is a sqrt price, Q64.96, the same encoding Uniswap v3 uses, because Pancake’s v3 fork uses it too. On the WMON/USDC pool, WMON is token0. The MON wei value of a raw USDC amount is raw times 2^192, divided by the square of sqrtPriceX96. The inverse, raw USDC for a MON amount, multiplies the MON wei by the square of the sqrt price and divides by 2^192. You do not need a quoter for a mark. You need the latest slot0 and the decimal correction, which is already inside those two directions if you keep USDC raw and MON in wei. A quoter is a second round trip and a second failure mode. The mark on the card is this arithmetic.

A dollar price quoted in MON is the pool. A dollar price quoted by a website in another currency is a different market, possibly an hour old.

What a move in the pool means

If USDC rises against MON, one dollar buys more MON. The card that tracks MON as the inverse of that pool will show MON weaker. That is one fact, not two. A 15 second, 1 minute and 5 minute change in MON-per-USDC is the only “opportunity” the USDC card is allowed to claim. A card that says USDC is interesting because a template needed a fourth row is not an opportunity. The desk files a USDC card from those windows. It focuses the card when the rise already clears the round trip, which on this pool is about 0.12 percent. Under that, the card is still on the list, labelled as a watch, and the buttons still work if you want the inventory moved. The focus mark is not a prediction. It is the fee, cleared or not.

Paying with it, and getting it back

An entry paid in USDC hops USDC to WMON to the asset. The fill remembers pay: USDC. The close of that fill hops back to USDC and does not unwrap anything, because USDC is not wrapped MON. A close of a MON-paid fill can also be asked, on a wallet position, to pay you in USDC instead. That is a second hop, WMON into the dollar pool, and it is a real fee. A vault position does not offer that button, because the vault’s sell pays the vault in WMON and the unwrap path is MON. If you wanted dollars in the vault, that is a different contract from the one this desk uses for the agent.

A wallet that merely holds USDC, with no earlier fill, still gets a card. The quantity is the surplus above any open fill in the same token. The spent MON is the spot at the time the surplus was noticed, so a freshly noticed stack shows a flat mark, not a fictional profit. Closing it is selling dollars for MON. The fee gate used to refuse that when the mark had not moved. It does not refuse it now. If you want the dollars to stay dollars, do not tap Close.

Checks before you approve USDC

Read the spender. It should be the router the desk already uses for WETH and WBTC, not a new address that arrived in a link. Read the amount. An approval for the size of this close is enough. An infinite approval is a habit from other chains and a standing permission you will forget. Read the chain id in the wallet. 143, or the approval is for a dollar on a different machine. Then look at the receipt’s token transfers, not the wallet’s banner. A banner that says 0 MON failed is a revert of a token call. The transfer log is the truth.

Sources

  1. 1Monad docs — current facts
  2. 2Monad docs — mainnet network information
  3. 3Monad developer documentation
  4. 4MONAF Blog — four ways to pay
  5. 5MONAF Blog — read the pool
  6. 6MonadVision