commented: Heck yeah! I'll take a look at this as soon as possible and port it to Go. On a very quick glance I had, the identities were not really based on ActivityPub actor URLs but on their webfinger double @ resource identifiers. I'm not sure if it makes any difference to the underlying data, but I think having the URLs as identifiers would be a better decision, because it would drop the need for implementors to have yet another thing to do. (I'm saying that because WebFinger is not actually linked to ActivityPub in any way, but it's indeed widely used as a user discovery mechanism in the Fediverse) commented: On a very quick glance I had, the identities were not really based on ActivityPub actor URLs but on their webfinger double @ resource identifiers. I thought so too, but it looks like it auto-canonicalizes for you. See this part of pkd-crypto. commented: OK, cool. I still think that handling strictly URLs would be better, people can transform the webfinger resource to a URL outside of the library, but it's just a 0.X version, I'm sure these things come up as the development advances and the library increases robustness. commented: Comment removed by author commented: I’m not sure if this was added after your comment but this is in the post: Why don’t you force the use of Actor URLs instead of double @ identifiers? The data that is stored in the transparency log always contains the canonical URL for an Actor. The user-facing APIs (HTTP API, client software, etc.) permits strings like @soatok@furry.engineer, but these strings will be canonicalized for you (i.e., to https://furry.engineer/users/soatok for my handle). This is a convenience feature and is only available so long as WebFinger for the host instance is online. I wanted to make this software as easy-to-use as possible while still being strict about Actor identification under-the-hood. commented: Yeah, I deleted my comment that said as much because Soatok told me on Signal that he was adding it to the blog post, and it would have been redundant. .