The problem
Reputation is trapped. A decade of on-time delivery on one marketplace counts for nothing on the next, and nothing at all on a résumé, so a professional restarts from zero, repeatedly, for a whole career.
A résumé is self-attested and a profile is self-edited: the claims most worth checking (did they deliver, on time, repeatedly) are exactly the ones no reader can verify.
And the platforms that hold the evidence have every incentive to keep it inside their walls, because portability is the thing that would let a worker leave.
The solution
- The record belongs to the person, and it is built only from outcomes a third party confirmed; self-attested activity is recorded but never counts as verified evidence. What they carry is earned, not claimed.
- They mint a share token, or export a self-verifying bundle, at a disclosure scope they choose (full breakdown, band only, or minimal) and present it on a profile, a résumé, or to the next platform. Anyone verifies the EdDSA signature and revocation offline against published did:web keys, with no API key and no account.
- The same record is also issued as Open Badges 3.0 achievement credentials: a signed, offline-verifiable open standard built to travel to external profiles and portfolios. Be precise about where that lands: LinkedIn does not ingest Open Badges or Verifiable Credentials, so the compliant path there is its member-initiated “Add to profile” certification form, whose credential URL points back at the public proof page. Either way a professional profile is only somewhere the person chooses to display what they already own, never a place Credda pulls data from.
- It stays theirs to revoke: pull the share token and every copy (badge, export, credential) stops verifying, because the StatusList2021 bit flips at the published source.
How it works
Earned on one platform
verified outcomes
Owned as a credential
signed, portable
Presented anywhere
profile · résumé · next platform
Credda is where the record lives and is verified, never a place a worker is pulled into. Evidence comes from connected platforms like GitHub, GitLab and Upwork, and from outcomes a counterparty confirmed; a résumé or a professional profile is a place the credential is displayed, never a source Credda reads from.
The API calls involved
- GET/api/v1/verify/{token}Resolve a worker’s share token: public, no key, and PII-free.
- GET/api/v1/verify/{token}/exportSelf-verifying bundle: public score + signed W3C VC + revocation pointer.
- GET/api/v1/verify/{token}/credentialThe signed Verifiable Trust Credential itself.
- GET/api/v1/open-badges/achievementsThe Open Badges 3.0 achievements this issuer signs: display-ready, offline-verifiable.
- GET/api/v1/users/{id}/score/componentsSix named 0–100 components, when the worker grants full scope.
- GET/api/v1/status/revocationStatusList2021 list: a revoked credential stops verifying immediately.
- GET/.well-known/did.jsonIssuer DID document: the published keys every credential verifies against.
Every endpoint on this page is public and unauthenticated: the worker’s record verifies without anyone holding a key.
# A worker shares their record; anyone verifies it. No key, no account.
$ curl https://api.credda.io/api/v1/verify/THEIR_SHARE_TOKEN
{ "finalScore": 87, "scoreBand": "Excellent", "confidence": 0.92,
"verifiedPlatforms": 2, "credential": "..." }
# Or entirely offline, from the signed export they carry:
$ credda verify their-export.json # exit 0 valid, 2 invalid
Full request and response shapes are in the
API reference.