Individual token and wrapper addresses below (HideMeToken example, cWETH, cUSDC) are representative deployments created during testing. New tokens and wrappers are deployed by calling
HideMeFactory.createToken() and WrapperFactory.createWrapper() respectively.Core protocol contracts
Deployed wrappers
Example HideMeToken
| Token | Address | Etherscan |
|---|---|---|
| Example HideMeToken | 0x02FA7116A5653dfDFe51cF83F587CB80F560145d | View |
HideMeFactory during mainnet testing. It demonstrates the full lifecycle: mint, encrypted transfer (client-side FHE), on-chain encrypted transfer (transferPlaintext), and burn.
Zama fhEVM infrastructure
HideMe inheritsZamaEthereumConfig, which hard-codes the following Zama network addresses at compile time. These are shared infrastructure contracts operated by Zama and are not specific to HideMe.
| Component | Address |
|---|---|
| ACL Contract | 0xcA2E8f1F656CD25C01F05d0b243Ab1ecd4a8ffb6 |
| KMS Contract | 0x77627828a55156b04Ac0DC0eb30467f1a552BB03 |
| InputVerifier | 0xCe0FC2e05CFff1B719EFF7169f7D80Af770c8EA2 |
| Gateway Chain ID | 261131 |
euint64 ciphertext handle. Every balance update calls FHE.allow(handle, address) to register new access entries.
KMS Contract — On-chain anchor for the Zama threshold key-management network. Stores the public keys used to verify KMS threshold signatures during finalizeUnwrap and other public decryption operations.
InputVerifier — Validates zero-knowledge proofs attached to client-side encrypted inputs. Called automatically by FHE.fromExternal() when a user submits an encrypted transfer amount from the frontend.
Gateway Chain — A separate EVM chain (Chain ID 261131) that coordinates public decryption requests. When FHE.makePubliclyDecryptable() is called on Ethereum, the Gateway chain orchestrates the KMS threshold signing and posts the decryption proof back to Ethereum for verification.
Immutability
None of the HideMe contracts use proxy patterns or upgradeable storage. There are noowner addresses with admin privileges at the protocol level (individual HideMeToken instances have an owner for minting and observer management, but the factory and payment contracts have no such controls). This means:
- Contract logic cannot be modified after deployment.
- There are no admin keys that could pause, drain, or upgrade the contracts.
- The deployed bytecode on Etherscan is the final, canonical implementation.
HideMeFactory
Deploy new confidential tokens
ConfidentialWrapper
Wrap and unwrap ERC-20s
ConfidentialPaymentRouterV2
Send any ERC-20 confidentially