Credential Exchange Guide
This guide walks through the full lifecycle of W3C Verifiable Credentials in Trust Hub.
1. Setup
from trusthub import TrustAgent, CredentialIssuer, CredentialVerifier, CredentialHolder
from trusthub.crypto.signing import PQCSigner
resolver = DIDResolver()
admin = TrustAgent.create(org="acme", entity_type="human", resolver=resolver)
agent = TrustAgent.create(org="acme", entity_type="agent", resolver=resolver)
signer = PQCSigner(MLDSALevel.LEVEL_3)2. Issue
issuer = CredentialIssuer(signer=signer, keypair=admin._signing_keypair)
credential = issuer.issue(
issuer_did=admin.did,
subject_did=agent.did,
credential_types=["AgentCapability"],
claims={"capability": "tool:search"},
)3. Hold & Present
holder = CredentialHolder(holder_did=agent.did)
holder.store(credential)
presentation = holder.create_presentation(
credential_ids=[credential.id],
signer=signer,
keypair=agent._signing_keypair,
)4. Verify
verifier = CredentialVerifier(resolver=resolver, signer=signer)
assert verifier.verify(credential)
print("Credential verified!")