> For the complete documentation index, see [llms.txt](https://unirep.gitbook.io/unirep-social/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unirep.gitbook.io/unirep-social/cli/user-identity.md).

# User Identity

Create a user identity with libsemaphore

* Semaphore is a zero-knowledge gadget which allows users to prove their membership of a set without revealing their original identity.&#x20;
* We use [libsemaphore](https://github.com/weijiekoh/libsemaphore) here to generate users' identity and users can send their identity commitment instead of their semaphore identity to sign up.
* Only a user has the semaphore identity and the identity commitment has signed up, the user can perform actions on Unirep contract.

{% hint style="info" %}
This function does not require users connect to an Ethereum provider.
{% endhint %}

### `genUnirepIdentity`

```
npx ts-node cli/index.ts genUnirepIdentity [-h]
```

* base64url encoded identity and identity commitment will be printed
* A string with `Unirep.identity` prefix is user's semaphore identity
* A string with `Unirep.identityCommitment` prefix is user's semaphore identity commitment

#### Options inherited from parent commands <a href="#options-inherited-from-parent-commands" id="options-inherited-from-parent-commands"></a>

```
  -h, --help            Show this help message and exit.
```
