Sismo Docs
Search
⌃K
Links

Create a Data Group

Non-developer tutorial
This tutorial will show you how to create a Data Group from start to finish using the Sismo Factory.
At the end of this tutorial, you will have a Group of Twitter, GitHub, and Ethereum accounts. After a short verification process (usually under 1 hour), this Data Group will be deployed on our chain(s) of choice and be available for a Sismo Connect app 🙌
If you are a developer and want to build your own customizable Data Group, go check out this tutorial. It will also explain all the steps of the creation process.
Don't hesitate to join our Dev Telegram and ping us during a hackathon. We would love to talk to you and meet you there. Don't hesitate to send your PR there as well, we will quickly review and merge it.

What are Data Groups?

​Data Groups are derived from Data Sources:
  • Web2 Data Sources: Twitter, GitHub
  • Web3 Data Sources: Ethereum addresses, ENS, Lens handles
Here's an example of what a Group looks like:
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045": "1",
"dhadrien.sismo.eth": "3",
"bigq11.eth": "10",
"martingbz.lens":"2",
...

Data Group Use-Cases

A Data Group can be used for a Sismo Connect app​
Let's take the proof-of-humanity Group as an example and look at these use cases:

Sismo Connect app

Here is an instance of a Sismo Connect App that has been implemented using the proof-of-humanity Group:
Sismo Connect App example
This Sismo Connect App allows you to gate contents/features of your app to Proof of Humanity registrants without revealing the registered addresses.
After this tutorial, you will be able to use your Group for a Sismo Connect app.

Tutorial use case

In this tutorial, we will create a group composed of:
  • Sismo Lens Followers 🌿
  • Sismo EthCC Booth attendees 💜
  • Sismo contributor Level 3 🔨
  • Some Sismo core team members 🎭

Creation of the Group

Group creation page

First, go to the Factory (in Data Group section): https://factory.sismo.io/groups-explorer​
Next, you will have to sign in to the factory with your Ethereum address. To do this click on the login button at the top left corner and sign the message.
Once you are logged in, click on Create new Data Group (red box):
Factory - Group page

Create the Group

Let's build our Group now 🧑‍💻

Title

First, you need to define a name for your Group: in our case, we will take the name "sismo-supporters"
Group title

List of the Data Sources

After doing so, it is possible to add accounts using three different methods:
Data sources fetching methods
There are 3 different ways to define the data of a Group Generator, you can use:
  • A defined list of Data Source ("By uploading a list of accounts")
  • ​Data Providers : function that allows fetching Data Sources ("From data providers")
  • Already existing Groups ("From data group")
For our case we need 3 main things:
  • Define the Sismo core team members
To do this, go to the "By uploading a list of accounts" section, and put your list of Data Source.
Here are the different formats of Data Sources you can use:
  • Ethereum addresses (e.g. "0x123...456":"1")
  • ENS (e.g. "sismo.eth":"1")
  • Lens handles (e.g. "sismo.lens":"1")
  • GitHub accounts (e.g. "github:leosayous21":"1")
  • Twitter accounts (e.g. "twitter:leosayous21":"1"
Here we will add some of the Sismo core team members:
List of Data Source
Here we can see that the 7 accounts have been found (blue box). Then click on the Add button (red box) in order to add these accounts to the group.
If you need to import a huge number of Data Sources, you can also directly import them through a json file by clicking on Replace json button (green box)
For our case, we didn't specify the value of each account, so they will all have a value of 1. But you can define the value you want for each account if desired.
For example, different values can be used for voting power:
  • "1" --> gives you 1 voting power
  • "2" --> gives you 50 voting power
  • "3" --> gives you 500 voting power
​
To do this, you need to use a Data Provider, so we select the "From Data Providers" section. Then we choose the Lens Provider and use the getFollowers() function:
Lens Provider
You need to enter the Lens profile we want to fetch the followers from (sismo.lens) as argument.
Next, by clicking on the Add button (red box), you will know if the Lens profile exists and how many followers they have.
After this, you can click on the second Add button (red box) in order to add these Lens accounts (sismo.lens followers) to the group.
If you are a developer and want to build your own Data Provider, go check out this tutorial. It will explain all the steps of the creation process.
To get the holders of this POAP, we will use the Poap Provider:
With the same logic as before, by clicking on the Add button, we will add the holders of the POAP to the list of Data Sources.
To do this, you have to go to the "From data group" section and search for the group you want to use, for our case, we want to get the sismo-contributors-tier3-builders:
Import a group
So you can select it and click on the Add button.
Finally, that is what you should get at the end:
Final Group
We will have a total of 15750 accounts in our group (blue box), however, this number will have increased since the creation of this tutorial.

Update frequency

After finalizing our list of Data Source, we can select how often this group is updated. For our Sismo Supporter Group, we select ‘Weekly’ from the drop-down menu. This means that users who become a Sismo Contributor level 3 or follow Sismo on Lens after our Group is created can still become eligible after the weekly update.
Don't hesitate to join our Dev Telegram and ping us during a hackathon to ask for a custom Data Group update.
Update frequency

Description

Next, you will have to add 2 descriptions:
  • a one-line description that explains briefly what your Group is composed of
  • a technical description that lists the different requirements for a data source to be part of the Group
Descriptions

Deploy your Group

After having completed the captcha, click on the "Request to deploy":
Deploy the group
You will be redirected to the Group Explorer Page:
wainting for approval
We can see that now your Group request is in waiting for approval (red box).

Verification Process

Once we submitted our pull request, it will be checked by the Sismo core team within 48 hours.
Don't hesitate to join our Dev Telegram and ping us during a hackathon to ask for help or for a custom group update. We would love to talk to you and meet you there. Don't hesitate to send your PR there as well, we will quickly review and merge it (usually under 30 minutes). During hackathons, we are committed to quickly reviewing any new Data Group pull request.
To get verified, your Group must:
  • Be written in the English language
  • Not contain obscene content
  • Not impersonate others or have otherwise malicious intent
So at this point, you have to wait for a Sismo Core team member to accept your group, which will be done in less than 48 hours.
You can also click on the 🔽 icon in order to display more information on your group, including the GitHub Pull Request associated with your Group creation.
For this tutorial, you can find the generated PR here.
Once your Group has been verified by the Sismo core team, it will be displayed as Deploying.
You have finally created your first Group through the Factory, congrats! 🎉
You can now use it to create a Sismo Connect app via the Factory.
If you have any questions or you need help regarding your Group creation process, do not hesitate to join Sismo Discord and ask us in the #general-support. We will be glad to answer you 🤗