Skip to content

Latest commit

 

History

History
101 lines (71 loc) · 5.66 KB

data-groups-and-creation.md

File metadata and controls

101 lines (71 loc) · 5.66 KB
description
Data Groups and how to create them.

Overview

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.

{% hint style="info" %} Everything is open-source. Anyone can compute any Data Group. {% endhint %}

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)

{% hint style="info" %} Take a look at the Sismo Connect Cheatsheet to see all requests. {% endhint %}

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
"Stand With Crypto" NFT MintersWallets of minters Number of NFT minted
Gitcoin Passport HoldersWallets of Gitcoin Passport holdersSybil-resistant score
Sismo Hub Github Contributors GitHub accounts of contributors to sismo-core/sismo-hub repoNumber of contributions
ENS DAO VotersWallets of voters in the ENS DAONumber of votes
Sismo Community MembersWallets, GitHub, Telegram and Twitter accounts of all people that helped SismoLevel of their contributions (1, 2 or 3)

Factory Guide:

Create a Data Group in 5 Minutes

create-your-data-group.md
Sismo Hub Guide:
Create Data Groups Programmatically
create-your-group-generator.md
Sismo Hub Guide:
Add a Data Provider to the Sismo Factory
create-your-data-provider.md