Sismo Docs

User FAQ

Frequently asked questions regarding the UX of the Sismo app.

What is a Badge?

A badge is a non-transferable token (ERC1155) that represents an attestation.
Behind each badge, there is a group of eligible accounts. You must prove that you own an eligible account - that we call source account - to mint a badge on a destination account.
To get the "Ethereum Power User ZK Badge", you must prove that you own an address that sent more than 50 transactions.

What is a source account?

The source account (for a specific badge) is the account that is used to prove eligibility for this badge. You will generate a proof of eligibility from your source account; it will allow you to mint the badge to a destination account. The source account can be an Ethereum account, a GitHub account or a Twitter account.

What is a destination account?

A destination account (for a specific badge) is the account that will receive the badge.

What is the use of Badges?

A badge allows to transfer reputation or data from a source account to a destination account.

What are ZK Badges and why are they interesting?

ZK Badges are privacy preserving badges that do not create any link between the source account used to prove eligibility and the destination account that receives the badge.
To mint a ZK Badge, users generate a ZK Proof of badge eligibility from their source accounts. This ZK Proof is verified on-chain by the ZK Attester which will issue the ZK Badge.

What accounts can I use as sources to mint ZK Badges?

You can use any accounts as a source for ZK Badges. During the ZK Badge minting process, the source account is NOT revealed. Whether your source account is a public account or a private wallet, no one will be able to infer what source account you used! For now, the source account can be an Ethereum account, a GitHub account or a Twitter account. More web2 accounts will be added soon!

What account should I use as destinations for ZK Badges?

There are several different use cases where ZK Badges are interesting!
  • You can use an empty, fresh address as destination. It will allow to prove your reputation or some historical data about one of your accounts without revealing them.
I am a big delegate of a DAO and want to speak out but I don't want to do it publicly.
I can mint a ZK Badge that proves that I am a top delegate on a fresh address and use this address to signal anonymously my position.
  • You can use your public address (e.g ENS Address that you share on twitter). It will allow you to export your reputation from your private wallets without revealing them to the world.
I am a big Ethereum staker and I want to prove it publicly without revealing my deposit address.
I can mint a ZK Badge that proves that I staked to my ENS address.

Can I transfer my badge?

No, badges are Non-transferable ERC-1155 tokens.

If I mint my badge with a wrong destination account, can I retry with another?

No, you can only mint one badge per eligible source account. Think carefully about the destination account you choose for your badge depending on its use case.
I did the Proof of Humanity KYC on a source account and I want to mint the Proof of Humanity ZK Badge for future private voting. To preserve my privacy, I create a new wallet (a new destination account) and I mint my ZK Badge with it.

Will my badge be burnt if I am no longer eligible?

No, even if you are no longer eligible for a badge, you will still hold it.
Some applications may require you to renew it, which you will be unable to do if you are no longer eligible.
I have minted my Proof of Humanity ZK Badge but my source address has been removed from the Proof of Humanity Registry. I will still hold the Proof of Humanity ZK Badge but I will not be able to renew it.

As an app, how can I be sure a user badge is valid?

Badges are timestamped attestations. Depending on badges and on use cases, applications may require their users to renew their badge.
The Ethereum Power Users ZK Badge will always be valid since it is based on past transactions. I don't need to ask my users to renew it.
I want to do a private vote on Snapshot with the Proof of Humanity ZK Badge. I want to be sure that my voters were on the Proof of Humanity Registry 1 week ago. I only accept badges that were minted 1 week ago or less. Users will need to renew their badges for voting.

What is the Vault?

The Sismo Vault is an encrypted storage used to improves UX in Sismo's app. It is stored on Sismo's server but only accessible to you as it is encrypted. Only you can decrypt to your vault.
It stores the imported source and destination accounts used to generate badges so you do not have to add them every time you use Sismo.

Creating my Vault, what are the supported wallets?

The Sismo Protocol only support the following wallets: Metamask, Wallet connect compatible wallets (e.g: Rainbow).
Smart contract wallets (e.g: Argent, Gnosis Safe Multisig) are not compatible yet.

What is a Vault Owner?

A Vault Owner is an imported account that can decrypt your vault.
By default, all source and destination accounts imported in the vault are setup as owners. It can be updated in the vault's settings.
By signing in to Sismo with an owner account, you retrieve your entire vault and all its imported sources and destinations.

Importing an account, what does it mean?

