{"id":"OVC-YQ6P-V4TV-6KEU","status":"valid","status_label":"Valid","title":"Speaker, OSINT Collective Oct'26","description":"Taught a session at the OSINT Collective on 31 October 2026, the monthly online room where people who do OSINT teach what they know. Nothing is sold from the stage.","issuer":{"name":"OSINTverse","slug":"osintverse-hq","website":"https://osintverse.com","trust":"verified","verified_by_osintverse":true},"recipient":{"label":"Dheeraj Yadav","name":"Dheeraj Yadav","name_salt":"fe58780baa7117582f725cce5db14106","handle":null,"handle_salt":null,"name_withheld":false},"issued_at":"2026-10-31T00:00:00.000Z","expires_at":null,"fields":[],"skills":[{"id":"methodology-ethics","label":"Methodology and ethics"}],"evidence_url":"https://osintverse.com/collective/oct26","revocation":null,"superseded_by":null,"supersedes":null,"record":{"v":1,"id":"OVC-YQ6P-V4TV-6KEU","type":{"id":"a6d98cc3-376a-408c-867b-f9d0c469b771","slug":"speaker-osint-collective-oct26","title":"Speaker, OSINT Collective Oct'26"},"fields":{},"issuer":{"id":"cfaaa23f-d134-469c-b23d-da2dcf7cf87a","name":"OSINTverse","slug":"osintverse-hq"},"skills":["methodology-ethics"],"issued_at":"2026-10-31T00:00:00.000Z","recipient":{"name":"70dc400e15baadb2369cc2014837fb81f632c9886f82da71c35d449408c18601","handle":"1702c09e5ed9d2bce0647ce4f4b3060a2135a721f58cf4b6a9280f5d21ffb889"},"expires_at":null,"verify_url":"https://osintverse.com/certificates/verify/OVC-YQ6P-V4TV-6KEU","evidence_url":"https://osintverse.com/collective/oct26"},"signature":{"alg":"Ed25519","kid":"ovc-c73d09361162","hash_sha256":"fae78981b7be5e08fbdae6bc4134ba4cdb77c05f908e8787196720e248dee732","value":"620Nkl1ZQOxSfhqXP7phKKld3Rj_1kd8RLyQTGh_BSvCvI6XSWxEoCBiPWnfJno98ZiDol_gd4VcJ6IiQyvzDA","encoding":"base64url","signed_bytes":"canonical JSON of `record` (keys sorted, no whitespace, UTF-8)","keys_url":"https://osintverse.com/api/certificates/keys","verified_by_server":true},"transparency_log":{"seq":1,"chain_hash":"6f908e533181494c2ba7dbf565d741777b462a3af64e1ddbb9fe3471bb92b2a3","chain_rule":"sha256('ovc-log-v1:<previous chain hash>:<hash_sha256>:<id>'), genesis previous = 64 zeros","log_url":"https://osintverse.com/api/certificates/log","head_url":"https://osintverse.com/api/certificates/log/head"},"open_badge":{"url":"https://osintverse.com/api/certificates/OVC-YQ6P-V4TV-6KEU/openbadge.json","format":"Open Badges 3.0 OpenBadgeCredential (W3C Verifiable Credential 2.0, JSON-LD)","proof":"DataIntegrityProof, cryptosuite eddsa-jcs-2022 (RFC 8785 canonicalisation, SHA-256, Ed25519), signed on request by the active key","did_document":"https://osintverse.com/.well-known/did.json","recipient":"hashed identity objects (sha256$<hex of value + salt>) for the disclosed fields only","available_for":"valid and expired certificates; revoked and superseded answer 410"},"how_to_verify":["1. Serialise `record` as canonical JSON: keys sorted at every level, no whitespace.","2. Check SHA-256 of those bytes equals signature.hash_sha256.","3. Fetch the Ed25519 public key with kid = signature.kid from keys_url and verify signature.value over the same bytes.","4. For a disclosed recipient field, check sha256('ovc-recipient-v1:<name|handle>:<salt>:<value>') equals the commitment in record.recipient.","5. Optionally replay the transparency log up to transparency_log.seq and check the chain hash; the signed head at head_url commits to the latest position."],"urls":{"html":"https://osintverse.com/certificates/verify/OVC-YQ6P-V4TV-6KEU","json":"https://osintverse.com/certificates/verify/OVC-YQ6P-V4TV-6KEU.json","markdown":"https://osintverse.com/certificates/verify/OVC-YQ6P-V4TV-6KEU.md","pdf":"https://osintverse.com/api/certificates/OVC-YQ6P-V4TV-6KEU/pdf","png":"https://osintverse.com/api/certificates/OVC-YQ6P-V4TV-6KEU/png","keys":"https://osintverse.com/api/certificates/keys","log":"https://osintverse.com/api/certificates/log","openbadge":"https://osintverse.com/api/certificates/OVC-YQ6P-V4TV-6KEU/openbadge.json","did":"https://osintverse.com/.well-known/did.json"},"_note":"Issuer and recipient details are the issuer's statements, signed by OSINTverse at issue time. The signature proves the record was issued through OSINTverse and has not changed; it does not vouch for the issuer unless the issuer is marked verified."}