> ## Content Index
> Fetch the complete content index at: https://stablecoininsider.org/llms.txt
> Use this file to discover other available public pages before exploring further.

# What Is ERC-7984? Confidential Stablecoins Explained
- URL: https://stablecoininsider.org/what-is-erc-7984/
- Published: 2026-11-10T10:11:17.000Z
- Updated: 2026-11-10T10:11:25.000Z
- Description: ERC-7984 is the draft Ethereum standard for confidential tokens. Stablecoin Insider explains how Zama's wrapper turns USDC into encrypted balances, what Raycash launched on 9 Nov 2026, what stays public and how freezes still apply.
- Author: Milos Djukanovic
- Tags: Fundamentals, Ethereum

ERC-7984 is the draft Ethereum standard for confidential fungible tokens: balances and transfer amounts are stored as encrypted pointers instead of plain numbers, while sender and recipient addresses stay public. Wrapped around a stablecoin such as USDC, it produces a "confidential stablecoin" that moves on Ethereum without exposing how much anyone holds or sends.

The standard moved from spec to retail product on 9 November 2026, when Zama spin-off Raycash opened a private beta on Ethereum mainnet that wraps USDC 1:1 into ERC-7984 tokens, according to [The Block](https://www.theblock.co/news/defi/2026-11-09-zama-spin-off-raycash-launches-confidential-stablecoin-payments-private-yield-ethereum-435909). The underlying specification, [ERC-7984: Confidential Fungible Token](https://eips.ethereum.org/EIPS/eip-7984), was created on 3 July 2025 and is still marked Draft.

This post covers what ERC-7984 is, how wrapping, transferring and unwrapping work, what stays private and what does not, how issuer freezes still apply, and what to check before you use one.

*Last updated: 10 November 2026\. Specifications, documentation and supply data re-checked against primary sources on this date.*

## Key Takeaways

- ERC-7984 is a draft Ethereum token standard in which every balance and amount is a `bytes32` pointer to encrypted data, per the [EIP text](https://eips.ethereum.org/EIPS/eip-7984).
- It is technology agnostic: the spec names fully homomorphic encryption (FHE), zero-knowledge proofs and secure enclaves as valid back ends; Zama's implementation uses FHE.
- Existing stablecoins become confidential through a wrapper: Zama's [confidential wrapper](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper) locks the ERC-20 and mints an encrypted balance, capped at 6 decimals.
- Addresses, wrap amounts and final unwrap amounts remain public; balances and transfer amounts between wrapping and unwrapping do not.
- Compliance hooks survive: Zama's wrapper enforces both its own denylist and the underlying token's blocklist, and can name "observers" who can decrypt every balance.
- Ethereum held $133.8 billion of the $289.6 billion USD-pegged stablecoin supply tracked by [DefiLlama](https://defillama.com/stablecoins/chains) on 10 November 2026, all of it readable by anyone.

## What is ERC-7984?

ERC-7984 is a token interface for "confidential fungible tokens" that use an account-based model like ERC-20 but keep transfer amounts and balances confidential. The [specification](https://eips.ethereum.org/EIPS/eip-7984) replaces every plaintext `uint256` amount with a `bytes32` pointer, so `confidentialBalanceOf()` and `confidentialTotalSupply()` return a handle to encrypted data rather than a number.

The pointer design is deliberate. The authors write that using `bytes32` lets implementations built on FHE, zero-knowledge proofs, secure enclaves "or future technologies" comply with the same interface. Compliant tokens must signal support through ERC-165 with interface ID `0x4958f2a4`. Discussion of the draft runs on [Ethereum Magicians](https://ethereum-magicians.org/t/erc-7984-confidential-fungible-token-interface/24735).

[OpenZeppelin's documentation](https://docs.openzeppelin.com/confidential-contracts/token) is blunt about one point: ERC-7984 is inspired by ERC-20 but "is not ERC-20 compliant". Wallets, exchanges and DeFi protocols have to integrate it on purpose; a confidential USDC balance will not appear in an app that only reads `balanceOf()`.

## How does ERC-7984 work?

ERC-7984 works by moving encrypted handles between accounts and letting a separate cryptographic system compute on them. In Zama's design, the token contract adds and subtracts ciphertexts with its FHE library, and an access control list (ACL) decides which addresses may decrypt each value, as described in the [Zama confidential wrapper documentation](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper).

![Four-step diagram of an ERC-7984 confidential stablecoin: wrap USDC, transfer encrypted amounts, grant view access, unwrap.](https://storage.ghost.io/c/73/6a/736af0e4-2274-4543-a329-2952b2b52abc/content/images/2026/11/erc-7984-confidential-stablecoin-wrap-transfer-unwrap-diagram.webp)

Graphic: Stablecoin Insider. Source: [Zama confidential wrapper docs](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper) and [ERC-7984](https://eips.ethereum.org/EIPS/eip-7984), read 10 Nov 2026.

Four mechanics matter for a stablecoin holder:

- **Encrypted inputs.** To send a new amount, the wallet encrypts it client-side and attaches an `inputProof` showing the sender knows the value, per [OpenZeppelin](https://docs.openzeppelin.com/confidential-contracts/token).
- **Time-limited operators.** Instead of ERC-20 allowances, a holder calls `setOperator(operator, until)`. The operator can move any amount until the timestamp expires, so the [spec](https://eips.ethereum.org/EIPS/eip-7984) trades granular allowances for expiry.
- **Silent failure.** A confidential transfer that exceeds the balance does not have to revert; the function returns the amount actually transferred as another encrypted handle, because a revert would leak that the balance was too low.
- **Optional disclosure.** The standard defines an `AmountDisclosed` event for when an encrypted amount is deliberately made public, and Zama's wrapper exposes `requestDiscloseEncryptedAmount` for it.

## How is ERC-7984 different from ERC-20?

ERC-7984 is different from ERC-20 in what it reveals and how it delegates spending, not in what the token represents. The table compares the two interfaces using the [ERC-20](https://eips.ethereum.org/EIPS/eip-20) and [ERC-7984](https://eips.ethereum.org/EIPS/eip-7984) texts; each row links to the source.

| Feature                 | ERC-20 (e.g. USDC)                                                                    | ERC-7984 confidential token                                                                                           |
| ----------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Balance query           | balanceOf() returns a public number ([EIP-20](https://eips.ethereum.org/EIPS/eip-20)) | confidentialBalanceOf() returns an encrypted bytes32 handle ([EIP-7984](https://eips.ethereum.org/EIPS/eip-7984))     |
| Transfer event          | Transfer logs from, to and the plaintext value                                        | ConfidentialTransfer logs from, to and an encrypted amount pointer                                                    |
| Total supply            | Public totalSupply()                                                                  | confidentialTotalSupply() is encrypted                                                                                |
| Spending delegation     | Amount-based approve() allowance                                                      | Time-limited operator with no amount cap ([OpenZeppelin](https://docs.openzeppelin.com/confidential-contracts/token)) |
| Wallet and DeFi support | Universal                                                                             | Must be integrated explicitly; not ERC-20 compliant                                                                   |

Two patterns stand out. First, ERC-7984 hides amounts, not identities: the counterparty graph is as public as ever. Second, the operator model is riskier than a capped allowance; OpenZeppelin warns that setting an operator "for any amount of time allows the operator to take all of your tokens".

## What stays private and what stays public in a confidential stablecoin?

What stays private in a confidential stablecoin is the balance of each holder and the amount of each transfer while tokens are wrapped; what stays public is every address, the amount entering the wrapper and the amount leaving it. The table below is built from the events and view functions listed in Zama's [wrapper documentation](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper).

| Data point                     | Public?              | Why                                                                                             |
| ------------------------------ | -------------------- | ----------------------------------------------------------------------------------------------- |
| Sender and recipient addresses | Public               | Indexed in the ConfidentialTransfer event                                                       |
| Transfer amount                | Hidden               | Stored as an encrypted euint64 handle                                                           |
| Holder balance                 | Hidden               | Readable only by addresses the ACL allows, including approved observers                         |
| Amount wrapped                 | Public               | Wrap event logs roundedAmount in cleartext, and the ERC-20 transfer into the wrapper is visible |
| Amount unwrapped               | Public               | UnwrapFinalized logs cleartextAmount after public decryption                                    |
| Total value shielded           | Public (approximate) | inferredTotalSupply() reads the underlying ERC-20 held by the wrapper                           |

The practical lesson: privacy is strongest when funds stay wrapped and move several times. Someone who wraps exactly 4,250 USDC and unwraps exactly 4,250 USDC a day later to a linked address has revealed most of what matters.

## How do you wrap USDC into a confidential token, step by step?

You wrap USDC into a confidential token by depositing it into a verified wrapper contract, which mints the same amount as an encrypted balance. Based on the [Zama wrapper docs](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper) and [unshield guide](https://docs.zama.org/protocol/sdk/guides/unshield-tokens), the flow is:

1. **Find the verified wrapper.** Zama keeps an on-chain registry that maps each ERC-20 to its confidential wrapper; check it before sending funds to any contract that claims to be cUSDC.
2. **Wrap.** If the token supports ERC-1363, one `transferAndCall` to the wrapper mints the confidential balance. Otherwise approve the wrapper and call `wrap(to, amount)`. USDC and USDT use 6 decimals, so they map 1:1.
3. **Transfer confidentially.** Your wallet encrypts the amount, attaches an input proof and calls `confidentialTransfer`. Prefer `confidentialTransferAndCall` when paying a contract instead of granting a standing operator.
4. **Read your own balance.** Only addresses with ACL permission can decrypt a handle, so your wallet reads your balance through Zama's SDK while everyone else sees ciphertext.
5. **Unwrap in two transactions.** `unwrap` burns the encrypted amount and emits a request ID; after the network publicly decrypts the amount, `finalizeUnwrap` releases the USDC. Zama's SDK bundles both through `unshield()` and notes the proof wait "can take several seconds".

🔎

**How we checked this guide:** we read the ERC-7984 specification, OpenZeppelin's Confidential Contracts documentation, Zama's confidential wrapper and SDK documentation, the GENIUS Act text on govinfo.gov and DefiLlama's stablecoin chain data on 10 November 2026\. Product claims about Raycash come from its statement to The Block and are attributed. No provider paid for placement. See [our methodology](https://stablecoininsider.org/our-methodology/).

## Why does stablecoin privacy matter on Ethereum?

Stablecoin privacy matters on Ethereum because Ethereum carries the largest stablecoin float of any network and every ERC-20 balance on it is public. DefiLlama's [stablecoin chain data](https://stablecoins.llama.fi/stablecoinchains) showed $133.8 billion of USD-pegged stablecoins on Ethereum on 10 November 2026, 46.2% of the $289.6 billion tracked, ahead of Tron at $93.6 billion.

![Bar chart of USD-pegged stablecoin supply by blockchain: Ethereum $134B leads Tron $93.6B and Solana $14.6B.](https://storage.ghost.io/c/73/6a/736af0e4-2274-4543-a329-2952b2b52abc/content/images/2026/11/stablecoin-supply-by-blockchain-ethereum-chart.webp)

Source: [DefiLlama stablecoins](https://defillama.com/stablecoins/chains), read 10 Nov 2026.

For a business, a public balance is a public treasury report. Payroll amounts, supplier terms and runway can be read by anyone who links one address to the company. The ERC-7984 [motivation section](https://eips.ethereum.org/EIPS/eip-7984) names payroll, confidential DeFi and institutional settlement as target use cases for exactly that reason.

Demand is already measurable. Zama's first confidential USDC yield vault, launched in June with [Morpho](https://morpho.org/) and Steakhouse Financial, went from zero to $40 million in total value locked within seven weeks, and Zama expanded to 16 confidential vaults on 15 September, The Block [reported](https://www.theblock.co/news/defi/2026-11-09-zama-spin-off-raycash-launches-confidential-stablecoin-payments-private-yield-ethereum-435909). Raycash said more than 75,000 people joined its waitlist before launch.

## Can confidential stablecoins still be frozen?

Confidential stablecoins can still be frozen in most designs, because the wrapper holds real [USDC](https://www.circle.com/usdc) or USDT that the issuer controls. Zama's wrapper checks its own denylist and the underlying token's blocklist (for example USDT's `getBlackListStatus`) on every wrap, transfer, unwrap and `finalizeUnwrap`, per its [documentation](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper) and [source code](https://github.com/zama-ai/protocol-apps/blob/main/contracts/confidential-wrapper/contracts/ConfidentialWrapper.sol).

The same docs list two deeper dependencies. USDC and USDT are pausable, so wraps and unwraps revert during a pause, and the wrapper contract address itself "may be blocked, preventing all wrap and unwrap operations". A confidential layer cannot outrun the issuer of the collateral beneath it.

That matters legally. The GENIUS Act ([Public Law 119-27](https://www.govinfo.gov/content/pkg/PLAW-119publ27/html/PLAW-119publ27.htm)) requires permitted issuers to keep "technical capabilities, policies, and procedures to block, freeze, and reject specific or impermissible transactions", and defines a lawful order as one that "requires a person to seize, freeze, burn, or prevent the transfer of payment stablecoins". Raycash told The Block its confidential tokens have no freeze or seize functions "at the token layer"; that describes the wrapper, not the USDC it holds.

Zama's wrapper also supports **observers**: addresses the wrapper owner authorises to decrypt the balance of every holder, the total supply and every transfer amount. The docs state the authorisation "has no expiration" until revoked, and the observer list is public. Ownership starts with the Zama Protocol DAO and is meant to pass to the underlying token's owner, so for cUSDC the auditor-of-record could eventually be the issuer side.

## What should you check before using a confidential stablecoin?

You should check the wrapper, its controls and your exit path before using a confidential stablecoin. The checklist below draws on the [Zama wrapper docs](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper) and [OpenZeppelin's token guide](https://docs.openzeppelin.com/confidential-contracts/token).

| Check                           | Why it matters                                     | Where to look               |
| ------------------------------- | -------------------------------------------------- | --------------------------- |
| Wrapper is the registered one   | A fake wrapper can mint worthless ciphertext       | Zama wrapper registry       |
| Who owns and can upgrade it     | The wrapper is UUPS-upgradeable by its owner       | owner() on the contract     |
| Observer list                   | Observers can decrypt every balance with no expiry | observers() view function   |
| Denylist status of your address | Blocked addresses cannot wrap, move or unwrap      | isBlocked(user)             |
| Operator approvals you granted  | Operators can move all tokens until expiry         | isOperator(holder, spender) |
| Wallet and app support          | ERC-7984 is not ERC-20 compliant                   | Wallet or app documentation |

💡

**Stablecoin Insider's take:** ERC-7984 is the first credible attempt to give Ethereum stablecoins the confidentiality a bank account takes for granted, without inventing a new dollar. Its strength is also its limit: because it wraps USDC and USDT, it inherits their freezes, pauses and issuer politics, and its observer feature means "confidential" means hidden from the public, not from everyone. That is the right trade for payroll and treasury, and the wrong one for anyone expecting anonymity.

Related reading on stablecoin privacy and freezes:

[Best Privacy Solutions for Stablecoin Payments in 2026Compare the best privacy solutions for stablecoin payments in 2026, from Solana confidential transfers and Aleo to Hinkal and FHE-based rails.![](https://stablecoininsider.org/favicon.ico)Stablecoin Insider](https://stablecoininsider.org/best-privacy-solutions-for-stablecoin-payments-in-2026/)

[Private Stablecoins: Types, Use Cases, and Top ProjectsPrivate stablecoins sit at the intersection of privacy, compliance and composability.![](https://stablecoininsider.org/favicon.ico)Stablecoin Insider](https://stablecoininsider.org/private-stablecoins/)

[Check USDC Blacklist: Circle Frozen Address Guide 2026How to check USDC blacklist status with Circle's isBlacklisted on the official contract for each chain.![](https://stablecoininsider.org/favicon.ico)Stablecoin Insider](https://stablecoininsider.org/how-to-check-usdc-blacklist-status/)

Comparing privacy designs? See how Circle's ZK-based approach differs in our [Aleo USDCx explainer](https://stablecoininsider.org/aleo-usdcx-stablecoin/), and what issuer freezes did in practice in [our Binance hack analysis](https://stablecoininsider.org/binance-hack/).

[Compare stablecoin privacy solutions](https://stablecoininsider.org/best-privacy-solutions-for-stablecoin-payments-in-2026/)

Related hub: see our [Stablecoin Payments and Cards Hub](https://stablecoininsider.org/stablecoin-payments-hub/) for every guide on paying, receiving and holding stablecoins.

## FAQ

#### Is ERC-7984 a final Ethereum standard?

ERC-7984 is not a final Ethereum standard; the EIP page lists it as a Draft created on 3 July 2025\. Its interface can still change, although OpenZeppelin already ships an implementation in its Confidential Contracts library.

#### Is ERC-7984 compatible with ERC-20?

ERC-7984 is not compatible with ERC-20\. OpenZeppelin states it "is not ERC-20 compliant", so a wrapper is needed to move between a public stablecoin and its confidential version.

#### Does ERC-7984 hide who sent a payment?

ERC-7984 does not hide who sent a payment. The ConfidentialTransfer event in the spec indexes both the from and to addresses; only the amount is a confidential pointer.

#### What is a confidential stablecoin?

A confidential stablecoin is a regular stablecoin such as USDC locked in a wrapper that issues an ERC-7984 token with encrypted balances. Raycash, which launched a private beta on 9 November 2026, wraps USDC 1:1 this way, The Block reported.

#### Can Circle or Tether freeze a confidential stablecoin?

Circle or Tether can effectively freeze a confidential stablecoin built on Zama's wrapper, because it enforces the underlying token's blocklist and pauses on every move, per the wrapper docs. A blocked wrapper address would stop all wraps and unwraps.

#### Who can see my confidential balance?

Your confidential balance can be seen by you and by any address the access control list allows, which on Zama's wrapper includes owner-approved observers. The observer set is public through the observers() function documented by Zama.

#### Why is the confidential token limited to 6 decimals?

The confidential token is limited to 6 decimals because balances are stored as encrypted 64-bit integers, which caps the supply at about 18.4 trillion whole tokens at 6 decimals, per Zama. USDC and USDT already use 6 decimals, so they wrap 1:1.

Sources: [ERC-7984 specification](https://eips.ethereum.org/EIPS/eip-7984), [ERC-20 specification](https://eips.ethereum.org/EIPS/eip-20), [Ethereum Magicians discussion](https://ethereum-magicians.org/t/erc-7984-confidential-fungible-token-interface/24735), [OpenZeppelin Confidential Contracts docs](https://docs.openzeppelin.com/confidential-contracts/token), [Zama confidential wrapper docs](https://docs.zama.org/protocol/protocol-apps/confidential-tokens/confidential-wrapper), [Zama SDK unshield guide](https://docs.zama.org/protocol/sdk/guides/unshield-tokens), [ConfidentialWrapper.sol](https://github.com/zama-ai/protocol-apps/blob/main/contracts/confidential-wrapper/contracts/ConfidentialWrapper.sol), [GENIUS Act, Public Law 119-27](https://www.govinfo.gov/content/pkg/PLAW-119publ27/html/PLAW-119publ27.htm), [DefiLlama stablecoin chains API](https://stablecoins.llama.fi/stablecoinchains) and [The Block on Raycash](https://www.theblock.co/news/defi/2026-11-09-zama-spin-off-raycash-launches-confidential-stablecoin-payments-private-yield-ethereum-435909), all read on 10 November 2026.

*This content is provided for informational and educational purposes only and doesn't constitute financial, investment, legal or tax advice. Figures and documentation were read on 10 November 2026 and may change. Companies and assets mentioned include Zama, Raycash, OpenZeppelin, Circle (USDC), Tether (USDT), Morpho and Steakhouse Financial. Do your own research before using any protocol.*