Skip to content

Commit

Permalink
GITBOOK-521: Data vault docs (updated)
Browse files Browse the repository at this point in the history
  • Loading branch information
dhadrien authored and gitbook-bot committed Aug 22, 2023
1 parent 5aa6493 commit 92f335b
Show file tree
Hide file tree
Showing 42 changed files with 221 additions and 184 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ By using Sismo Connect, an easy-to-integrate single sign-on (SSO), applications

## Data Vault: Sovereign Identity Aggregator

Users aggregate their identity by adding Data Sources to their private, local and sovereign [Data Vault](how-sismo-works/core-components/what-is-the-data-vault.md).
Users aggregate their identity by adding Data Sources to their private, local and sovereign [Data Vault](data-vault/what-is-the-data-vault.md).

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.

Expand Down Expand Up @@ -130,7 +130,7 @@ Examples of Data Groups:
| [Sismo Community Members](https://factory.sismo.io/groups-explorer?search=0xd630aa769278cacde879c5c0fe5d203c) | 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](data-groups/data-groups-and-creation/). 
Anyone can [create a new Data Group](data-groups/data-groups-and-creation.md). 
{% endhint %}

<table data-view="cards"><thead><tr><th data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><a href="broken-reference">Broken link</a></td><td><a href=".gitbook/assets/Build with Sismo Connect.png">Build with Sismo Connect.png</a></td></tr><tr><td><a href="https://apps.sismo.io">https://apps.sismo.io</a></td><td><a href=".gitbook/assets/AppStore.png">AppStore.png</a></td></tr><tr><td><a href="https://case-studies.sismo.io">https://case-studies.sismo.io</a></td><td><a href=".gitbook/assets/Case Studies.png">Case Studies.png</a></td></tr></tbody></table>
Expand Down
65 changes: 33 additions & 32 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* [Tutorials](build-with-sismo-connect/tutorials/README.md)
* [Get Your appId - Create a Sismo Connect App](build-with-sismo-connect/tutorials/create-a-sismo-connect-app.md)
* [Onchain Tutorial (1/2): Code Your Airdrop Contract With Privately-Aggregated Data](build-with-sismo-connect/tutorials/tuto.md)
* [Onchain Tutorial (2/2): Deploy Your Airdrop Contract](build-with-sismo-connect/tutorials/deploy-your-contracts.md)
* [Onchain Tutorial (2/2): Deploy Your Airdrop Contract](build-with-sismo-connect/tutorials/deploy-your-contracts.md)
* [Technical Documentation](build-with-sismo-connect/technical-documentation/README.md)
* [Sismo Connect Configuration](build-with-sismo-connect/technical-documentation/sismo-connect-configuration.md)
* [Auths](build-with-sismo-connect/technical-documentation/auths.md)
Expand All @@ -23,43 +23,44 @@
* [Sismo Connect React: Request](build-with-sismo-connect/technical-documentation/packages/react.md)
* [Sismo Connect Server: Verify Offchain](build-with-sismo-connect/technical-documentation/packages/server.md)
* [Sismo Connect Solidity Library: Verify Onchain](build-with-sismo-connect/technical-documentation/packages/solidity.md)
* [Vault Identifiers](build-with-sismo-connect/technical-documentation/vault-and-proof-identifiers.md)
* [FAQ](build-with-sismo-connect/faq.md)

## Data Groups

* [Data Groups & Creation](data-groups/data-groups-and-creation/README.md)
* [Factory Guide: Create a Data Group in 5 Minutes](data-groups/data-groups-and-creation/create-your-data-group.md)
* [Sismo Hub Guide: Create Data Groups Programmatically](data-groups/data-groups-and-creation/create-your-group-generator.md)
* [Sismo Hub Guide: Add a Data Provider to the Sismo Factory](data-groups/data-groups-and-how-to-create-them/create-your-data-provider.md)
* [Overview](data-groups/data-groups-and-creation.md)
* [Tutorials](data-groups/tutorials/README.md)
* [Factory Guide: Create a Data Group in 5 Minutes](data-groups/tutorials/create-your-data-group.md)
* [Sismo Hub Guide: Create Data Groups Programmatically](data-groups/tutorials/create-your-group-generator.md)
* [Sismo Hub Guide: Add a Data Provider to the Sismo Factory](data-groups/tutorials/create-your-data-provider.md)
* [Sismo Hub](data-groups/what-is-the-data-vault-1/README.md)
* [Sismo Hub Repository](data-groups/what-is-the-data-vault-1/sismo-hub/README.md)
* [Group Generators](data-groups/what-is-the-data-vault-1/sismo-hub/sismo-protocol-overview.md)
* [Data Providers](data-groups/what-is-the-data-vault-1/sismo-hub/data-providers.md)
* [Data Operators](data-groups/what-is-the-data-vault-1/sismo-hub/data-operators.md)
* [Command Line Interface](data-groups/what-is-the-data-vault-1/sismo-hub/command-line-interface.md)
* [Accounts Registry Tree](data-groups/what-is-the-data-vault-1/accounts-registry-tree.md)

## How Sismo Works
## Data Vault

* [Core Components](how-sismo-works/core-components/README.md)
* [Data Vault](how-sismo-works/core-components/what-is-the-data-vault.md)
* [Proving Schemes](how-sismo-works/core-components/proving-schemes/README.md)
* [Hydra-S1](how-sismo-works/core-components/proving-schemes/hydra-s1.md)
* [Hydra-S2](how-sismo-works/core-components/proving-schemes/hydra-s2.md)
* [Sismo Hub](how-sismo-works/core-components/what-is-the-data-vault-1.md)
* [Technical Concepts](how-sismo-works/technical-concepts/README.md)
* [Accounts Registry Tree](how-sismo-works/technical-concepts/accounts-registry-tree.md)
* [Commitment Mapper](how-sismo-works/technical-concepts/commitment-mapper.md)
* [Resources](how-sismo-works/resources/README.md)
* [Sismo Hub Repository](how-sismo-works/resources/sismo-hub/README.md)
* [Group Generators](how-sismo-works/resources/sismo-hub/sismo-protocol-overview.md)
* [Data Providers](how-sismo-works/resources/sismo-hub/data-providers.md)
* [Data Operators](how-sismo-works/resources/sismo-hub/data-operators.md)
* [Command Line Interface](how-sismo-works/resources/sismo-hub/command-line-interface.md)
* [Sismo API](how-sismo-works/resources/sismo-api/README.md)
* [API Links](how-sismo-works/resources/sismo-api/api-links.md)
* [Query From a Client](how-sismo-works/resources/sismo-api/query-from-a-client.md)
* [Group](how-sismo-works/resources/sismo-api/group/README.md)
* [Get groups](how-sismo-works/resources/sismo-api/group/get-groups.md)
* [Get group snapshots](how-sismo-works/resources/sismo-api/group/get-group-snapshots.md)
* [Common Parameters](how-sismo-works/resources/sismo-api/common-parameters.md)
* [Advanced Filtering](how-sismo-works/resources/sismo-api/advanced-filtering.md)
* [Transaction](how-sismo-works/resources/sismo-api/other-models/transaction.md)
* [Deployed Contract Addresses](how-sismo-works/resources/sismo-101.md)
* [Overview](data-vault/what-is-the-data-vault.md)
* [Vault Identifiers](data-vault/vault-and-proof-identifiers.md)
* [Proving Schemes](data-vault/proving-schemes/README.md)
* [Hydra-S1](data-vault/proving-schemes/hydra-s1.md)
* [Hydra-S2](data-vault/proving-schemes/hydra-s2.md)
* [Commitment Mapper](data-vault/commitment-mapper.md)

## Resources

* [Deployed Contract Addresses](resources/sismo-101.md)
* [Sismo API](resources/sismo-api/README.md)
* [API Links](resources/sismo-api/api-links.md)
* [Query From a Client](resources/sismo-api/query-from-a-client.md)
* [Group](resources/sismo-api/group/README.md)
* [Get groups](resources/sismo-api/group/get-groups.md)
* [Get group snapshots](resources/sismo-api/group/get-group-snapshots.md)
* [Common Parameters](resources/sismo-api/common-parameters.md)
* [Advanced Filtering](resources/sismo-api/advanced-filtering.md)
* [Transaction](resources/sismo-api/transaction.md)

## Links

Expand Down
2 changes: 1 addition & 1 deletion build-with-sismo-connect/sismo-connect-cheatsheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ It contains:&#x20;
* Verify them in a back end and access verified data

{% hint style="success" %}
Visit [this section](../data-groups/data-groups-and-creation/) to understand Data Groups and how to create them.
Visit [this section](../data-groups/data-groups-and-creation.md) to understand Data Groups and how to create them.
{% endhint %}

<details>
Expand Down
2 changes: 1 addition & 1 deletion build-with-sismo-connect/technical-documentation/auths.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The `AuthRequest` is an object with the following properties:

* `AuthType` (required): defines the type of authentication required. The following authType are currently supported:&#x20;
* `VAULT`: Sismo Connect returns the user's vaultId for the application that requested it. It is a deterministic anonymous identifier (hash(userVaultSecret, AppId, ..))\
See more information about Vault Identifiers [here](vault-and-proof-identifiers.md).
See more information about Vault Identifiers [here](../../data-vault/vault-and-proof-identifiers.md).
* `GITHUB`: Sismo Connect returns the user's GitHub account id.&#x20;
* `TWITTER` Sismo Connect returns the user's Twitter account id.&#x20;
* `EVM_ACCOUNT`: Sismo Connect returns the user's Ethereum address.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Request proofs from your user on your React project

# Sismo Connect React: Request

The [Sismo Connect](../../../#sismo-connect-the-crypto-native-sso) React package is a wrapper of the Sismo Connect client package which is a package built on top of the [Sismo Data Vault](../../../how-sismo-works/core-components/what-is-the-data-vault.md) app (the prover) to easily request proofs from your users. It is strongly advised to read about the [**Sismo Connect client package**](client.md) to understand the React package.
The [Sismo Connect](../../../#sismo-connect-the-crypto-native-sso) React package is a wrapper of the Sismo Connect client package which is a package built on top of the [Sismo Data Vault](../../../data-vault/what-is-the-data-vault.md) app (the prover) to easily request proofs from your users. It is strongly advised to read about the [**Sismo Connect client package**](client.md) to understand the React package.

### Installation

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Verify proofs from your users

# Sismo Connect Server: Verify Offchain

The Sismo Connect Server is a back-end package built on top of the [Hydra-S2 Verifier](../../../how-sismo-works/core-components/proving-schemes/hydra-s2.md) to easily verify proofs from your users offchain.&#x20;
The Sismo Connect Server is a back-end package built on top of the [Hydra-S2 Verifier](../../../data-vault/proving-schemes/hydra-s2.md) to easily verify proofs from your users offchain.&#x20;

The Sismo Connect Server is

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The Sismo Connect Solidity Library allows to easily verify proofs from your user

<figure><img src="../../../.gitbook/assets/Sismo Connect onchain Flow (2).png" alt=""><figcaption><p>Sismo Connect onchain Flow</p></figcaption></figure>

This page will detail all the specifications of the Sismo Connect Solidity Library that is deployed on [**the following chains**](../../../how-sismo-works/resources/sismo-101.md).
This page will detail all the specifications of the Sismo Connect Solidity Library that is deployed on [**the following chains**](../../../resources/sismo-101.md).

You can find the Solidity Library GitHub repository [**here**](https://github.com/sismo-core/sismo-connect-solidity).

Expand Down Expand Up @@ -111,7 +111,7 @@ If your proof is valid, the contract will continue its execution, otherwise, it

## `verify()`

The `verify()` function allows you to verify a proof generated by the [Sismo Vault app](../../../how-sismo-works/core-components/what-is-the-data-vault.md) with respect to some requests.
The `verify()` function allows you to verify a proof generated by the [Sismo Vault app](../../../data-vault/what-is-the-data-vault.md) with respect to some requests.

```solidity
function verify(
Expand Down Expand Up @@ -229,7 +229,7 @@ enum AuthType {

**`proofData`** : The proof's content.

**`extraData`** : other data that can be used in the future by other proving schemes. Currently not used in the current proving scheme use: the [Hydra-S2](../../../how-sismo-works/core-components/proving-schemes/hydra-s2.md).
**`extraData`** : other data that can be used in the future by other proving schemes. Currently not used in the current proving scheme use: the [Hydra-S2](../../../data-vault/proving-schemes/hydra-s2.md).

The next objects are the references that allow the `verify()` function to ensure that the proof sent by the user matches the proof expected by the contract:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ If we remove the `appId` from this simple calculation, we would have had the sam

By introducing an `appId`, the vaultId is now different between apps, and the same user will have two different vaultIds on two different apps, effectively preserving the user's privacy.

You can learn more about this notion in this [article](../technical-documentation/vault-and-proof-identifiers.md).
You can learn more about this notion in this [article](../../data-vault/vault-and-proof-identifiers.md).

</details>

Expand Down
4 changes: 2 additions & 2 deletions build-with-sismo-connect/tutorials/deploy-your-contracts.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ Once these steps are done, you are well set up to use [Forge](https://book.getfo

Before deploying any Sismo Connect contract, it is better to understand the Sismo Connect config and especially how to impersonate accounts.&#x20;

As you may already know, Sismo Connect is the communication layer allowing any Sismo Connect app to request ZK proofs about user data and receive the expected proofs before verifying them. To be able to produce such proofs, users are required to import accounts (i.e. [Data Sources](../../data-groups/data-groups-and-creation/#data-sources)) into their [Data Vaults](../../how-sismo-works/core-components/what-is-the-data-vault.md). By doing so, they will be able to prove group membership and account ownership to apps.&#x20;
As you may already know, Sismo Connect is the communication layer allowing any Sismo Connect app to request ZK proofs about user data and receive the expected proofs before verifying them. To be able to produce such proofs, users are required to import accounts (i.e. [Data Sources](../../data-groups/data-groups-and-creation.md#data-sources)) into their [Data Vaults](../../data-vault/what-is-the-data-vault.md). By doing so, they will be able to prove group membership and account ownership to apps.&#x20;

Such proof generation is possible (among other things) thanks to the [**Commitment Mapper**](../../how-sismo-works/technical-concepts/commitment-mapper.md)**.** Therefore, we allow **any developer to impersonate accounts** by automatically creating a fake Commitment Mapper in the Vault app front end if the **Vault object with the impersonate field is defined in the Sismo Connect configuration**.
Such proof generation is possible (among other things) thanks to the [**Commitment Mapper**](../../data-vault/commitment-mapper.md)**.** Therefore, we allow **any developer to impersonate accounts** by automatically creating a fake Commitment Mapper in the Vault app front end if the **Vault object with the impersonate field is defined in the Sismo Connect configuration**.

You can learn more about the Sismo Connect configuration [**here**](../technical-documentation/sismo-connect-configuration.md).

Expand Down
6 changes: 3 additions & 3 deletions build-with-sismo-connect/tutorials/tuto.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,13 +148,13 @@ Let's add the Sismo Connect Button and request the`vaultId` of users.

<summary>vaultId: anonymous indentifier for a user. Will be used to avoid users to claim twice</summary>

Sismo users have a sovereign [Data Vault](../../how-sismo-works/core-components/what-is-the-data-vault.md) where they import Data Sources from which they will generate ZK proofs. Each Data Vault has a secret only known by its owner.
Sismo users have a sovereign [Data Vault](../../data-vault/what-is-the-data-vault.md) where they import Data Sources from which they will generate ZK proofs. Each Data Vault has a secret only known by its owner.

To identify users, you can request a `vaultId.`It is a sovereign and anonymous identifier natively provided to Sismo Connect Apps. vaultId = hash(userVaultSecret, AppId, 0)

The `vaultId` will be used to make sure a user that claimed the airdrop is registered and cannot claim it twice!

You can read more about it in [**Vault Identifiers.**](../technical-documentation/vault-and-proof-identifiers.md)&#x20;
You can read more about it in [**Vault Identifiers.**](../../data-vault/vault-and-proof-identifiers.md)&#x20;

</details>

Expand Down Expand Up @@ -306,7 +306,7 @@ Well, now that you have all these steps in mind, let's improve this airdrop cont
Our first aim is to make the ERC20 airdrop Sybil-resistant. To do this, we simply need to request a proof of Gitcoin Passport group membership from our users. We also want them to have a passport score above 15. You can request such a proof by taking the `groupId` of the "Gitcoin Passport Holders" group that can be found on the Sismo Factory at this link: [https://factory.sismo.io/groups-explorer?search=0x1cde61966decb8600dfd0749bd371f12](https://factory.sismo.io/groups-explorer?search=0x1cde61966decb8600dfd0749bd371f12) and create a [**claim request**](../technical-documentation/claims.md) from it.

{% hint style="success" %}
You can learn how to create a Data Group with the [following tutorial](../../data-groups/data-groups-and-creation/create-your-data-group.md).
You can learn how to create a Data Group with the [following tutorial](../../data-groups/tutorials/create-your-data-group.md).
{% endhint %}

The `groupId` of the Gitcoin Passport Holders group is `0x1cde61966decb8600dfd0749bd371f12`. Let's add our claim request in the React button. We indicate the groupId of the group and the minimum value required in this group.
Expand Down
Loading

0 comments on commit 92f335b

Please sign in to comment.