// the find
sismo-core/sismo-badges
Contracts of the Sismo Badge Minting Protocol
Sismo is a ZK attestation protocol that lets users prove ownership of web2/web3 accounts without revealing which accounts they own, then mint 'badges' (non-transferable ERC1155 tokens) as proof. The core idea: you have a source account with some property (e.g., early Ethereum contributor), you generate a ZK proof, and mint a badge to a destination account that has no on-chain link to the source. It's for developers building privacy-preserving identity and reputation systems on Ethereum.
The separation between AttestationsRegistry (stores raw attestations) and Badges (stateless ERC1155 view over those attestations) is clean — you can add new badge views without touching attestation storage. The nullifier scheme in HydraS1 prevents double-claiming without revealing which source account was used, which is the core cryptographic property the whole thing depends on. The AccountboundAttester variant letting users migrate their badge to a new destination address is a practical UX win that most ZK badge systems miss. Deployments across mainnet, Polygon, and Gnosis are committed directly in the repo with full contract artifacts, which is genuinely useful for integration.
The project shut down in late 2023 — Sismo announced they were pivoting and deprecated the protocol, so the last commit being October 2023 is not a maintenance lag, it's an end-of-life signal. The off-chain proving infrastructure (the Hydra-S1 prover, the data vault, the vault app) is not in this repo, so the contracts alone are not usable without Sismo's now-offline services. The Pythia1 attester relies on a centralized Pythia oracle controlled by Sismo, which is a trust assumption that undermines the decentralization story. No formal security audit is linked or included.