HideMeFactory contract, giving you a live, on-chain catalogue of tokens with encrypted balances powered by Zama FHE.
Any connected wallet can deploy a new token through the registry’s creation wizard. Once created, a HideMeToken instance is permanently tracked in the factory and immediately visible to everyone.
All tokens deployed through HideMeFactory have 6 decimals (
TOKEN_DECIMALS = 6), regardless of the token’s name or symbol.Creating a Token
CallcreateToken() on the factory contract with a CreateParams struct:
CreateParams fields
Human-readable token name (e.g.
"HideMe USD").Token ticker symbol (e.g.
"hmUSD").Amount of tokens minted to the creator on deployment. Uses 6-decimal base units — pass
1000000 to mint 1 token.When
true, the owner can call mint() to create additional tokens after deployment.When
true, any holder can call burn() to permanently destroy tokens from their own balance.Hard cap on total supply. Set to
0 for unlimited. If non-zero, initialSupply must not exceed it and future mints will revert if they would cross it.A list of compliance or audit addresses that can decrypt any holder’s balance. Observers are granted FHE access to every ciphertext updated by the token. Pass an empty array if you do not need compliance access.
URL to the token’s logo image. Displayed in the registry card.
Project website URL.
Short description of the token shown in the registry.
Querying the Registry
Paginated token list
The registry frontend usesgetTokensPaginated() to load tokens in pages, avoiding gas limits from returning huge arrays:
offset— index of the first token to return (0-based)limit— maximum number of tokens to return per call- Returns an empty array when
offset >= totalTokens()
getTokensPaginated(0, 20). For the next page, call getTokensPaginated(20, 20).
TokenInfo struct
Each element returned bygetTokensPaginated() is a TokenInfo struct:
On-chain address of the deployed
HideMeToken contract.Token name set at creation.
Token ticker symbol.
Supply minted to the creator at deployment (6 decimals).
Wallet address that called
createToken().Unix timestamp of the block in which the token was deployed.
Whether the owner can mint additional tokens.
Whether holders can burn their own tokens.
Hard supply cap.
0 means unlimited.Token description stored in the factory.
Logo image URL.
Project website URL.
Additional Query Functions
Contract Address
| Network | Address |
|---|---|
| Ethereum Mainnet | 0x46E16F6E248dfa735D50345b1d2657C8dBC5d60B |
Token Governance
Once a token is deployed, the creator becomes theowner and has the following capabilities:
Mint
Call
mint(to, amount) to issue new tokens — only available when mintable = true and the new supply would not exceed maxSupply.Add Observers
Call
addObserver(address) to grant a compliance address decrypt access to all current and future balances.Remove Observers
Call
removeObserver(address) to revoke an observer’s decrypt access.Transfer / Renounce Ownership
Call
transferOwnership(newOwner) or renounceOwnership() to permanently give up minting and observer management rights.