Blockchain-Verified Digital Credential

Credential Verified
✅ This credential is VERIFIED and authentic

🏅 Credential Certificate

Credential Certificate

📜 Credential Details

Credential ID
72c6fdaa-66b9-4fb4-a574-88f6b0d8b582
Event Name
Not Specified
User DID
Email
nivedhtj2005@gmail.com
Event Description
Badge
Narrative
Nivedh T.J
Skill Hierarchy
Issued Date
2026-08-12T08:24:16.381Z
Issuer
did:key:zDnaetkUwsdFm16MYAb2tqe8je5BMGZuPnWFqhXU7g1HNLfYK
Tags

    🔐 Blockchain Verification

    🔗 Network: polygon_mainnet

    This credential is permanently recorded on the blockchain for immutable verification.

    📜 Merkle Proof Data ▼

    Complete merkle proof data including blockchain transaction details:

    { "batch_id": "5e7aed01-a61d-4783-b021-4fea3efb2880", "blockchain_info": { "contract_address": "0x81FE95d5034D2B0B4E293fAe7d51243A09Ff31C5", "published_at": "2026-08-12T18:30:04.940096", "transaction_hash": "b5d3ff37b79515e6599b6dba017d3603e7e0b38d6a1bd77da0c2569aa0d0a084" }, "issuance_info": { "issued_at": "2026-08-12T18:00:01.816344", "issued_by": "did:key:zDnaetkUwsdFm16MYAb2tqe8je5BMGZuPnWFqhXU7g1HNLfYK", "issued_to": "did:key:z6MkwKwNbKR3KexU472mEqLBvLpLWrV3ch8jfea7GJSEep1f" }, "merkle_proof": { "index": 12, "proof": [ "0x54116d141e0acb886cb9a5570ef75a6aea84ce7b51168eafa628e9e11e2b9775", "0x244c29e47450e07f35c6965464522b411278a1848ec3ee3dab617aa0d6249ac4", "0x46f88c6af47662c0c081b798ea93e0aa3488e6f45a6e7795c804398cc97c9869", "0xcf8e58b3a666eb7aeabb4f7538770127d33dbea45c5065046f4ebf13d219057f", "0xffb11f8437fa7a26440ca762f33da068be2c813ba4179d44c5e5fbea1f429452" ] }, "merkle_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86", "status": "issued", "tree_type": "issuance" }
    🔍 Verification Steps & Blockchain Proof ▼

    Step-by-step verification process and blockchain verification results:

    { "blockchain_status": "VERIFIED_ON_BLOCKCHAIN", "blockchain_verification": { "network_info": { "chain_id": 137, "current_block": 96638271, "is_testnet": false, "network": "polygon_mainnet", "rpc_url": "https://polygon-mainnet.g.alchemy.com/v2/7gs1nnlhLR4Az1nPfl-RU" }, "verification_method": "dynamic_network_config", "verified": true }, "credential_status": "ISSUED", "cryptographic_status": "VERIFIED_AS_ISSUED", "cryptographic_verification": { "computed_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86", "stored_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86", "verification_details": { "computed_merkle_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86", "credential_hash": "0x9702f12d40d52027da1a0f12d0fbec3b6ecf68c31f39fb19f35fb8bd9b798b5a", "merkle_proof_array": [ "0x54116d141e0acb886cb9a5570ef75a6aea84ce7b51168eafa628e9e11e2b9775", "0x244c29e47450e07f35c6965464522b411278a1848ec3ee3dab617aa0d6249ac4", "0x46f88c6af47662c0c081b798ea93e0aa3488e6f45a6e7795c804398cc97c9869", "0xcf8e58b3a666eb7aeabb4f7538770127d33dbea45c5065046f4ebf13d219057f", "0xffb11f8437fa7a26440ca762f33da068be2c813ba4179d44c5e5fbea1f429452" ], "roots_match": true, "stored_merkle_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86", "verification_method": "cryptographic_merkle_proof_verification" }, "verified": true }, "overall_verified": true, "steps": [ { "computed_hash": "0x9702f12d40d52027da1a0f12d0fbec3b6ecf68c31f39fb19f35fb8bd9b798b5a", "description": "Hash the complete credential data using SHA256", "input": "Full credential JSON data (credentialPreview object)", "method": "SHA256(JSON.stringify(credentialData, sort_keys=True))", "note": "For issued credentials, the entire credential data is hashed", "step": 1 }, { "computation_details": { "algorithm": "if bytes(current) \u003c= bytes(sibling): SHA256(current + sibling) else: SHA256(sibling + current)", "critical_note": "DO NOT use tree index positioning (even=left, odd=right). Use lexicographic byte comparison for deterministic ordering.", "ordering_rule": "lexicographic_byte_comparison" }, "computation_example": "Start with credential_hash, compare bytes with sibling1 lexicographically, hash smaller+larger, repeat with result and next sibling", "computation_method": "For each sibling hash: compare bytes lexicographically, put smaller hash first, then SHA256(smaller + larger)", "computed_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86", "credential_hash": "0x9702f12d40d52027da1a0f12d0fbec3b6ecf68c31f39fb19f35fb8bd9b798b5a", "description": "Compute merkle root using lexicographic byte ordering", "merkle_proof_array": [ "0x54116d141e0acb886cb9a5570ef75a6aea84ce7b51168eafa628e9e11e2b9775", "0x244c29e47450e07f35c6965464522b411278a1848ec3ee3dab617aa0d6249ac4", "0x46f88c6af47662c0c081b798ea93e0aa3488e6f45a6e7795c804398cc97c9869", "0xcf8e58b3a666eb7aeabb4f7538770127d33dbea45c5065046f4ebf13d219057f", "0xffb11f8437fa7a26440ca762f33da068be2c813ba4179d44c5e5fbea1f429452" ], "roots_match": true, "step": 2, "stored_root": "0x62a37aba54b098b7e6f66f471d20b62e5172e0c6b7e1d58b4d2740fc25690b86" }, { "blockchain_network": "polygon_mainnet", "blockchain_verified": true, "contract_address": "0x81FE95d5034D2B0B4E293fAe7d51243A09Ff31C5", "description": "Verify computed merkle root exists on blockchain using stored RPC URL", "method": "Call smart contract verifyProof() with tree_type=0", "rpc_url_used": "https://polygon-mainnet.g.alchemy.com/v2/7gs1nnlhLR4Az1nPfl-RU", "step": 3, "tree_type": "issuance (tree_type=0)" } ], "verification_method": "issuance_tree_verification" }
    This credential belongs to you? If yes, then click here to claim it!
    📱 Claim Your Credential