I’ve been doing a bit of work with Moodle this week and in particular I’ve been looking at how to do digital badges for learners within Moodle. I’m familiar with digital badges from my time at Edinburgh. We had a digital badges service (Parchment which was Canvas Credentials which was Badgr… confused???) and it was in use with our new Short Courses Platform. Despite this, my work this week has taught me a few new things. I’m writing it up as a blog post mainly as a reminder for me in the future.
What is a digital badge?
A digital badge is a portable, verifiable credential – a piece of structured data that describes an achievement (who issued it, who earned it, the criteria met, the date, and often evidence) in a form that lets anyone confirm it’s genuine without going back to the issuing institution. That’s the promise of the Open Badges standard, maintained by 1EdTech (formerly IMS Global).
How the credential is actually packaged, how it physically moves from issuer to learner to verifier, has evolved with the standard.
Under Open Badges v2.x, the credential is embedded inside a PNG or SVG image, with verification done against a URL on the issuer’s server. Under Open Badges v3.0, the credential is treated as a data object in its own right (a signed W3C Verifiable Credential) with images becoming one distribution option among several. We’ll come back to that.
The important thing is that a digital badge is defined by what it carries and proves, not by what file format it happens to arrive in.
Why do we need digital badges?
Digital badges give learners a portable record of skills that they can share on LinkedIn, embed in a portfolio, or hand to an employer without going through the issuing institution. The employer can verify the badge in a couple of clicks. That’s genuinely useful, particularly for micro-credentials and continuing professional development, where a full certificate feels heavyweight. I’ve recently become a big fan of digital credentials, working through a bunch of different training courses and being able to post the credentials to LinkedIn easily.
Moodle and badges
Moodle has native Open Badges (v2.1 at current versions) support as a standard core feature – not an additional plugin. You define completion criteria (activity completion, grade thresholds, a chain of prerequisite badges, or manual award by a role), design the badge, and Moodle handles the issuing. Learners get a ‘baked’ PNG in their Moodle profile (and it can be emailed to them too should you wish). The PNG contains all the metadata about how the badge was earned/issued. The learner can then download it from Moodle and then use it in LinkedIn, push it to a backpack, etc.
The backpack problem
Here’s where things get messy.
A backpack is a place where learners can aggregate badges from multiple issuers, independent of any one institution. Think of it as a wallet for credentials. The classic ones were Mozilla Backpack (long since discontinued), Badgr Backpack (rebranded a couple of times under Instructure ownership and now known as Canvas Credentials or Parchment Backpack depending on the branding you land on), and Open Badge Passport (developed by Open Badge Factory).
Moodle can push issued badges to a backpack, in principle. You can add backpacks to the Moodle instance via the Site Administration. However, for the two badging backpacks I’m aware of, adding Badgr (following instructions from the Moodle documentation which seem to be out of date) gave errors with no information about what the problem was (although then weirdly seems to sort-of work when I then use the site as a learner) and Open Badge Passport, for which I couldn’t find a URL which Moodle would accept. Something worth noting is that for Badgr (or whatever you want to call it these days!) it only works from Moodle through this direct connection IF you don’t use Google or Microsoft or Facebook, etc to log into Badgr. The connection to the backpack by the student feels pretty flakey in Moodle, in all honesty, even when it did work.
The good news is that if you manually download the baked PNG from Moodle and upload it to a backpack, I tested this with Parchment/Badgr (argh!! too confusing!) and with Open Badge Passport and it just works. No admin config needed.
Open Badges v3
Open Badges v2.x has one architectural weakness. Badge verification, which is done by uploading the ‘baked’ PNG to a validator like badgecheck.io or VirtualBadge.io, extracts the embedded metadata and calls the issuer’s URL. So this validation depends on the issuer’s server remaining reachable at that URL. If the issuing institution decommissions its Moodle instance, migrates to a new domain, or simply loses interest in maintaining the URL, previously issued badges fail verification. The metadata is still in the PNG, but the assertion URL won’t be found.
Open Badges v3.0 addresses this by aligning with the W3C Verifiable Credentials data model. Instead of verification by fetching a hosted assertion URL, v3 badges carry a cryptographic proof that is checked against the issuer’s published public key. The recipient effectively holds the badge in a wallet/bakcpack, along with the proof, and a verifier can confirm the credential hasn’t been tampered with and was signed by the issuer’s key, without fetching an assertion from the issuer’s server. So the verifier still needs the issuer’s public key to run the verification and that can be done via a Decentralised Identifier (shortened to DID). It’s an identifier for the issuer that resolves to a small document which contains, amongst other things, the issuer’s public key. So there’s still a dependency but it’s on a single file, so as long as that domain keeps serving that single DID file, the verification will still work. With V2.x, the whole LMS would need to keep running on that URL or the badge verification will break.
As of Moodle 4.5, native support is still for Open Badges v2.1. There’s no core v3 support. A post on the Moodle Developer site talks about support for Open Badges 3.0 coming soon to Moodle so perhaps that will change imminently for the coming versions of Moodle?
On the external supplier side, adoption for v3 is patchy but growing. Some paid platforms have introduced v3 support alongside their existing v2 issuing. The dedicated wallet/backpack ecosystem is still catching up.
What does this all mean?
It’s all more complicated and confusing than I expected. Part of the issue is that many of the implementations of digital badges haven’t caught up with the standards yet. It’s an area where there used to be a lot of ‘free’ or ‘open’ services which have now been closed off or absorbed into paid tiers. Digital badges can be expensive to issue at scale, and you need to manage your issuing very carefully to ensure there are no unexpected bills. I was excited that Moodle seemed to allow badge issuing but I was disappointed to see how limited the connections with backpacks were – but that’s really not a Moodle issue. The backpack layer sits between issuers and everyone’s implementation of it is currently a bit untidy.
