Nick Gerakines
@ngerakines.me
6.5K followers 380 following 3K posts
he/him; Protocols, platforms, and machine learning; worker at GitHub; Check out @smokesignal.events @atwork.place Profile: myself with a thick mustache, septum ring, and hat
Posts Media Videos Starter Packs
ngerakines.me
“lowest-common denominator protocol development” oof

Happens everywhere too. This is why I refused to use the pin emoji bookmark tooling.
thisismissem.social
So a funny thing people in the ActivityPub world love to hate on is AT Protocol's lexicons, claiming they make interoperability between different software harder.

Meanwhile a new TikTok like platform just joined the Fediverse. Guess what object type they use for federation! Is it going to be Video?
ngerakines.me
Just to be clear, every record you create in your repository is “signed” with the atproto key listed in your DID document. The process for endorsements and endorsement proofs isn’t adding additional signing above and beyond that.
ngerakines.me
Tron: Ares 5/10 better than expected
Reposted by Nick Gerakines
graze.social
ATProto is a team sport - we build better together. That's why, effective today, we're opening up access to the enriched archive we use to power Graze, so anyone can build great services on top of ATProto without reinventing the wheel. Read more in the @leaflet.pub post below for details!
Announcing the Graze Archives
A brief tour of the S3 requestor-pays archives of the Graze turbostream and freshly-announced megastream
graze.leaflet.pub
ngerakines.me
That's a different and unrelated problem for what this proposal and implementation does.
ngerakines.me
For an endorsement, perhaps, but this is a general pattern that could apply to a lot of things.

Proof of payment?
Waitlist for a table?
Entitlement to a media resource?
Contract obligation?

Lots of use cases where both parties want to be able to pull the ripcord.
ngerakines.me
I think this is a gap in the atprotocol ecosystem. A while ago I created a record-escrow service to support this idea that one AppView or thing may produce a record for an identity to "claim" or pick-up and have inserted into their PDS after review.
@smokesignal.events/gnosco
Gnosco is a Rust-based escrow and badging application that integrates with the AT Protocol ecosystem..
tangled.org
ngerakines.me
As in how would @atwork.place determine if two identities are valid apart from resolving handles to identities and ensuring everything validates?
ngerakines.me
Thanks! I think there is so much potential for applications to fully embrace transparent data and trust networks like this. I’d love to talk to them about what’s possible.
ngerakines.me
This pattern generalizes beyond endorsements. Any scenario requiring mutual agreement (collaborations, peer reviews, verified relationships, etc.) can use the same two-record architecture to create verifiable trust networks.
ngerakines.me
The consent requirement also provides protection. You can’t be endorsed for something you disagree with. You can’t have fake endorsements attached to your reputation. You have complete control over what attestations become part of your public profile.
ngerakines.me
Because attestations live on Personal Data Servers, not platform databases, your trust network is portable. Switch PDS providers, change apps, your verified endorsements and trust relationships move with you. The network follows your identity.
ngerakines.me
This bidirectional consent creates stronger trust signals. When you see a verified endorsement, you know both parties agreed to that specific content. Not just that Alice clicked something, but that Bob reviewed and explicitly accepted it.
ngerakines.me
Our system requires active, cryptographic consent from both parties. Alice publishes a proof committing to specific endorsement text. Bob reviews it and decides: accept (publish matching proof) or reject (nothing becomes public). No passive acceptance.
ngerakines.me
Traditional endorsement systems are one-sided. Alice endorses Bob by clicking a button. Bob never explicitly consents to the endorsement or its content. He might not even know it exists. This creates weak, unverified trust signals.
ngerakines.me
Built cryptographically-verified endorsements for at://work. The core innovation isn’t just cryptography, it’s the consent model. Both parties must explicitly agree to create a verified attestation. This changes how trust networks form. @atwork.place #ATProtocol
Building Unforgeable Professional Endorsements with ATProtocol - Nick's Blog
Traditional professional endorsements on platforms like LinkedIn lack cryptographic proof—anyone could forge them, and the platform controls the truth. This article introduces a two-record architectur...
ngerakines.leaflet.pub
Reposted by Nick Gerakines
atwork.place
Professional recommendations have a trust problem. Anyone can write a glowing review and claim someone else said it. How do you know it's real? We built endorsements on at://work using ATProtocol's cryptographic infrastructure.
ngerakines.me
👋 What are you basing site blocking on? I can't use your app currently.
ngerakines.me
I guess I don't see a big difference between AP's HTTP Signature Specification and ATProtocol's inter-service JWT. The end result of both is a header that contains a proof of identity using a key from identity source document material.
ngerakines.me
I mean, unless you're talking about pub/sub, the PDS is going to put it somewhere. In this hypothetical, that somewhere could be a namespace for "received records".