valid.ca

valid.ca is an open verifiable-credential platform for Canadian safety training.

A training provider applies and gets approved. From then on it posts the facts of each certificate to one API endpoint, and valid.ca signs that record as a W3C Verifiable Credential under the provider's own domain. The worker keeps a copy in a wallet. Anyone can check it for free, with no account and no app.

Workers and verifiers never pay. Issuing is free at launch.

The whole flow

  1. Apply. /issuers/apply. valid.ca staff review it. Approval generates your signing key and your did:web. Start the flat monthly membership and your first API key appears.
  2. Issue. POST /api/v1/credentials with the worker's name and email, the course, and your own certificate number. The response has the signed credential and a public verification URL to print on the certificate.
  3. Deliver. The worker gets an email with a wallet offer and a PIN, and can keep the credential in a valid.ca wallet or any OpenID4VCI wallet.
  4. Verify. An employer or inspector opens the URL, or pastes the credential at /verify, and sees whether the signature holds, whether it has been revoked, and whether valid.ca approved the issuer.

You add a certificate by posting JSON. You do not upload a PDF, and you do not sign anything yourself. The credential still names you as the issuer and verifies against a key on your domain, which is the part How issuing works explains in detail.

Start here

  • Writing the integration. How issuing works, then the API reference for every field, status code, and sample in four languages.
  • Setting up as an issuer. Issuers covers the application, API keys, and the DNS record verifiers depend on.
  • Checking credentials. Verification covers the public page, the paste form, and asking a wallet to present a credential.
  • Reviewing the cryptography. Standards lists every format and spec, with nothing invented in between.

Where things live

  • / this site
  • /docs these guides
  • /verify and /c/{id} public verification
  • /registry and /.well-known/valid-issuers.json who valid.ca has approved
  • /issuers/apply issuer applications
  • /portal the issuer portal: credentials, templates, API keys, domain setup
  • /wallet a worker's credentials
  • /employers the employer dashboard
  • /admin/applications staff review