I think it's a good time to explain how we see @badgefed and @fediprofile, how they work together, and how #badges can use #ActivityPub and the #Fediverse.
-
I think it's a good time to explain how we see @badgefed and @fediprofile, how they work together, and how #badges can use #ActivityPub and the #Fediverse.
Also how this can help communities outside the fediverse!
This is a quick overview of the architecture and ideas behind it. 🧵 1/
(thanks @johannab for the ask ...)
-
T tag-activitypub@relay.fedi.buzz shared this topic
-
I think it's a good time to explain how we see @badgefed and @fediprofile, how they work together, and how #badges can use #ActivityPub and the #Fediverse.
Also how this can help communities outside the fediverse!
This is a quick overview of the architecture and ideas behind it. 🧵 1/
(thanks @johannab for the ask ...)
@badgefed is an open-source project that generates digital recognition in the form of #OpenBadges.
OpenBadges is a specification based on JSON. BadgeFed currently uses version 2 of the spec.
The main difference with v3 is verification.
In OpenBadges v3, the badge can be verified by itself because the verification information is embedded in the credential.
In OpenBadges v2, verification requires retrieving information from the issuer and badge endpoints.
For our use case, issuing recognition on the internet, this is not a problem.
In fact, we actually WANT that external verification step.
It allows badges to reference issuer endpoints and remain connected to the systems that created them.
-
ActivityPub is also used for federation.
Badge issuers (ActivityPub actors) can follow other issuers.
When a badge is issued, a Create activity is federated.
Other servers receive that activity and can store a local copy of the badge.
This works very similarly to how Mastodon servers cache posts.
Because of that, badges can also be:
• revoked using the Delete activity
• updated using the Update activityAgain, this reuses existing ActivityPub verbs instead of inventing a new protocol or new spec.
Simple primitives, (I love how simple it is), powerful results.
-
ActivityPub is also used for federation.
Badge issuers (ActivityPub actors) can follow other issuers.
When a badge is issued, a Create activity is federated.
Other servers receive that activity and can store a local copy of the badge.
This works very similarly to how Mastodon servers cache posts.
Because of that, badges can also be:
• revoked using the Delete activity
• updated using the Update activityAgain, this reuses existing ActivityPub verbs instead of inventing a new protocol or new spec.
Simple primitives, (I love how simple it is), powerful results.
Now let’s talk about Fediprofile.
@badgefed issues recognition to recipients identified by a profile URL.
It intentionally does not allow email addresses (even hashed ones).
This avoids security issues and allows recipients to be identified using public profiles. Privacy at it's best.
Any URL can be used as a profile:
• LinkedIn
• Mastodon
• GitHub
• personal websites
• Instagram (ugh, eww)
• etc...If that URL also happens to be an ActivityPub actor (for example a Mastodon or PixelFed profile), the user will also receive a mention or notification when a badge is issued.
--
Many people already receive badges across different identities.
For example, I personally have badges tied to:
• my LinkedIn
• my personal website
• gaming profilesThis is where the concept of a badge wallet or badge backpack becomes useful.
A place to collect them all. (POKEMON!)
-
Now let’s talk about Fediprofile.
@badgefed issues recognition to recipients identified by a profile URL.
It intentionally does not allow email addresses (even hashed ones).
This avoids security issues and allows recipients to be identified using public profiles. Privacy at it's best.
Any URL can be used as a profile:
• LinkedIn
• Mastodon
• GitHub
• personal websites
• Instagram (ugh, eww)
• etc...If that URL also happens to be an ActivityPub actor (for example a Mastodon or PixelFed profile), the user will also receive a mention or notification when a badge is issued.
--
Many people already receive badges across different identities.
For example, I personally have badges tied to:
• my LinkedIn
• my personal website
• gaming profilesThis is where the concept of a badge wallet or badge backpack becomes useful.
A place to collect them all. (POKEMON!)
@fediprofile is designed to be that wallet.
Because Fediprofile itself is an ActivityPub actor, it can follow badge issuers (again simplicity wins!).
When it detects a badge issued to one of the verified profile URLs connected to the account, it automatically stores it (and optionally boost it).
Users can then choose which badges to display. Users OWN their badges.
This creates a low-friction identity layer.
People who don’t want to run their own site can still have a public profile where they show:
• their social links
• their activity
• their badgesAll in a decentralized way.
-
@fediprofile is designed to be that wallet.
Because Fediprofile itself is an ActivityPub actor, it can follow badge issuers (again simplicity wins!).
When it detects a badge issued to one of the verified profile URLs connected to the account, it automatically stores it (and optionally boost it).
Users can then choose which badges to display. Users OWN their badges.
This creates a low-friction identity layer.
People who don’t want to run their own site can still have a public profile where they show:
• their social links
• their activity
• their badgesAll in a decentralized way.
This is where the model becomes powerful.
People who don’t know about the Fediverse can still participate indirectly.
They receive badges, create profiles, and interact with issuers, WITHOut needing to understand federation.
It’s a gentle on-ramp.
(And I am making sure to add extra friction if they don't have a fediverse account, and encouraging them to create one).
--
There are interesting possibilities here.
Imagine a Fediprofile plugin that lets someone cross-post to Instagram and Pixelfed.
Or automatically creates a Pixelfed account for an illustrator.
Fediprofile becomes an entry point into the Fediverse.
-
This is where the model becomes powerful.
People who don’t know about the Fediverse can still participate indirectly.
They receive badges, create profiles, and interact with issuers, WITHOut needing to understand federation.
It’s a gentle on-ramp.
(And I am making sure to add extra friction if they don't have a fediverse account, and encouraging them to create one).
--
There are interesting possibilities here.
Imagine a Fediprofile plugin that lets someone cross-post to Instagram and Pixelfed.
Or automatically creates a Pixelfed account for an illustrator.
Fediprofile becomes an entry point into the Fediverse.
And all of this to answer @johannab question.
--
For communities, this becomes even more powerful.
A community can run its own Fediprofile hub.
Profiles can include:
• social links
• badges
• gamification
• streaks
• recognitionsAll tied to the community.
--
Example: a hiking community.
Imagine a fediprofile hub for mountain hikers where members can:
• show their trail badges
• track hiking streaks
• share gear links
• display summit achievementsCombine that with a badge issuer and maybe a #Mastodon and/or #PixelFed server for the community.
Now you have a decentralized ecosystem.
-
And all of this to answer @johannab question.
--
For communities, this becomes even more powerful.
A community can run its own Fediprofile hub.
Profiles can include:
• social links
• badges
• gamification
• streaks
• recognitionsAll tied to the community.
--
Example: a hiking community.
Imagine a fediprofile hub for mountain hikers where members can:
• show their trail badges
• track hiking streaks
• share gear links
• display summit achievementsCombine that with a badge issuer and maybe a #Mastodon and/or #PixelFed server for the community.
Now you have a decentralized ecosystem.
I’m also exploring ideas like:
• leaderboards
• activity points
• community challengesPossibly as a component integrated with BadgeFed + Fediprofile, or maybe as a separate project.
Still experimenting.
--
In short:
BadgeFed issues decentralized recognitions.
Fediprofile helps people collect and display them.Both use #ActivityPub as the backbone.
Badges become portable, social, and decentralized.
And communities can build on top of that.
--
P.S. I decided to NEVER add a wallet into BadgeFed, keeping it simple and extensible by default. So Fediprofile is the default wallet. But anyone can build and use their own. No new specs, no new protocols.
-
I think it's a good time to explain how we see @badgefed and @fediprofile, how they work together, and how #badges can use #ActivityPub and the #Fediverse.
Also how this can help communities outside the fediverse!
This is a quick overview of the architecture and ideas behind it. 🧵 1/
(thanks @johannab for the ask ...)
@mapache this is interesting, though I have one question before I get too much more interested: is there any genAI involved in these projects at all?

-
I think it's a good time to explain how we see @badgefed and @fediprofile, how they work together, and how #badges can use #ActivityPub and the #Fediverse.
Also how this can help communities outside the fediverse!
This is a quick overview of the architecture and ideas behind it. 🧵 1/
(thanks @johannab for the ask ...)
-
@mapache A big sticking point for me has been that students will usually use an institution's Moodle for a few years then leave, so it cant be their wallet. But your separation of BadgeFed as an issuer and Fediprofile as a wallet makes this much clearer.
-
@marxjohnson I am planning a moodle plugin for badgefed!
-
@marxjohnson I am planning a moodle plugin for badgefed!
@mapache Fantastic, please post about it here when it happens
-
@mapache this is interesting, though I have one question before I get too much more interested: is there any genAI involved in these projects at all?

I have tried to use AI/LLMs but it just sucks for ActivityPub implementations and blazer that I rather do it myself, it is more efficient, accurate and fun.
I do use it for some for CSS stuff where I am no expert. If someone wants to collab for frontend I would greatly appreciate it.
-
And all of this to answer @johannab question.
--
For communities, this becomes even more powerful.
A community can run its own Fediprofile hub.
Profiles can include:
• social links
• badges
• gamification
• streaks
• recognitionsAll tied to the community.
--
Example: a hiking community.
Imagine a fediprofile hub for mountain hikers where members can:
• show their trail badges
• track hiking streaks
• share gear links
• display summit achievementsCombine that with a badge issuer and maybe a #Mastodon and/or #PixelFed server for the community.
Now you have a decentralized ecosystem.
Yes pls sign me up!!!!
Question: can we authenticate with other Activity Pub credentials (Bonfire, for example), or are we limited to Mastodon?
Here's my aim for the near future:
1. AP fediverse platform possibly a stack of a few bespoke apps (Bonfire, Vernissage, Emissary/Atlas, maybe Peertube...)
2. If not SSO, then one login for all our sandbox spaces.
3. One (pseudonymous permitted) profile for community members (I was pondering this when FediProfile popped up on the TL!!!) -
Yes pls sign me up!!!!
Question: can we authenticate with other Activity Pub credentials (Bonfire, for example), or are we limited to Mastodon?
Here's my aim for the near future:
1. AP fediverse platform possibly a stack of a few bespoke apps (Bonfire, Vernissage, Emissary/Atlas, maybe Peertube...)
2. If not SSO, then one login for all our sandbox spaces.
3. One (pseudonymous permitted) profile for community members (I was pondering this when FediProfile popped up on the TL!!!) -
Yes pls sign me up!!!!
Question: can we authenticate with other Activity Pub credentials (Bonfire, for example), or are we limited to Mastodon?
Here's my aim for the near future:
1. AP fediverse platform possibly a stack of a few bespoke apps (Bonfire, Vernissage, Emissary/Atlas, maybe Peertube...)
2. If not SSO, then one login for all our sandbox spaces.
3. One (pseudonymous permitted) profile for community members (I was pondering this when FediProfile popped up on the TL!!!)And 4) since FediProfile led me back to BadgeFed and recalling that you introduced it last year ... a way for the community to "verify" roles in the community (yes, this is a "moderator", yes this is a "tech support' account...)
4 a) Bonus if the verification can also be "yes I belong to <climate project X in ontario, canada> without a need to dox someone and get inappropriate levels of info when just looking to connect online. -
Oh I don't know - I'm aiming to start one.
Here's the high-level current motivation: @samnabi and the https://onemillionneighbours.ca project have put together a project aiming to address something I've been observing for years, that local civic engagement efforts suffer because *online* connectivity scatters people and their connections to the global similar-but-walled-off tech giant "social Media" spaces.
I want a way for local citizens to engage *locally* and in 3D.
-
Oh I don't know - I'm aiming to start one.
Here's the high-level current motivation: @samnabi and the https://onemillionneighbours.ca project have put together a project aiming to address something I've been observing for years, that local civic engagement efforts suffer because *online* connectivity scatters people and their connections to the global similar-but-walled-off tech giant "social Media" spaces.
I want a way for local citizens to engage *locally* and in 3D.
@theraccoonbytes @mapache @samnabi
a large part of the point I'm trying to make is that we can do this within borders, with a commitment to local hosting and local support, but with access to the global base of fediverse software and collaborative reach globally.
But my vision for "verification" is more like the financial industry's "KYC" - an identifyable org and/or certified professional vouches for someone by an auditable process. Badgefed + Fediprofile seems a great digital schema for it
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login