Quick Start#

This guide outlines initial preparations for the Verifiable Credentials feature.

1. Feature activation#

Since Verifiable Credentials feature is optional, it must be enabled to be accessible.

# both Credentials service and Learner Record MFE:
ENABLE_VERIFIABLE_CREDENTIALS = true

See Configuration for more details.

2. Issuer credentials generation#

Once enabled Verifiable Credentials feature has reasonable defaults. The only additional activity is needed - issuer credentials setup. Unless we already have appropriate issuer key and issuer ID, we have to generate those:

# use management command:
root@credentials:/edx/app/credentials/credentials# ./manage.py generate_issuer_credentials
>> {
    'did': 'did:key:z6MkgdiV7pVPCapM8oUwfhxBwYZgh8dXkHkJykSAc4DHKD7X',
    'private_key': '{"kty":"OKP","crv":"Ed25519","x":"IGUT8E_aRNzLqouWO4zdeZ6l4CEXsVmJDOpOQS69m7o","d":"vn8xgdO5Ki3zlvRNc2nUqcj50Ise1Vl1tlbs9DUL"}'
}

Here:

  • “did” - unique Issuer decentralized identifier

  • “private_key” - Issuer private JWK

See Management commands for more details.

3. Issuer credentials setup#

Generated issuer credentials we’ll use to update automatically generated with stub values Issuance Configuration.

Enter Credentials Administration interface and find “VERIFIABLE CREDENTIALS” section (/admin/verifiable_credentials/issuanceconfiguration/).

Issuer id: use "did"
Issuer key: use "private_key"
Issuer name: will be used as issuer's verbose name

See Administration site for more details.

4. Ensure status list is accessible#

Status List API endpoint is crucial for the feature. Once everything is configured correctly it must be publicly available:

# each Issuer maintains its own Status List:
https://credentials.example.com/verifiable_credentials/api/v1/status-list/2021/v1/<issuer-did>/

See Status List API for more details.

5. Issuer registration (Learner Credential Wallet)#

This step is specific for the Learner Credential Wallet storage.

See Learner Credential Wallet usage prerequisites.