The Veil ID
A Veil ID (also referred to as userPk throughout the codebase) is a deterministic, anonymous public key that identifies a user within the Veil protocol. It is derived from the user’s secret key using a domain-separated persistent hash:
veilId = persistentHash(["veil:user", secretKey, contractAddress])The secret key is stored off-chain only by the user (never disclosed to the protocol). The Veil ID is what gets stored on-chain in commitments, ensuring the protocol can track behavior without ever linking it back to a real-world identity or wallet address.
Users generate their Veil ID off-chain and use it when calling Veil’s API endpoints to register and interact with the protocol.
Last updated on