Skip to main content
Minting converts public stablecoin into cAROUSD at 1:1; after a mint, value that used to be visible on-chain becomes an encrypted balance. Minting requires a custodial wallet: the sandbox signs the on-chain calls with the wallet’s key.

Prerequisites

  • A custodial wallet with ETH for gas (faucet covers this).
  • In backed mode, the wallet must also hold enough public stablecoin to deposit. In float mode the operator mints directly, so a stablecoin balance in your wallet is not required. See mint modes.

Make the call

amount is a required decimal string in human units. The call blocks up to ~90 seconds for the receipt; if it returns PENDING, poll GET /transactions/{id} until terminal.

What happens on-chain

  1. Your wallet approves the commitment contract to spend the stablecoin.
  2. The wallet calls commitDeposit: stablecoin is locked in the commitment, and the equivalent cAROUSD is minted to the wallet as an encrypted amount.
Every cAROUSD in circulation is collateralized by stablecoin held in the contract.
Either way, the encryption of the minted amount happens server-side: you send "100", the sandbox produces the FHE ciphertext and proof.

Verify

In backed mode you’ll see normal decrease and confidential increase by the minted amount; in float mode only confidential moves.

Common failures

The first confidential operation after a deployment restart fetches FHE keys and can be noticeably slower. Don’t tune timeouts to that first call.
Next: send a private transfer or redeem back to stablecoin.