githubEdit

Present a Verifiable Credential

Present a JSON-LD Verifiable Credential, signed by a did:cheqd Decentralized Identifier (DID), using ACA-Py.

Using the /present-proof-2.0 API endpoints, it is possible to present Verifiable Credentials, signed by a cheqd DID, in a few clicks or lines of code. This process enables secure and trustworthy sharing of verifiable credentials within the ACA-Py framework and cheqd ecosystem.

Step 1: Create a Connection with Holder

Use any supported method to create a connection with the Holder. Automated out-of-band protocolarrow-up-right is recommended. You can follow the same steps as described in Issue a Verifiable Credential.

Step 2: Send Proof Request

After connection is established, the Verifier can send a proof request to the Holder.

Sends a free presentation request not bound to any proposal

post
Body
auto_removebooleanOptional

Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)

auto_verifybooleanOptional

Verifier choice to auto-verify proof presentation

commentstringOptional
connection_idstringRequired

Connection identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
tracebooleanOptional

Whether to trace event (default false)

Responses
chevron-right
200Success
application/json
auto_presentbooleanOptional

Prover choice to auto-present proof as verifier requests

auto_removebooleanOptional

Verifier choice to remove this presentation exchange record when complete

auto_verifybooleanOptional

Verifier choice to auto-verify proof presentation

connection_idstringOptional

Connection identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
created_atstringOptional

Time of record creation

Example: 2021-12-31T23:59:59ZPattern: ^\d{4}-\d\d-\d\d[T ]\d\d:\d\d(?:\:(?:\d\d(?:\.\d{1,6})?))?(?:[+-]\d\d:?\d\d|Z|)$
error_msgstringOptional

Error message

Example: Invalid structure
initiatorstring · enumOptional

Present-proof exchange initiator: self or external

Example: selfPossible values:
pres_ex_idstringOptional

Presentation exchange identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
rolestring · enumOptional

Present-proof exchange role: prover or verifier

Example: proverPossible values:
statestring · enumOptional

Present-proof exchange state

Possible values:
thread_idstringOptional

Thread identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
tracebooleanOptional

Record trace information, based on agent configuration

updated_atstringOptional

Time of last record update

Example: 2021-12-31T23:59:59ZPattern: ^\d{4}-\d\d-\d\d[T ]\d\d:\d\d(?:\:(?:\d\d(?:\.\d{1,6})?))?(?:[+-]\d\d:?\d\d|Z|)$
verifiedstring · enumOptional

Whether presentation is verified: 'true' or 'false'

Example: truePossible values:
verified_msgsstring[]Optional

Proof verification warning or error information

post
/present-proof-2.0/send-request
200Success

Sample Request Body

The request body will depend on the credential; for our citizenship credential, this is a sample.

Step 3: Holder sends Presentation Proof

Holder can get the stored credentials from own wallet and format a proof to send to the Verifier.

Sends a proof presentation

post
Path parameters
pres_ex_idanyRequired

Presentation exchange identifier

Example: {"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}
Body
auto_removebooleanOptional

Whether to remove the presentation exchange record on completion (overrides --preserve-exchange-records configuration setting)

tracebooleanOptional

Record trace information, based on agent configuration

Responses
chevron-right
200Success
application/json
auto_presentbooleanOptional

Prover choice to auto-present proof as verifier requests

auto_removebooleanOptional

Verifier choice to remove this presentation exchange record when complete

auto_verifybooleanOptional

Verifier choice to auto-verify proof presentation

connection_idstringOptional

Connection identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
created_atstringOptional

Time of record creation

Example: 2021-12-31T23:59:59ZPattern: ^\d{4}-\d\d-\d\d[T ]\d\d:\d\d(?:\:(?:\d\d(?:\.\d{1,6})?))?(?:[+-]\d\d:?\d\d|Z|)$
error_msgstringOptional

Error message

Example: Invalid structure
initiatorstring · enumOptional

Present-proof exchange initiator: self or external

Example: selfPossible values:
pres_ex_idstringOptional

Presentation exchange identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
rolestring · enumOptional

Present-proof exchange role: prover or verifier

Example: proverPossible values:
statestring · enumOptional

Present-proof exchange state

Possible values:
thread_idstringOptional

Thread identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
tracebooleanOptional

Record trace information, based on agent configuration

updated_atstringOptional

Time of last record update

Example: 2021-12-31T23:59:59ZPattern: ^\d{4}-\d\d-\d\d[T ]\d\d:\d\d(?:\:(?:\d\d(?:\.\d{1,6})?))?(?:[+-]\d\d:?\d\d|Z|)$
verifiedstring · enumOptional

Whether presentation is verified: 'true' or 'false'

Example: truePossible values:
verified_msgsstring[]Optional

Proof verification warning or error information

post
/present-proof-2.0/records/{pres_ex_id}/send-presentation
200Success

Request Body

For our citizenship credential example, the following is a sample request body.

Step 4: Verifier verifies Presentation

Verifier receives the presentation via the connection, and can use the following API to verify. The response must have verified: true .

Verify a received presentation

post
Path parameters
pres_ex_idanyRequired

Presentation exchange identifier

Example: {"value":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}
Responses
chevron-right
200Success
application/json
auto_presentbooleanOptional

Prover choice to auto-present proof as verifier requests

auto_removebooleanOptional

Verifier choice to remove this presentation exchange record when complete

auto_verifybooleanOptional

Verifier choice to auto-verify proof presentation

connection_idstringOptional

Connection identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
created_atstringOptional

Time of record creation

Example: 2021-12-31T23:59:59ZPattern: ^\d{4}-\d\d-\d\d[T ]\d\d:\d\d(?:\:(?:\d\d(?:\.\d{1,6})?))?(?:[+-]\d\d:?\d\d|Z|)$
error_msgstringOptional

Error message

Example: Invalid structure
initiatorstring · enumOptional

Present-proof exchange initiator: self or external

Example: selfPossible values:
pres_ex_idstringOptional

Presentation exchange identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
rolestring · enumOptional

Present-proof exchange role: prover or verifier

Example: proverPossible values:
statestring · enumOptional

Present-proof exchange state

Possible values:
thread_idstringOptional

Thread identifier

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
tracebooleanOptional

Record trace information, based on agent configuration

updated_atstringOptional

Time of last record update

Example: 2021-12-31T23:59:59ZPattern: ^\d{4}-\d\d-\d\d[T ]\d\d:\d\d(?:\:(?:\d\d(?:\.\d{1,6})?))?(?:[+-]\d\d:?\d\d|Z|)$
verifiedstring · enumOptional

Whether presentation is verified: 'true' or 'false'

Example: truePossible values:
verified_msgsstring[]Optional

Proof verification warning or error information

post
/present-proof-2.0/records/{pres_ex_id}/verify-presentation
200Success

Last updated

Was this helpful?