> For the complete documentation index, see [llms.txt](https://unirep.gitbook.io/unirep/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/package/cli/user-state-transition.md).

# User state transition

Users should call user state transition to receive reputation

## `userStateTransition`

```
npx ts-node cli/index.ts userStateTransition
                  [-h] 
                  [-e ETH_PROVIDER] 
                  -id IDENTITY 
                  -x CONTRACT 
                  -d ETH_PRIVKEY
```

* It will generate [start transition proof](https://unirep.gitbook.io/unirep/package/cli/pages/4XEtg7z8YhbBLM4ctJDo#1.-start-transition-proof), [process attestations proof](https://unirep.gitbook.io/unirep/package/cli/pages/4XEtg7z8YhbBLM4ctJDo#2.-process-attestations-proof)s, and the [user state transition proof](https://unirep.gitbook.io/unirep/package/cli/pages/4XEtg7z8YhbBLM4ctJDo#3.-user-state-transition-proof).

### 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
  -x CONTRACT, --contract CONTRACT
                        The Unirep contract address
  -d ETH_PRIVKEY, --eth-privkey ETH_PRIVKEY
                        The user'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.
```

{% hint style="info" %}
source: [core/cli/userStateTransition.ts](https://github.com/Unirep/Unirep/blob/main/packages/core/cli/userStateTransition.ts)
{% endhint %}
