The earner of this Open Badge is a member of the CanCred Passport community. CanCred Passport is a free service for earners of Open Badges, provided as a companion service to CanCred Factory by CanCred.ca. Services are hosted in Canada. This badge is a "key" to enter the community Space hosted by Learning Agents, which encourages learners to explore how CanCred Passport can help them build their digital profile.
Issuer |
CanCred.ca |
Issued On |
1706616000 |
Expires |
- |
Check that the badge was awarded to the correct recipient by entering their email address:
verified_user Verified — This badge has blockchain validation enabled.
fingerprint Verified — SHA256 checksum of the hosted assertion matches stored targetHash value.
call_merge Verified — Values for targetHash, proof, and merkleRoot form a valid Merkle Path.
link Verified — MerkleRoot is anchored to blockchain.
{ "anchors" : [ { "chain" : "ethereumMainnet", "sourceId" : "0x12a4a52961c5bb05394aa60971986a93d9a93235e9d64f60a0599094a2d78cc8", "type" : "ETHData" } ], "merkleRoot" : "83ca80f69259299e0c4d74797e1df582d3992b876739404409b92c46c3f5896a", "proof" : [ { "right" : "ae5f99f5f675edd82531612de46b454d7903ad207bfde8ab7afa93e0eb35c844" }, { "right" : "31329ae53042e0aef0db49c2f156fe2aed86fed4d6cc9b237d126d004321fc73" }, { "left" : "63047b54ed9cf78586ebf288b325fc7c24db8dc3489418b2c2227877c19f775f" }, { "right" : "0fdbcd3d0f6ca8d0ac037cbe52bd7a7681288cdcc1b22959a252c966b63bc4de" }, { "right" : "e1f84e4ae37833de0998226627e6664734fecc8394ec87b76853ff390ff46fbc" }, { "right" : "df64d99e46c8a9096639ce6f1a9c558492f65bdd691f03ac7042dedee866672f" }, { "right" : "63f4aa2471bd38f5b83c8c20494fb9eb3375c07838fb67ce2c7c6408030e20b8" }, { "right" : "7e53f676fc8f8bccf847a3573fb479849fab2a04794e1f78bfaa81f6e380006d" }, { "left" : "ee811c9e7ea15dc486ae05bb05a673600ec4540263d4acbf44a7b2fe461f4dda" } ], "targetHash" : "ad23ad7b0a62cf46fc6026c24b17a98e1f3bee82a2c7d465805f34a5085fafcd", "type" : "MerkleProof2017" }
Steps for independent verification using provided proof data:
Download the hosted assertion from https://factory.cancred.ca/v1/assertion/d693172e545b5a285f8e04e491b54909fe33741e.json
Calculate the SHA256 checksum of the downloaded JSON string.
Verify that targetHash matches the hex-encoded SHA256 checksum.
Verify that the values targetHash, proof, and merkleRoot form a valid Merkle Path.
Starting with targetHash, traverse the proof list and calculate SHA256 checksums for each pair. Pairs are formed from the value of previous calculation and each list item map value. Argument position of the list item in the hash function is determined by the map key "left" or "right". Final value must match merkleRoot value. Note that all checksums are calculated from hex-decoded binary bytes.
Verify that merkleRoot matches what is stored in the blockchain transactions of the "anchors" list.
The value to check is stored in the data field of an Ethereum transaction identified by sourceId value. You can use a service like https://etherscan.io to look up the data field using the provided transaction hash.