ZeroDocumentation
Browse documentation
Getting started

Wrap & redeem

USDC in, zkUSD out, one for one, with the backing enforced by the program.

One USDC in, one zkUSD out

zkUSD is minted only by the vault program, only against USDC that arrives in the vault in the same transaction. Redeeming burns zkUSD and releases the same amount of USDC. There is no algorithm, no collateral ratio and no one who can mint on the side.

  1. 01
    Wrap

    Your USDC moves into a vault account owned by the program, and the program mints the same amount of zkUSD to you.

  2. 02
    Use it

    Spend it in Standard, move it to Private, or shield it. It is the same zkUSD in every mode.

  3. 03
    Redeem

    The program burns your zkUSD and sends you the same amount of USDC back.

Backing is a rule, not a promise

After every wrap and every redeem, the program adds up every vault account and compares it with the total zkUSD supply. If reserves ever fell short, the transaction would fail and nothing would move.

Σ vault reserves  ≥  zkUSD supply     checked on every wrap and redeem

It is “at least” rather than “exactly” so a stray transfer into the vault can never block anyone. Supply is public even when balances are private, so anyone can compare the two at any time on the reserves page.

A mint that nobody can tamper with

  • The mint authority belongs to the vault program. No person can mint.
  • There is no freeze authority. Nobody can freeze your zkUSD.
  • Confidential transfers are built into the mint, with an auditor key for compliance.
  • The vault checks the mint’s configuration on-chain before it will use it.
Search the Zero documentationLocal search · no external service