# State Contract

### State Contract

State.sol - Github

The state contract stores the state of each identity operating within Polygon ID. Each identity has an identifier and an identity state associated to it. Each identifier and the corresponding identity state are stored inside the identities mapping.

An identity gets updated by executing the state transition function. The State contract verifier the proof on-chain via its transitState function.

The State contract provides a timestamp of the changes that occur inside an identity state. No personal information (such as claims) is stored on-chain nor it is inferrable from the information stored on-chain.

Note that the actual proof verification is executed by calling the verifyProof function inside the verifier.sol.

The verifier.sol contract is automatically generated using circom and can be used as a standalone contract to verify the proof. State.sol implements further logic once the proof is verified (such as updating the identity state).