> 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-state-transition.md).

# User State Transition

Every user should call user state transition to process received reputation

* See (the definition of user state transition).

### `userStateTransition`

```
npx ts-node cli/index.ts userStateTransition 
                  [-h] 
                  [-e ETH_PROVIDER] 
                  -id IDENTITY 
                  [-b START_BLOCK] 
                  -x CONTRACT 
                  [-db] 
                  (-dp | -d ETH_PRIVKEY)
```

* Every user should execute user state transition by hisself before executing any action in the incoming epoch.
* It will generate a user state transition proof and it can be verified at the Unirep smart contract.

### Options

```
  -e ETH_PROVIDER, --eth-provider ETH_PROVIDER
                        A connection string to an Ethereum provider. Default: http://localhost:8545
  -id IDENTITY, --identity IDENTITY
                        The (serialized) user's identity
  -b START_BLOCK, --start-block START_BLOCK
                        The block the Unirep contract is deployed. Default: 0
  -x CONTRACT, --contract CONTRACT
                        The Unirep Social contract address
  -db, --from-database  Indicate if to generate proving circuit from database
  -dp, --prompt-for-eth-privkey
                        Whether to prompt for the user's Ethereum private key and ignore -d / --eth-privkey
  -d ETH_PRIVKEY, --eth-privkey ETH_PRIVKEY
                        The deployer's Ethereum private key
```

#### 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.
```
