
Every time an app asks you to verify your identity, it asks you to make a trade: privacy for access. Link your wallet to your GitHub. Prove your humanity by connecting your social. Confirm you’re a real user by exposing who you are.
That trade is broken by design. Once your identity is on-chain, it’s there forever — visible, linkable, and out of your control.
@Demos_Network ZK Identity system is built to eliminate that trade-off entirely.
ZK Identity lets you attest to a real-world identity — a GitHub account, a verified profile, any supported provider — and then use that attestation to take on-chain actions, repeatedly, without allowing observers to link actions across different contexts.
It uses Zero-Knowledge Proofs (ZK-SNARKs) to make this possible. The math guarantees three things:
Privacy: nobody knows which user performed an action.
Uniqueness: a user can’t act twice in the same context (no Sybil attacks, no double-claiming).
Soundness: the proof is mathematically verifiable. No trust required.
Step one - linking your identity.
You generate a random secret on your device — it never leaves. You use it to calculate a commitment (a cryptographic fingerprint of your identity and secret combined), then submit that commitment to the Demos blockchain. Validators add it to a global Merkle Tree.
No name, no account handle, nothing readable goes on-chain.
Step two - proving ownership
Whenever you want to take an action — claim an airdrop, cast a vote, access a feature — you generate a ZK proof locally using your secret. You also compute a nullifier, a unique hash tied to that specific action. You submit both. Validators check that your proof is valid and that the nullifier hasn’t been used before.
The network learns that someone valid took an action. It learns nothing else.
The later attestation does not reveal which commitment in the tree belongs to the user. No observer — on-chain or off — can connect them to the same person.
Think about developer airdrops. Currently, verifying that a claimant holds a real GitHub account means asking them to link that account to their wallet — permanently, publicly. With ZK Identity, a user proves they have a GitHub account, claims exactly once (the nullifier enforces it), and walks away with zero on-chain trace connecting their wallet to their developer identity.
Think about DAO governance. Every verified user gets one vote per proposal, anonymously. The vote is provably unique. The voter is provably untraceable.
Think about cross-chain identity. Because Demos operates as a network-agnostic layer connecting Web2 APIs, multiple L1s and L2s, a ZK Identity commitment on Demos can back attestations across any chain the Demos XM module reaches.
ZK Identity isn’t a bolt-on.
Identity commitments flow through the standard Demos transaction lifecycle, no separate identity chain, no privileged path. The Merkle Tree of commitments lives in the GCR and inherits all of Demos’ security guarantees — deterministic validator selection, supermajority finality, rollback-safe preprocessing.
It also fits Demos’ modularity-first design. The system uses Poseidon hashing for commitments and Merkle operations, and Groth16 proofs for validator-side verification — meaning the proof system can be upgraded as the field advances, without breaking existing commitments or developer integrations.
The web3 privacy problem isn’t that we lack tools to hide data. It’s that every trust primitive we’ve built requires you to expose yourself first. ZK Identity changes the primitive.
Demos ZK Identity is available now in the Demos testnet, with the first apps utilising ZK Identity already in development.
Prove what you need to prove while revealing nothing that you don’t.
With Demos ZK Identity, you can verify once and prove everywhere.

Every time an app asks you to verify your identity, it asks you to make a trade: privacy for access. Link your wallet to your GitHub. Prove your humanity by connecting your social. Confirm you’re a real user by exposing who you are.
That trade is broken by design. Once your identity is on-chain, it’s there forever — visible, linkable, and out of your control.
@Demos_Network ZK Identity system is built to eliminate that trade-off entirely.
ZK Identity lets you attest to a real-world identity — a GitHub account, a verified profile, any supported provider — and then use that attestation to take on-chain actions, repeatedly, without allowing observers to link actions across different contexts.
It uses Zero-Knowledge Proofs (ZK-SNARKs) to make this possible. The math guarantees three things:
Privacy: nobody knows which user performed an action.
Uniqueness: a user can’t act twice in the same context (no Sybil attacks, no double-claiming).
Soundness: the proof is mathematically verifiable. No trust required.
Step one - linking your identity.
You generate a random secret on your device — it never leaves. You use it to calculate a commitment (a cryptographic fingerprint of your identity and secret combined), then submit that commitment to the Demos blockchain. Validators add it to a global Merkle Tree.
No name, no account handle, nothing readable goes on-chain.
Step two - proving ownership
Whenever you want to take an action — claim an airdrop, cast a vote, access a feature — you generate a ZK proof locally using your secret. You also compute a nullifier, a unique hash tied to that specific action. You submit both. Validators check that your proof is valid and that the nullifier hasn’t been used before.
The network learns that someone valid took an action. It learns nothing else.
The later attestation does not reveal which commitment in the tree belongs to the user. No observer — on-chain or off — can connect them to the same person.
Think about developer airdrops. Currently, verifying that a claimant holds a real GitHub account means asking them to link that account to their wallet — permanently, publicly. With ZK Identity, a user proves they have a GitHub account, claims exactly once (the nullifier enforces it), and walks away with zero on-chain trace connecting their wallet to their developer identity.
Think about DAO governance. Every verified user gets one vote per proposal, anonymously. The vote is provably unique. The voter is provably untraceable.
Think about cross-chain identity. Because Demos operates as a network-agnostic layer connecting Web2 APIs, multiple L1s and L2s, a ZK Identity commitment on Demos can back attestations across any chain the Demos XM module reaches.
ZK Identity isn’t a bolt-on.
Identity commitments flow through the standard Demos transaction lifecycle, no separate identity chain, no privileged path. The Merkle Tree of commitments lives in the GCR and inherits all of Demos’ security guarantees — deterministic validator selection, supermajority finality, rollback-safe preprocessing.
It also fits Demos’ modularity-first design. The system uses Poseidon hashing for commitments and Merkle operations, and Groth16 proofs for validator-side verification — meaning the proof system can be upgraded as the field advances, without breaking existing commitments or developer integrations.
The web3 privacy problem isn’t that we lack tools to hide data. It’s that every trust primitive we’ve built requires you to expose yourself first. ZK Identity changes the primitive.
Demos ZK Identity is available now in the Demos testnet, with the first apps utilising ZK Identity already in development.
Prove what you need to prove while revealing nothing that you don’t.
With Demos ZK Identity, you can verify once and prove everywhere.
Connect Everything.
Connect Everything.
Share Dialog
Share Dialog

Subscribe to Demos

Subscribe to Demos
<100 subscribers
<100 subscribers
No activity yet