CanCred Passport Member

Show more...

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_circle Hosted badge assertion is valid
check_circle Badge has not been revoked
check_circle Badge has not expired

Check that the badge was awarded to the correct recipient by entering their email address:

 

Blockchain verification available

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.

Show Proof Data

{
   "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:

  1. Download the hosted assertion from https://factory.cancred.ca/v1/assertion/d693172e545b5a285f8e04e491b54909fe33741e.json

  2. Calculate the SHA256 checksum of the downloaded JSON string.

  3. Verify that targetHash matches the hex-encoded SHA256 checksum.

  4. 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.

  5. 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.

If you have the original badge PDF file you can validate it here:


Validate another badge