Importing an account in your Sismo vaults means storing the cryptographic tools necessary to generate ZK Badges.
Whether an account is used as a source or destination account, you must generate cryptographic tools (a seed, and a commitment) as a first step to later generate the ZK Proof required to mint a ZK Badge. The vault stores those (seed and commitment) to give you a seamless experience when using Sismo.
  • The seed: the seed is generated by signing a message from an account. The seed is used to generate secrets (such as the encryption key of your vault if the account is set as owner or such as commitments needed to generate ZK Badges).
  • The commitment is a secret derived from your seed and address. It allows you to generate ZK Proofs from your accounts. (more on this in the Hydra Section).

Why are there two signatures required when importing an account?

It is to generate your seed and your commitment, both needed to generate ZK Proofs

Is there a tutorial to use the sismo app?

In this article, you will find all the necessary information to guide you through the Sismo App from implementing your wallets into the Sismo vault to minting your first ZK Badge.

What are the Sismo Contributor ZK Badge levels?

The Sismo Contributor ZK Badge has 3 different levels:
  • Level 1 (Users): 1 voting point per proposal
    • Mainly all of the addresses who already interacted with Sismo Main Application, as well as some .sismo.eth ens holders.
  • Level 2 (Impactful contributors): 50 voting points per proposal
    • Holders of specific badges, Sismo Gitcoin donors, Sismo events attendees, and carefully selected .sismo.eth ens holders.
  • Level 3 (Builders): 500 voting points per proposal
    • Active contributors to Sismo and all the members of the Sismo Core Team.
For more information regarding the eligibility criteria for minting the Sismo Contributor ZK Badge, please read the following:

Why can't I vote on Sismo snapshot space?

In order to vote, you need to own the "Sismo Contributor" ZK Badge (
When connecting to Snapshot, make sure to select the correct wallet owner of the Sismo Contributor ZK Badge.
If you minted the badge after the current Sismo Snapshot proposal has started, you will not be eligible to submit your vote. You will be eligible for the next snapshot proposal.

What is the difference between Sismo Main and Sismo Playground?

Two instances of the protocol have been deployed on polygon (contracts):
  • Playground, permissionless protocol: Any team can create ZK Badges for their community (via our factory or using our tutorial).
  • Main, curated protocol: Only feature badges that were curated by our governance.
For example: in order to benefit from voting power in Sismo DAO proposals, you need to have the Sismo Contributor ZK Badge from the curated environment ( and the playground environment. (
The playground badges can be seen as test badges, which can be integrated into the Main environment and become official if a proposal is submitted to a vote by the Sismo DAO. More info on how to move badges from Playground to Main here:

How can I see the eligibility criteria for a badge?

First, click on the badge you are interested in (e.g.
The ZK Badge's window will open, showing if you are or not eligible for the ZK Badge (refer to the Blue box in the image below).
To know the eligibility criteria for the ZK Badge, click on the badge image or "Badge details" (refer to the Red box in the image below).
The below pop-up will appear:
A brief description of the badge is given under the ZK Badge's name.
For further details, you can click on the Specifications section (please refer to the Purple box in the image above) which will show you the precise eligibility criteria for the ZK Badge.

How to display badges on Opensea?

First go to: and connect your wallet.
Select the More section and click on Hidden. Your ZK Badges will appear.
Now if you want to make them visible for everyone:
Go to one of your badges and click on Unhide, then sign the message with your wallet.
Your badge will now appear in the Collected section (public) of your account (

Where can I get a sismo.eth ENS subdomain?

The minting of sismo.eth ENS Subdomains has been put on hold for now.

I just completed all the requirements for a badge, why am I still not eligible?

To be eligible for a badge, your address has to be in a group of eligible addresses.
And to keep updated (or not) the badge, his creator has multiple choices concerning the update frequency ("refresh") of the group:
  • Once: The group will be only be generated one time
  • Daily: The group will be updated daily
  • Weekly: The group will be updated weekly
  • Monthly: The group will be updated monthly
So if you just completed all the requirements for a badge, you need to wait for its next group update to be eligible.
To see the next group update for a badge: click on the badge image or "Badge details" (refer to the Red box in the image below):
Then you'll see the next update date at "generation date" (Red box):
Note: If the group update frequency is Once, you'll see None written instead of the date.
You just minted the GR15 Gitcoin Contributor ZK Badge. This allows you to mint the Sismo Contributor ZK Badge. To mint it you will have to wait for the next update regarding the Contributor ZK Badge group.