Verify a Credential
CogniPilot credentials are digitally signed using the Data Integrity EdDSA Cryptosuites specification. This page explains how to verify the authenticity of a CogniPilot credential.
Quick Verification
Using Our Python Tool
If you have Python installed, you can verify credentials using our verification script:
# Clone the repository
git clone https://github.com/cognipilot/cognipilot_badges.git
cd cognipilot_badges
# Create virtual environment and install dependencies
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# Verify a credential
python scripts/verify_credential.py your-credential.json --key keys/key-1-public.json
What Gets Verified
When you verify a credential, the following checks are performed:
- Proof Type - Confirms the credential uses
DataIntegrityProof - Cryptosuite - Validates the
eddsa-jcs-2022cryptosuite is used - Signature - Cryptographically verifies the Ed25519 signature
- Integrity - Ensures the credential hasn't been tampered with
Manual Verification
Issuer Public Key
CogniPilot credentials are signed with the following public key:
| Property | Value |
|---|---|
| Key ID | https://credentials.cognipilot.org/issuer#key-1 |
| Type | Multikey (Ed25519) |
| Public Key | z6Mkp7ErHCMw7ofrmXRnc17RuppRRJnAdAkdACwFUmxmeRVS |
The full issuer profile is available at: /issuer.json
Verification Process
The eddsa-jcs-2022 cryptosuite verification process:
- Extract the
proofobject from the credential - Remove
proofValueand@contextfrom the proof to create proof configuration - Canonicalize both the proof configuration and credential (without proof) using JCS (RFC 8785)
- SHA-256 hash both canonicalized documents
- Concatenate the hashes:
proof_hash || credential_hash - Verify the Ed25519 signature against the concatenated hash
Third-Party Verifiers
You can also verify CogniPilot credentials using any OpenBadges 3.0 compatible verifier:
- 1EdTech Verifier - Official 1EdTech verification service
- VC Playground - W3C Verifiable Credentials testing tool
Troubleshooting
"Signature verification failed"
This could indicate:
- The credential was modified after signing
- The wrong public key is being used for verification
- The credential was not issued by CogniPilot
"Unsupported cryptosuite"
Ensure your verification tool supports the eddsa-jcs-2022 cryptosuite. Some older tools may only support deprecated proof types.
Questions?
If you have questions about credential verification, please open an issue on our GitHub repository.