{
"path": "/3mejeqjzhnc2m",
"site": "at://did:plc:yltnuhmi5446q5gixfz277lu/site.standard.publication/3mbm2gtkoz225",
"tags": [],
"$type": "site.standard.document",
"title": "Free AtProto Idea: Achievements and Stats",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"id": "019c483c-4503-711c-9e9c-8bface157b90",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Someday, unless someone else does it first, I'm going to create an AtProto lexicon that does the following:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Tracks venues, which can mint "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Tracks events, like competitions, video game sessions, escape room excursions — heck, even going to the symphony."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Associates badges with those events."
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Associates stats with those events."
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "That's it*."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I originally had this idea for my spaceship game, where you could log your missions, collect badges for those missions, and then use your stats to generate a bento page like this for sharing on social media."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreicsgli32zjdak6jcl3vxlf7bvjxvhrnyxro3rt3zqcnwdim5pmrty"
},
"mimeType": "image/jpeg",
"size": 334768
},
"aspectRatio": {
"width": 2402,
"height": 1266
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "You can see from the date at the bottom that I've been wanting this for a long time."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Talking with a friend, we realized it could apply to so many other venues and use-cases, both online and IRL. "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "And if venues wanted to, they could work together to create a \"rainbow road\" of sorts, a series of events that patrons can do as a sort of scavenger hunt, getting badges along the way culminating in a big badge at the end."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I'm sure there are lots of other opportunities for using this data in interesting ways."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "And naturally, having this on AtProto means the data, achievements, badges, stats — everything is portable, and multiple apps can take advantage of the same data."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "One problem that I can imagine is users forging badges and stats. It probably would require some kind of cryptographic signature that the venue applies to events with a private key that can be verified by a public key on the venue's record."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I'm sure I'm missing something, but the basic idea is there."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "* It might be necessary to have more definition around what an achievement means or what a stat means. It could be free-form, but it might be useful if there were an easy way to categorize or identify individual achievements or stats."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreifoomqwmxo75aei676gmljhi3trwtvy7c5jxpsy36evm5wd3tc4ku",
"uri": "at://did:plc:yltnuhmi5446q5gixfz277lu/app.bsky.feed.post/3mejeqodmk22m",
"commit": {
"cid": "bafyreiaxkgeiypx4gr4ep5j22iwlbvihohfkgjrvl3xksk3gqtotbpmkcm",
"rev": "3mejeqohgyn2l"
},
"validationStatus": "valid"
},
"publishedAt": "2026-02-10T16:23:26.087Z"
}