explaingit

sismo-core/sismo-badges

Analysis updated 2026-06-24

15,927TypeScriptAudience · developerComplexity · 4/5LicenseSetup · hard

TLDR

Solidity contracts that mint non-transferable badges on Ethereum from zero-knowledge proofs, so wallets can prove traits without revealing private data.

Mindmap

mindmap
  root((sismo-badges))
    Inputs
      ZK proof
      Wallet address
    Outputs
      Attestation record
      Non transferable badge
    Use Cases
      Private identity claims
      Sybil resistant airdrops
      DAO membership badges
    Tech Stack
      Solidity
      TypeScript
      Ethereum
      Hardhat
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Issue badges to wallets that prove they held an NFT on a snapshot date without exposing the wallet history.

USE CASE 2

Build a sybil-resistant airdrop by checking the Attestations Registry instead of trusting raw wallet lists.

USE CASE 3

Write a new custom Attester contract that verifies a different zero-knowledge circuit.

USE CASE 4

Gate a DAO forum so only wallets that hold a specific badge can post.

What is it built with?

SolidityTypeScriptEthereumHardhat

How does it compare?

sismo-core/sismo-badgesreact-native-maps/react-native-mapsalibaba/lowcode-engine
Stars15,92715,95315,879
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardmoderatehard
Complexity4/53/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Needs Hardhat, an Ethereum testnet account, and familiarity with zero-knowledge circuits and Solidity tooling.

MIT license: use freely for any purpose including commercial, just keep the copyright notice.

In plain English

Sismo Badges is a set of smart contracts, self-executing programs that live on a blockchain, that implement the Sismo Badge Minting Protocol. The protocol allows users to prove things about themselves without revealing private information, using a technique called Zero-Knowledge Proofs (ZKP). A zero-knowledge proof lets you demonstrate that you know or own something (like a wallet address or membership in a group) without exposing the underlying data. The system has three core pieces. The Attestations Registry is a shared database on Ethereum (a blockchain platform) that stores verified claims, called attestations, about users. Attesters are contracts that verify a user's request and write attestations into that registry. Badges are a read-only view of those attestations presented as non-transferable tokens, meaning they are digital badges tied to a specific wallet that cannot be sold or moved. Two specific attester implementations are included. The Hydra S1 Simple Attester requires users to submit a zero-knowledge proof to receive an attestation, using a system called nullifiers to prevent the same proof from being used twice. The Accountbound version lets users later update which wallet address holds their attestation. Developers can extend the protocol by building new custom attesters that inherit from the base Attester contract and implement their own verification logic. Written in TypeScript and Solidity, intended for use on Ethereum.

Copy-paste prompts

Prompt 1
Walk me through deploying sismo-badges contracts to a local Hardhat network and minting a Hydra S1 attestation.
Prompt 2
Show me how to write a custom Attester that inherits the base contract and verifies a Semaphore proof instead of Hydra S1.
Prompt 3
Explain how the nullifier in the Hydra S1 Simple Attester prevents double minting from the same source secret.
Prompt 4
Build a small React dapp that reads sismo badges from a wallet and unlocks a gated page.

Frequently asked questions

What is sismo-badges?

Solidity contracts that mint non-transferable badges on Ethereum from zero-knowledge proofs, so wallets can prove traits without revealing private data.

What language is sismo-badges written in?

Mainly TypeScript. The stack also includes Solidity, TypeScript, Ethereum.

What license does sismo-badges use?

MIT license: use freely for any purpose including commercial, just keep the copyright notice.

How hard is sismo-badges to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is sismo-badges for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.