Overview

Data Groups and how to create them.

Data Groups are created via the Factory UI or by creating a pull request on the Sismo Hub.

The Factory is an interface to easily create Data Groups on the Sismo Hub infrastructure.

The Sismo Hub computes Merkle trees of groups, stores them in its database and publishes the Merkle tree roots onchain.

Onchain roots are the source of truth for back ends and smart contracts to verify whether a ZK proof is valid.

Everything is open-source. Anyone can compute any Data Group.

Data Sources

Data Sources are the accounts that users aggregate in their Data Vault. Currently supported Data Sources:

  • Ethereum wallets/EVM accounts

  • GitHub accounts

  • Twitter accounts

  • Telegram accounts

From imported Data Sources, Vault owners can generate ZK proofs of:

  • Ownership of a specific Data Source (i.e, authentication)

  • Inclusion of an owned Data Source in a Data Group (and a claim about its value in the group)

Take a look at the Sismo Connect Cheatsheet to see all requests.

Data Groups

Data Groups are sets of Data Sources in which each Data Source has an associated value.

Concrete examples of Data Groups and ZK proofs you can request from users
{ // "Stand With Crypto" NFT Minters Data Group
  "0xa2bf1b0a7e079767b4701b5a1d9d5700eb42d1d1": "2", // minted 2 NFTs
  "0xd03ad690ed8065edfdc1e08197a3ebc71535a7ff": "4", // minted 24 NFTs
  "0x70ddb5abf21202602b57f4860ee1262a594a0086": "21",// minted 21 NFTs
  "0x0e440bd9798ad22cb8fd6f1a433f2f16e8786770": "3", 
  "0x1e8cbbbfb827785ecc23dd0426a8907c7cdcca3a": "3",
  "0x4101ec64896fa8afda5be145b6321275bb375fe0": "3",
  "0x600f9faa8a2d39a710b28e2d0ec8a5dacc12b00f": "11",
  "0xc643c9411a6b489e9833b16631140f42bbfcb6d1": "2",
  "0x750f565251228a561d8ce8cceb03731a7a2430f8": "2",
  "0x2245be89fc8fab94ed982e859aa3212a4e4eb7e5": "14",
  [...]
}
  • All owners of these wallets can generate a ZK proof attesting that they are part of this group

  • The owner of 0x70ddb5abf21202602b57f4860ee1262a594a0086 can generate a ZK proof attesting that they are part of the group with a value > 10 (e.g, minted more than 10 NFTs)

  • The owner of 0xa2bf1b0a7e079767b4701b5a1d9d5700eb42d1d1 can create a ZK proof attesting that they are part of the group with a value = 2 (e.g minted exactly 2 NFT)

{ // Sismo Community Data Group, created by Sismo
  // It regroups all community members, organized in 3 levels
  // level 1 = supporter, level 2 = contributor, level 3 = builder
  "0x32108e5f09f0df35aefc2ef4c520bbd06a57dae5": "2", // level 2 
  "0x53deea1808b6d2b8681241e3857b6c6ed1e7e103": "1", // level 1
  "0x1c494f1919c1512ebe74a5dcc17dac9a64069023": "2", // level 2
  "dhadrien.eth": "3", // level 3
  "github:yum0e": "2",
  "github:leosayous21": "2",
  "telegram:sampolgar": "2",
  "telegram:zpedro": "2",
  "twitter:wojtekwtf": "3",
  "twitter:albiverse": "3",
  [...]
}
  • All owners of these wallets can generate a ZK proof attesting that they are part of this group

  • The owner of dhadrien.eth can create a ZK proof attesting that they are part of the group with a value > 2 (e.g, community member with level > 2)

  • The owner of @wojtekwtf on Twitter can generate a ZK proof attesting that they are part of the group with a value = 3 (e.g, community member with level 3)

Data Group ExamplesMembers (Data Sources)Value for each Data Source

Wallets of minters

Number of NFT minted

Wallets of Gitcoin Passport holders

Sybil-resistant score

GitHub accounts of contributors to sismo-core/sismo-hub repo

Number of contributions

Wallets of voters in the ENS DAO

Number of votes

Wallets, GitHub, Telegram and Twitter accounts of all people that helped Sismo

Level of their contributions (1, 2 or 3)

Last updated