Unirep Social documentation


UniRep Social is a private and decentralized social media based on a private and non-repudiable reputation system called Unirep. In a Unirep system, users can receive positive and negative reputation from attesters, and voluntarily prove that they have at least certain amount of reputation without revealing the exact amount. Moreover, users cannot refuse to receive reputation from an attester.


Unirep Social is a DApp built on Ethereum blockchain, and users only interact with Unirep Social smart contracts and its specified verifiers. All transactions are logged on chain and all the status of Unirep are constructed from the smart contract.


Circomcircuits are used to provide user's privacy on blockchain. Circomcircuits are built to generate user's zero-knowledge proof so that users don't need to submit their sensitive data on chain.

In addition, users in a Unirep protocol are not interact with each user's identity temporary identity called epoch key, which is only valid within a given epoch. Users can also create multiple epoch keys within an epoch.

Non-repudiable reputation system

Unirep protocol utilizes hash functions and merkle trees to make all reputation non-repudiable.

Social media platform

Users in the social media platform can have the following functions:

  1. Users can sign up in the webpage and generate their semaphore identities

  2. A user can create a post with the user’s proof of reputation to prove that the user has enough reputation to make the post

  3. Everyone with the proof can verify it on chain

  4. Users only reveal their epoch keys in their posts instead of their identities, which will protect users’ privacy

  5. Attesters who see a post with an epoch key can send positive or negative attestations (called upvote or downvote ) to the epoch key

Last updated