Earn a badge, issue a badge

[blackbirdpie url=”https://twitter.com/#!/raster/status/182658137621405699″]

Good question.  The hardest part is deciding what kind of badges you want to issue, the rest is straightforward.  I’ll explain.

Earn a badge!

Let’s start by earning a badge on openbadges.org. Click on the big blue “Get Started” button on the front page and you’re given an easy quiz, testing your Badges 101 level knowledge,

The Start of the Badges 101 Quiz

After you finish the quiz, you get a fancy badge, which you have the option of sending to your backpack,

You earned the Badges 101 Badge

When you send it to your backpack, you’re asked to sign in. The sign in is through Mozilla Persona (aka BrowserId), so this is also a great opportunity to set up a Persona account if you haven’t already.

Logging into your Open Badges Backpack

After you’re done adding the badge to your Backpack you can share your badge out through a share page like mine.

What’s that badge, really?

Badges can represent all kinds of things, completing trivial quizzes, or months of study, regardless of what you had to do to earn them, the actual guts of a OBI compliant badge (a badge that you can push into your Backpack) is three things,

  1. A badge graphic
  2. A badge criteria url
  3. and a badge assertion url

A badge graphic

The badge graphic is a square PNG. That’s it. Here’s the badge graphic for the Badges 101 badge,

The graphic isn’t specific to the person (though it could be) and it doesn’t have any information in it that describes the badge (though it could, via Badge Baking, a service that embeds the assertion information in the badge to make it truly portable).

A criteria url

The content of this url describes what I had to do to earn the badge. For the Badges 101 badge, we cheated a bit and just said that the criteria was the Open Badges homepage. For now, the criteria url is any valid url, in the near future we’re going to release a spec for machine readable criteria url’s. The issuer hosts the document, which proves that the badge came from the issuer.

An assertion url

The assertion is the specific document that ties a badge to a Persona id. Just like the criteria, the issuer hosts this document. When I earned the Badges 101 badge, Open Badges (the issuer) created an assertion url, which you can see here.


The above example is using a slightly older version of assertions which include the Persona ID in plain text, we just rolled out the salted hashes as identifiers (salty hashes! delicious!). When we update the Badges 101 badge to assert a hashed ID, I’ll update this post to show the new method.

The assertion ties all the pieces together, it’s hosted on the issuers site – so you know they know about it, it has an ID associated with a Persona account – so you know it belongs to the person that earned it, and it links to the criteria – so you know what they had to do to get it. Oh, and it has a picture, so it looks cool too.

Push the badge to the backpack

Once you, the issuer, have created the two generic requirements (a picture and a criteria url), and the learner has shown they’ve earned the badge (up to the issuer how this accomplished), the issuer creates the assertion url, and then passes this whole mess of stuff to the Backpack via the Issuer API.

The Issuer API is a Javascript API, which pulls a dialogue from the Backpack. The Open Badges Infrastructure is for the learner, we don’t want any badges pushed into their backpack without explicit approval, we want the learner to see which badge is going in, why, and approve it.

Including the API on your site is a JS include, which then gives you access to the all important OpenBadges module.


What the OBI isn’t

From all the above, you might have picked up on something about the Mozilla Open Badges Infrastructure isn’t, which sometimes confuses people. The OBI isn’t a badge issuing platform. Issuers need a system that assesses learning and awards badges within their own site. What the  OBI is, is a lightweight specification that allows for learners to collect badges from multiple issuers.

However, if you look at the way Open Badges.org is issuing badges, you’ll see – it’s not that complicated. Atul built a nice JS assertion creator which hosts the assertion on Amazon S3, so nothing about the Badges 101 badge is server side, it’s entirely on the client.

Oh, and…

Several heavyweight platforms for badge issuing are in development, some of which will be open sourced. There’s room for a light issuer, similar to Atul’s assertion creator, but with a bit more refinement. If you’re looking for a way to contribute to the project, that would be a great start. Otherwise, if you’re interested in the OBI bits, and want to lend a hand, we’re really interested in finding collaborators.

If you’re looking to create OBI compliant badges, now’s a great time to get started. Beta is launching at the end of this month, so things will be pretty stable by then. Jump into the Open Badges Google Group for discussion, or come talk to us on IRC at irc.mozilla.org #badges.