Skip to content

Introduction

The role of the issuer is to create any type of identity related information in the form of claims.

Claims can be viewed as POAPs on steroids. Similar to POAPs, the ownership is cryptographically guaranteed allowing complete user control and reusability across platforms. Differently to POAPs, claims live off-chain ensuring users privacy over their personal identity information.

This tutorial walks you through the set of core primitives necessary to spin off an issuer, issue claims and publish the state on-chain:

The tutorial follows a cascade strucuture: each step relies on the data and code snippets generated in the previous ones. The full executable code can be found here

Iden3 Go Core Libraries

  • Go Iden3 core - Identity core primitives
  • Go Iden3 crypto - Implementation of Poseidon hash and Baby JubJub Elliptic curve
  • Go Merkletree sql - Implementation of Sparse Merkle tree
  • Go circuits - A library for transforming the go-core primitives to json inputs for identity circuits

Other useful resources

  • Circom2 - A compiler written in Rust for compiling circuits written in the Circom language
  • SnarkJS - An npm package that contains APIs to generate and validate zk proofs generated by Circom
  • Circuits - The core circuits of Iden3 Protocol
  • GoLang Intro - Recommended if you are not proficient with GoLang