What is Citadel?
Citadel is Dusk's self-sovereign identity protocol. It lets a user prove they hold a valid credential, called a license, without putting their personal details onchain. A service learns that the proof is valid and decides whether to grant access.
Regulated services have to know certain things about their users, such as whether they passed a check or meet an eligibility rule. Handing the same documents to every service spreads personal data widely, and writing identity data to a public blockchain exposes it permanently. Citadel separates the two: a License Provider checks the user offchain, and the user proves the result to the services that trust that provider.
How does Citadel work?
Three parties take part:
| Party | Role |
|---|---|
| User | Requests a license and proves they hold it |
| License Provider (LP) | Checks the user offchain, signs the relevant attribute data and issues the license |
| Service Provider (SP) | Receives the user's session and decides whether to grant access |
The flow has four steps:
- The License Provider checks the user offchain, signs the relevant attribute data, publishes an encrypted license and registers that license in a Citadel contract.
- The user generates a zero-knowledge proof showing that they own a registered, LP-signed license.
- The Citadel contract verifies the proof and records a public session.
- The user sends a session cookie to the Service Provider, and the Service Provider decides whether to grant access.
The public session shows that a valid proof was verified. It does not reveal the user's wallet key, the license used, the LP's key, the SP's key, the signed attributes or the Merkle proof path.
Citadel proves that a session is cryptographically valid. It does not decide service policy. The Service Provider still chooses which License Providers it trusts and which attributes it accepts, so a regulated venue can apply its own rules on top of the same protocol.
Under the hood Citadel uses PLONK zero-knowledge proofs, the Poseidon hash and Schnorr signatures over the Jubjub curve. Developers can deploy their own Citadel license contract on Dusk. Citadel builds on the design in the research paper Citadel: Self-Sovereign Identities on Dusk Network.
Citadel is one of the ways Dusk applies selective disclosure, which lets a user reveal specific information or prove a condition without exposing all the underlying data. The compliance and identity use case shows where this fits in regulated markets, and What is Dusk? explains the rest of the network. Dusk's Apps & Products page lists Citadel alongside the Dusk wallets, the network components and the developer tools.
Common questions about Citadel
Does Citadel store personal data onchain?
No. Personal attributes are not written to the blockchain. The License Provider checks the user offchain and publishes an encrypted license, and the user proves ownership of it with a zero-knowledge proof.
Who decides whether a user gets access?
The Service Provider. Citadel proves that a session is cryptographically valid, but it does not decide service policy. The Service Provider chooses which License Providers it trusts and which attributes it accepts.
What does a Citadel session reveal?
A session is a public record that a valid proof was verified. It does not reveal the user's wallet key, the license used, the License Provider's key, the Service Provider's key, the signed attributes or the Merkle proof path.
Is Citadel a KYC provider?
No. Citadel is a protocol. A License Provider performs the checks and issues licenses, and Citadel lets users prove they hold one to a service without handing over the underlying details.
Start building: read the Citadel protocol guide in the Dusk docs