{"schema":"itseasytobe.role-verification.v1","slug":"software-engineer","country":"gb","version":1,"last_verified_at":"2026-06-15T17:47:02.71186+00:00","content_sha256":"91662a742e047a248d971e8cb0202c2b268f2b1d8ee87c7b5557b4e4313d7114","signed":true,"signature":"c_AjXJsm5MDQWE6KQFN_OWRARnvGTK3lIfAFmln5iyGZWMZhhWy8ffxPIasjK7Ei965E8o0XmJ5maYEdY-y7BQ","kid":"N0Ho3alTlnN4D6mUC7T4T6TCIBD1DJLo88L9Y0vOH2g","algorithm":"EdDSA (Ed25519)","jwks_url":"https://itseasytobe.vercel.app/.well-known/jwks.json","canonical_content_url":"https://itseasytobe.vercel.app/api/verify/software-engineer?include=content","how_to_verify":["1. GET https://itseasytobe.vercel.app/api/verify/software-engineer?include=content and take the \"content\" object.","2. Canonicalize it (RFC 8785: sorted keys, no whitespace, UTF-8) and check sha256(canonical) equals content_sha256.","3. Rebuild the signed core {schema:\"itseasytobe.role-verification.v1\", slug, country, version, last_verified_at, content_sha256}, canonicalize it the same way.","4. Verify the Ed25519 signature (base64url) over those bytes against the JWK with matching kid from jwks_url."],"retrieved_at":"2026-06-15T20:19:04.786Z"}