Skip to content

Start here

Mainnet and testnet

What works on Monad mainnet and testnet, and how Floatless keeps each network’s money and history apart.

On this page

Floatless runs on two Monad networks. This page explains the difference, what works on each, how the app and its API stay on one network, and where to look up transactions and tokens.

Mainnet and testnet in plain words

Monad mainnet is the live network, where tokens are real money. Its chain ID, the number that identifies a network, is 143. Monad testnet is a practice network with chain ID 10143. Its tokens are for testing and aren't real money.

The two networks work the same way. On each one you need MON, Monad's own token, to pay network fees, and each has its own explorer. A dollar on testnet and a dollar on mainnet are different tokens on different networks, and nothing moves between them.

What works on each network

Feature Mainnet Testnet
Sign in with a passkey or email Yes Yes
Currencies the app lists USDC, USDT0, AUSD USDC, AUSD and aUSDC, all test tokens
Send, with checks before you sign Yes Yes
Spending rules registered on Monad Yes Yes
Savings goals Yes Yes
Floatless Savings on Morpho Live: deposit and withdraw AUSD Labeled preview using the mainnet rate
Regulated dollars in aUSDC Not listed Yes, with Cleanverse's sandbox
Card, Apple Pay and bank transfers Not available yet Not available yet

Morpho isn't deployed on Monad testnet, so the testnet Save tab applies the live mainnet vault's rate to your testnet AUSD and labels it Preview. Nothing is deposited on testnet.

Regulated dollars run on Monad testnet with Cleanverse's sandbox. The mainnet app doesn't list aUSDC, and the mainnet API has no Cleanverse connection.

How the app picks its network

Each Floatless app build is set to one network when it's built, and mainnet is the default. There's no network switch inside the app. A build talks only to its own network's API:

Network Chain ID API Explorer links open
Monad mainnet 143 https://api-mainnet.floatless.xyz monadscan.com
Monad testnet 10143 https://api.floatless.xyz testnet.monadscan.com

If you build the app yourself, EXPO_PUBLIC_MONAD_NETWORK picks the network, mainnet or testnet, and EXPO_PUBLIC_API_BASE_URL points the build at a different API. Each API reads MONAD_CHAIN_ID, which is 143 or 10143.

Each network keeps its own records

The mainnet and testnet APIs are separate services, each with its own database. Your payments, spending-rule records, goals and savings history on one network never mix with the other. History entries for transactions record the chain they happened on.

Your phone keeps the networks apart too. Passkey sessions, your saved account details and any payment waiting for confirmation are stored separately for each network.

If you sign in with a passkey, your wallet address is the same on mainnet and testnet, because it comes from your passkey. Your balances aren't shared, since each network has its own tokens.

The network check on every response

Every response from a Floatless API carries an x-floatless-chain-id header with that API's chain ID. The app compares it with its own network before using the response. If they differ, the app stops with a message that names both networks, for example:

This app is on Monad mainnet, but the server it reached is on Monad testnet. Nothing was changed.

A response without the header is accepted, so older servers still work.

The app checks again before you sign anything. A payment quote must name the app's chain, and the app confirms that its own connection to Monad is on that chain too. Spending rules prepared for another network are refused before you sign them.

You can read the header yourself:

curl -si https://api-mainnet.floatless.xyz/health/ready | grep -i '^x-floatless-chain-id'
curl -si https://api.floatless.xyz/health/ready | grep -i '^x-floatless-chain-id'
x-floatless-chain-id: 143
x-floatless-chain-id: 10143

The same endpoint reports the chain in its JSON body as checks.chainId.

Explorers

An explorer is a website that shows what's on a blockchain: balances, transactions and contracts. The app's links open Monadscan. MonadVision is another explorer for the same networks, and Floatless's contracts are source-verified on both.

Network Monadscan MonadVision
Mainnet monadscan.com monadvision.com
Testnet testnet.monadscan.com testnet.monadvision.com

Tokens on each network

These are the tokens the app shows for each network.

Network Token What it is Address
Mainnet USDC USD Coin, issued by Circle 0x754704Bc059F8C67012fEd69BC8A327a5aafb603
Mainnet USDT0 Listed in the app as Tether USD 0xe7cd86e13AC4309349F30B3435a9d337750fC82D
Mainnet AUSD Agora Dollar, the currency Floatless Savings holds 0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a
Testnet USDC Test USDC used by Cleanverse's sandbox 0x534b2f3A21130d7a60830c2Df862319e593943A3
Testnet aUSDC Cleanverse's regulated test dollar 0xaC0893567D43C3E7e6e35a72803df05416C1f20D
Testnet AUSD Agora's test AUSD 0xa9012a055bd4e0eDfF8Ce09f960291C09D5322dC

MON has no token address on either network. It's the network's own currency, and your Wallet balance includes it.

Testnet tokens and faucets

A faucet hands out free test tokens. Here's what Floatless's code points to for each test token:

  • Test USDC. In the testnet app, once Cleanverse has verified you, the Get aUSDC, verified dollars card in Add money shows your Cleanverse deposit address and links to Circle's faucet with Get free test USDC. Choose Monad testnet there and paste that address. The card says Cleanverse locks USDC sent there from a Cleanverse-approved source and adds the same amount of aUSDC to your wallet.
  • Test AUSD. Floatless's testnet records list Agora's AUSD faucet contract at 0xd236c18D274E54FAccC3dd9DDA4b27965a73ee6C. The app doesn't link to it.
  • Test MON. Floatless doesn't provide testnet MON, and the app doesn't link to a faucet for it. You'll need some from a Monad testnet faucet to pay network fees.