Course Module and Module Hash:

In Andamio, Course Modules are defined like this:

{
  "id": "101",
  "title": "How to Learn in Andamio",
  "slts": [
    {
      "id": "101.1",
      "slt": "I can mint an Andamio Learner Token."
    },
    {
      "id": "101.2",
      "slt": "I can commit to an Assignment."
    },
    {
      "id": "101.3",
      "slt": "I can see an on-chain record of my completed Assignment."
    }
  ]
}

Every module has a unique id, a title, and list of slts.

Each slt includes an id and slt, which is the text of the Student Learning Target.

Any data can be cryptographically hashed. In Andamio, the Blake2b hashing algorithm is applied to Module data. The Blake2b hash of the data for Module 101 (shown above) is

ea089a8f64a30cfc22d293fc0d59970360d75a078593cfce4257437f

How Module Hashes are used in Andamio

When a Course Creator is ready to deploy a Course Module on-chain, the Blake2b hash of the Module data is calculated. This hash is written to datum that can be read from the blockchain. The datum is stored in a “Course Module UTxO”. Click here to visit CardanoScan, and see if you can find the Module Hash in the on-chain datum.

Once a Module Hash is on-chain, we can validate that Course Module data is unchanged. If a Student Learning Target is added to the Module data above, or if the title of the Module is changed, this will result in a different hash being calculated.

The Andamio App checks to confirm that the on-chain Module Hash matches the current hash of the Module data. If there is a match, that’s great! Anyone can independently verify that the Course Creators are delivering on the content as promised. In the case of a mismatch, Learners and other stakeholders should ask the Course Creators what has changed.