Verification is a chain of three client-server requests:
Initialization call
Manifest call
Verification call
A sequential API request is submitted based on the response of the previous request.

Verite verification flow
### Initialization call
The verification flow starts with the initialization call.
##### Endpoint
`POST: /verifications
`
##### Query
Its query contains the `network
` and the `chainId
` to help the verifier server decide which blockchain to use. `Subject
` is the DeFi application's address on that blockchain.
##### Response
The response contains two fields: `challengeTokenUrl
` and `statusUrl
`. `challengeTokenUrl
` is for the manifest call and `statusUrl
` is for asynchronous status checks.
### Manifest call
##### Endpoint
`GET: /verifications/{id}
`
The Manifest step calls the `challengeTokenUrl
` from the initialization call's response. It is a `GET
` call without additional parameters.
##### Response
The response is a manifest list that the server accepts. It contains many meta fields as well as fields that should be carried to the verification call.
`reply_url
` field is the URL that the client should call in the verification step.
### Verification call
##### Endpoint
`POST: /verifications/{id}
`
The URL that the client should call at this step is the `reply_url
` field in the response of the previous call.
##### Request
There are several fields in the query that the clients need to carry from either the response of the previous query or the verifiable credential (VC) fetched from the wallet.
field in the query | field in the response of the previous call |
`iss ` | VC's DID |
`sub ` | wallet's address |
`nonce ` | `body.challenge ` |
`presentation_submission.definition_id ` | `body.presentation_definition.id ` |
`vp.verifiableCredential ` | VC that is from wallet. |
`vp.holder ` | wallet's address |
##### Response
A successful verification returns a JSON blob, as illustrated below.
field name | meaning |
`status ` | The status of the verification. |
`verificationResult ` | The result of the verification. |
`signature ` | The signed string, by verifier, of the `verificationResult ` |