Example Setup: ATmostphereConf#
This is an example setup to award badges to attendees to ATmosphereConf.
Configuration#
The gnosco instance would be available at https://badges.atmosphereconf.com/.
Templates#
The templates would be updated to reflect the theming and branding of the conference.
Records#
The @atprotocol.dev repository would contain the following records:
at://did:plc:lehcqqkwzcwvjvw66uthu5oq/community.lexicon.badge.definition/3lj44kstfzk2n
{
"$type": "community.lexicon.badge.definition",
"name": "ATmosphereConf 2025 Attendee",
"description": "You attended the first ever ATMosphere Conference!",
"image": {
"$type": "blob",
"ref": {
"$link": "9b45f43f...6f42a947"
},
"mimeType": "image/jpeg",
"size": 281313
}
}
at://did:plc:lehcqqkwzcwvjvw66uthu5oq/community.lexicon.badge.definition/3lj44kstfzk2o
{
"$type": "community.lexicon.badge.definition",
"name": "ATmosphereConf 2025 Early Bird Registration",
"description": "You were one of the first 100 people to register.",
"image": {
"$type": "blob",
"ref": {
"$link": "9b45f43f...6f42a947"
},
"mimeType": "image/jpeg",
"size": 281313
}
}
Escrow Records#
The gnosco instance would have a local file datasource configured with this content:
[
{
"aturi": "at://did:plc:cbkjy5n7bk3ax2wplmtjofq2/community.lexicon.badge.award/3ln6mwlzdcr3v#c68666...b7fef8",
"record": {
"$type": "community.lexicon.badge.award",
"badge": {
"$type": "com.atproto.repo.strongRef,",
"uri": "at://did:plc:lehcqqkwzcwvjvw66uthu5oq/community.lexicon.badge.definition/3lj44kstfzk2o",
"cid": "decafbad"
},
"did": "did:plc:cbkjy5n7bk3ax2wplmtjofq2",
"issued": "2025-05-16T14:00:02.000Z"
},
"signature": {
"issuer": "did:plc:lehcqqkwzcwvjvw66uthu5oq",
"issuedAt": "2025-05-16T14:00:02.000Z",
"signature": "c68666...b7fef8"
}
},
{
"aturi": "at://did:plc:cbkjy5n7bk3ax2wplmtjofq2/events.smokesignal.calendar.rsvp/3lcydu5x7at2z#bafyreig...h6tka3wy",
"record": {
"$type": "events.smokesignal.calendar.rsvp",
"status": "events.smokesignal.calendar.rsvp#going",
"subject": {
"cid": "bafyreifwvuqm4hhkmrsaj3zxvpfqj7byjefucrb36burwbuu5uv5sk5jqa",
"uri": "at://did:plc:lehcqqkwzcwvjvw66uthu5oq/events.smokesignal.calendar.event/3lcyaxnwvau2f"
}
},
"signature": {
"issuer": "did:plc:lehcqqkwzcwvjvw66uthu5oq",
"issuedAt": "2025-02-01T10:00:02.000Z",
"signature": "bafyreig...h6tka3wy",
"role": "presenter"
}
},
{
"aturi": "at://did:plc:cbkjy5n7bk3ax2wplmtjofq2/community.lexicon.badge.award/3ln6mwlzdcr2v#c68666...b7fef8",
"record": {
"$type": "community.lexicon.badge.award",
"badge": {
"$type": "com.atproto.repo.strongRef,",
"uri": "at://did:plc:lehcqqkwzcwvjvw66uthu5oq/community.lexicon.badge.definition/3lj44kstfzk2n",
"cid": "decafbad"
},
"did": "did:plc:cbkjy5n7bk3ax2wplmtjofq2",
"issued": "2025-05-16T14:00:02.000Z"
},
"signature": {
"issuer": "did:plc:lehcqqkwzcwvjvw66uthu5oq",
"issuedAt": "2025-05-16T14:00:02.000Z",
"poap": true,
"event": "at://did:plc:lehcqqkwzcwvjvw66uthu5oq/events.smokesignal.calendar.event/3lcyaxnwvau2f",
"signature": "c68666...b7fef8"
}
}
]
The first record is a badge award using the badge definition described earlier that says I registered for the conference. This simply says that the identity (@ngerakines.me) has the badge "ATmosphereConf 2025 Early Bird Registration" as attested by the authority (@atprotocol.dev).
The second record is an RSVP. That is a copy of the identity's RSVP to the event and is signed by the event organizer with the additional signature meta-data {"role": "presenter"}.
The third record is a badge award using the badge definition described earlier that says I attended for the conference. This says that the identity (@ngerakines.me) has the badge "ATmosphereConf 2025 Attendee" as attested by the authority (@atprotocol.dev). It includes the event and poap fields in the signature meta-data.