description | cover | coverY | layout | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sovereign identity aggregator and crypto-native SSO |
.gitbook/assets/Gibook Banner1_1900x400.png |
0 |
|
Sismo leverages zero-knowledge proofs (ZKPs) and privacy-preserving technologies to enable users to aggregate their identities and selectively disclose personal data to applications.
By using Sismo Connect, an easy-to-integrate single sign-on (SSO), applications can now obtain personal data that was previously inaccessible, while respecting user privacy.
Sismo Connect aims to replace non-sovereign SSOs such as Google Connect and improve limited SSOs such as Wallet Connect.
Sismo: Personal Data Aggregation and Selective Disclosure
Users aggregate their identity by adding Data Sources to their private, local and sovereign Data Vault.
The Data Vault currently supports the following types of Data Sources: Ethereum wallets, GitHub, Twitter or Telegram accounts. Users can generate ZK proofs from their Data Sources, enabling them to reveal data to applications in a sovereign way.
What a Data Vault looks like
{% hint style="success" %} You can create your own Data Vault and start aggregating your identity here. {% endhint %}
Sismo Connect is a crypto-native single sign-on (SSO) for onchain and offchain apps. Sismo Connect makes it easy for developers to access personal data without infringing on user privacy by requesting and verifying ZK proofs.
{% hint style="success" %} Experience Sismo Connect on the Demo App Store! {% endhint %}
Integration is simple with just a few lines of code: import the front-end package or React button to make Sismo Connect requests, and verify proofs in your back end/smart contracts using Sismo’s Solidity or TypeScript package.
With Sismo Connect, applications can request data from multiple sources at once. There are two types of requests that can be made:
- Authentication: ZK proof of Data Source ownership (e.g. Ethereum wallets, GitHub, Twitter or Telegram accounts).
- Disclosure of anonymized personal data: ZK proofs of Data Source inclusion in a specific Data Group (e.g. GR15 contributor).
{% hint style="info" %} Data Groups are sets of Data Sources in which each Data Source has an associated value. {% endhint %}
Concrete examples 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 this group with a value > 10 (e.g, minted more than 10 NFTs) - The owner of 0xa2bf1b0a7e079767b4701b5a1d9d5700eb42d1d1 can generate a ZK proof attesting that they are part of this group with a value = 2 (e.g, minted exactly 2 NFTs)
{ // 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 generate 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)
Examples of Data Groups:
Data Group Examples | Members (Data Sources) | Value for each Data Source |
---|---|---|
"Stand With Crypto" NFT Minters | Wallets of minters | Number of NFT minted |
Gitcoin Passport Holders | Wallets of Gitcoin Passport holders | Sybil-resistant score |
Sismo Hub GitHub Contributors | GitHub accounts of contributors to sismo-core/sismo-hub repo | Number of contributions |
ENS DAO Voters | Wallets of voters in ENS DAO | Number of votes |
Sismo Community Members | Wallets, GitHub, Telegram and Twitter accounts of all people that helped Sismo | Level of their contributions (1, 2 or 3) |
{% hint style="info" %} Anyone can create a new Data Group. {% endhint %}
Broken link | Build with Sismo Connect.png |
https://apps.sismo.io | AppStore.png |
https://case-studies.sismo.io | Case Studies.png |
SafeDrop is a Sybil-resistant and privacy-preserving ERC20 airdrop that distributes $AIR tokens to users proportionally based on their reputation, aggregated from diverse sources of data (EVM wallets, Telegram, Twitter and GitHub accounts).
By integrating Sismo Connect, SafeDrop users can generate a ZK proof to establish ownership of the data that makes them eligible for the airdrop. No connection between these accounts and the airdrop destination address is ever made.
{% hint style="success" %} Read the full case study here. {% endhint %}
{% hint style="info" %} Learn how to build the Sybil-resistant airdrop here. Alternatively, check out the onchain boilerplate. {% endhint %}