# Regulated dollars

> Cleanverse aUSDC on Monad testnet: identity checks on both sides of every payment, and a Travel Rule report.

Source: https://floatless.xyz/docs/regulated-dollars

Regulated dollars are aUSDC, a digital dollar from Cleanverse that only moves between wallets whose owners have verified their identity. In Floatless they run on Monad testnet only, with Cleanverse's sandbox.

> Regulated dollars aren't on mainnet. The mainnet app doesn't list aUSDC, and everything on testnet is test money with no real value.

## What aUSDC is

Cleanverse runs a compliance network built on two pieces: a verified identity tied to your wallet, and verified assets that check that identity when they move. aUSDC is one of those assets. The app lists it as AUSDC, with Cleanverse as the issuer.

- In Floatless, you get aUSDC by depositing USDC. Cleanverse locks the USDC and adds the same amount of aUSDC to your wallet.
- In Floatless, both the sender and the recipient need a valid Cleanverse identity. The token itself also rejects transfers to wallets that have no identity.
- Your [spending rules](https://floatless.xyz/docs/spending-rules) apply as usual, so AUSDC has to be one of your **Currencies you can send**.
- Network fees are paid in MON, like every Floatless payment.

These are the Cleanverse contracts the testnet API reports, and you can check them live at [`/v1/compliance/config`](https://api.floatless.xyz/v1/compliance/config).

| Contract                                        | Address on Monad testnet                                                                                                         |
| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| aUSDC, the regulated dollar                     | [`0xaC0893567D43C3E7e6e35a72803df05416C1f20D`](https://testnet.monadscan.com/address/0xaC0893567D43C3E7e6e35a72803df05416C1f20D) |
| USDC, the dollar aUSDC is made from             | [`0x534b2f3A21130d7a60830c2Df862319e593943A3`](https://testnet.monadscan.com/address/0x534b2f3A21130d7a60830c2Df862319e593943A3) |
| Access Core, which locks USDC and creates aUSDC | [`0x8F118338a1fa41E7Fa86Be19A4e8B99Ed58A6EcC`](https://testnet.monadscan.com/address/0x8F118338a1fa41E7Fa86Be19A4e8B99Ed58A6EcC) |
| A-Pass, the identity credential                 | [`0xbA82D189540CaC9DC6FF46B6837CaC1BFdEC58B9`](https://testnet.monadscan.com/address/0xbA82D189540CaC9DC6FF46B6837CaC1BFdEC58B9) |

## Your Cleanverse identity

Cleanverse calls it a Cleanverse Verified Identity, or CVI, and its contracts and API use the name A-Pass. It's a credential tied to your wallet address once you've passed Cleanverse's identity check.

The check itself happens with Cleanverse, not in Floatless. Floatless never handles your documents. For each aUSDC payment, it asks Cleanverse whether both wallets are verified and keeps a record of the answer, so the payment can point to the decision that allowed it.

An identity has an expiry date, and Cleanverse can freeze one. Floatless treats an expired or frozen identity as restricted.

## Verify with Cleanverse

You can start from two places.

- In Add money, the **Get aUSDC, verified dollars** card shows **Verify with Cleanverse** until you're verified.
- In Send, if you pay with AUSDC before you're verified, the review screen shows **Verify to use regulated dollars** with the same button.

**Verify with Cleanverse** asks Cleanverse for your wallet's personal verification link and opens it. Follow Cleanverse's steps there, then come back to Floatless. In Send, tap **I’ve verified, check again** to run the check again. In Add money, the card checks again when you come back to Floatless. If it still asks you to verify, close the sheet and open it again.

## Get aUSDC

Once you're verified, Add money shows your personal Cleanverse deposit address.

1. On Home, tap **Add money**.
2. In the **Get aUSDC, verified dollars** card, tap **Copy** to copy your deposit address. On testnet, **Get free test USDC** opens Circle's faucet.
3. Send USDC to that address from a Cleanverse-approved source.
4. Cleanverse locks the USDC and adds the same amount of aUSDC to your wallet.

The card only shows the address after you're verified, because Cleanverse can't add aUSDC to a wallet without an identity. The deposit address is different from your Floatless wallet address, and USDC sent to your wallet address stays USDC. See [Add money](https://floatless.xyz/docs/add-money).

## Pay with aUSDC

Send aUSDC like any other payment. On the amount screen, tap the **Pay with** line and choose **AUSDC**, which the list marks "needs a Cleanverse ID". See [Send money](https://floatless.xyz/docs/send-money). At review, a notice shows where the identity check stands.

| Notice                              | What it means                                                                                   |
| ----------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Regulated dollars**               | Cleanverse is still checking both wallets.                                                      |
| **Identity verified**               | Cleanverse verified both wallets for this payment.                                              |
| **Verify to use regulated dollars** | Your wallet doesn't have a Cleanverse identity yet.                                             |
| **Transfer not allowed**            | The recipient isn't verified, an identity is restricted, or Cleanverse couldn't give an answer. |

### The three places the rule is checked

In Floatless, a regulated payment goes ahead only if Cleanverse confirms, at that moment, that both you and the recipient hold a valid identity for aUSDC. The rule is checked in three places.

1. Before you sign, each review asks Cleanverse about both wallets. Floatless reads each wallet's identity, then asks whether each one may move aUSDC, and only a clear yes counts. If either side fails, the send button stays off and the message says which side.
2. When Floatless signs for you with email sign-in, its signing service asks Cleanverse again right before it signs an aUSDC transfer, and refuses if the answer isn't yes. It also refuses to sign aUSDC approvals and permits, which could let someone move the money later without a check. Its route for signing a raw hash doesn't run this check yet. With a passkey you sign on your own phone, so this step doesn't apply.
3. On Monad itself, the aUSDC token rejects a transfer to a wallet that has no Cleanverse identity, even when someone skips Floatless entirely.

After the payment settles, Floatless links it to a Cleanverse approval given in the previous 30 minutes for the same wallets, currency and amount. Your [Activity](https://floatless.xyz/docs/activity) entry then carries a **Verified** tag.

## What each status means

Floatless sorts Cleanverse's answer for each wallet into one of four statuses, and a payment goes ahead only when both wallets are verified.

| Status      | What it means                                                                                                                                                            | What you see                                                                                                                                                                                                                              |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| verified    | Cleanverse confirmed a valid identity that's allowed to move aUSDC.                                                                                                      | **Identity verified**, once both wallets are verified.                                                                                                                                                                                    |
| unverified  | Cleanverse has no identity for this wallet.                                                                                                                              | For you, "Verify your identity with Cleanverse to send regulated dollars." and **Verify with Cleanverse**. For the recipient, "This recipient has not verified their identity with Cleanverse, so they cannot receive regulated dollars." |
| restricted  | The identity is expired or frozen, or Cleanverse's rules don't let this wallet move aUSDC, for example because its verification level is too low.                        | "Your Cleanverse credential is expired or frozen, so you cannot send regulated dollars." or "This recipient's Cleanverse credential is expired or frozen."                                                                                |
| unavailable | Floatless couldn't get a clear answer. Cleanverse couldn't be reached or didn't answer within five seconds, sent a reply Floatless couldn't read, or doesn't list aUSDC. | "Cleanverse could not confirm eligibility right now. Nothing was sent; try again shortly."                                                                                                                                                |

Floatless never treats unavailable as a yes. If you're restricted, Floatless can't change it, and the identity has to be renewed or restored with Cleanverse. If the recipient isn't verified, they need to verify before they can receive aUSDC, or you can pay them in another currency.

## The transaction report

Cleanverse can produce a Travel Rule report for a settled aUSDC payment. The Travel Rule is the requirement that details about who sent and who received a payment are recorded and passed along with it. Cleanverse's report has two parts.

- An overview of the sender's Cleanverse identity, with its tier, points, status and dates.
- The payment itself, with the sender's address, when it started, the amount, the transaction hash, and the addresses that funded it.

To get it, open the payment in **Activity** and tap **Open Cleanverse report** on the **Regulated transfer** card. Floatless gets the report from Cleanverse when you ask, and only for a settled aUSDC payment. The download link Cleanverse returns expires, so Floatless fetches a fresh one each time and never stores it. The [API](https://floatless.xyz/docs/api) can request the report for any settled aUSDC payment in your history.

## Live proof on Monad testnet

Recorded on October 13, 2026 through the Floatless testnet API, `api.floatless.xyz` on chain 10143, with Cleanverse's sandbox. The test wallets used the same sign-in and payment steps as a passkey account, with a test script holding their keys in place of a phone's passkey.

| Wallet               | Address                                                                                                                          | Identity |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------- |
| Sender               | [`0x21d12b78F83044AFc433b3493aBEF452dCFD450e`](https://testnet.monadscan.com/address/0x21d12b78F83044AFc433b3493aBEF452dCFD450e) | Verified |
| Verified recipient   | [`0xe0a65AE7A77EebA5AC464bD3C103Cb1D55EAFF2B`](https://testnet.monadscan.com/address/0xe0a65AE7A77EebA5AC464bD3C103Cb1D55EAFF2B) | Verified |
| Unverified recipient | [`0x8BD784F56cd60ee1b7bd7e39F8043Be0983A10cE`](https://testnet.monadscan.com/address/0x8BD784F56cd60ee1b7bd7e39F8043Be0983A10cE) | None     |

| Step                                                            | Result                                                                | Proof                                                                                                                                                                       |
| --------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sender identity issued                                          | Cleanverse issued the sender's identity                               | [`0x69b21309e732ed64bf19e1ffeb094d51c2be0cc2a4fd3d07e9e161fbb868cc49`](https://testnet.monadscan.com/tx/0x69b21309e732ed64bf19e1ffeb094d51c2be0cc2a4fd3d07e9e161fbb868cc49) |
| Recipient identity issued                                       | Cleanverse issued the verified recipient's identity                   | [`0x0888935b49b1ab5877ab1dc32d5e8da21351ba8a0075ef058573fb48cae04092`](https://testnet.monadscan.com/tx/0x0888935b49b1ab5877ab1dc32d5e8da21351ba8a0075ef058573fb48cae04092) |
| Sender funded                                                   | aUSDC from Cleanverse's sandbox faucet                                | [`0x0fc1fd3acdff66879a4435f87dfb88547433d8e40c14333d02d5acef35ae44b6`](https://testnet.monadscan.com/tx/0x0fc1fd3acdff66879a4435f87dfb88547433d8e40c14333d02d5acef35ae44b6) |
| Spending rules registered                                       | Version 1 on the testnet spending-rules registry                      | [`0xe68df9f3ccadcac5b076ad25ace387e2055e3292c1c424dd7dcb274c0a48310a`](https://testnet.monadscan.com/tx/0xe68df9f3ccadcac5b076ad25ace387e2055e3292c1c424dd7dcb274c0a48310a) |
| 0.01 aUSDC to the unverified wallet                             | Declined before signing because the recipient was unverified          | No transaction                                                                                                                                                              |
| The same transfer sent straight to the token, without Floatless | Rejected by the aUSDC token in a simulation                           | No transaction                                                                                                                                                              |
| 0.01 aUSDC to the verified wallet                               | Both wallets verified, settled, and linked to its Cleanverse approval | [`0x2f24f858f928a822474f82a0f1907c6af9e554ba3aa5b6b862f606e43e577a11`](https://testnet.monadscan.com/tx/0x2f24f858f928a822474f82a0f1907c6af9e554ba3aa5b6b862f606e43e577a11) |
| Travel Rule report                                              | Cleanverse's report for that payment                                  | [Report PDF](https://github.com/winsznx/floatless/blob/main/docs/assets/cleanverse-travel-rule-report.pdf)                                                                  |

More recorded transactions, on both networks, are in [Live proof](https://floatless.xyz/docs/proof).
