FEP-612d: Identifying ActivityPub Objects through DNS


This is a discussion thread for the proposed FEP-612d: Identifying ActivityPub Objects through DNS. Please use this thread to discuss the proposed FEP and any potential problems or improvements that can be addressed.


In ActivityPub, objects are identified through their id, which is a dereferenciable URI. For this, one adds a TXT record to DNS with name _apobjid and value corresponding to the URI of the ActivityPub object. If a domain name is then passed to a FediVerse application, it can then perform the DNS lookup, and resolve it to the ActivityPub object.

cc: @helge



Out of curiosity, what’s the motivation for this? Or, what use case does it serve that’s not already served by running a single-user AP service at a given domain, either at the root or under an HTTP path if you want to serve a different web site at the root path?

One notable point is, if you wanted to interoperate with other fediverse services that use @-@ handles, you’d still need a @username@domain handle, even if you proved ownership of the entire domain with this FEP. Feature: Allow to use domains as handles, e.g. @domain.tld with webfinger acct:*@domain.tld · Issue #22213 · mastodon/mastodon · GitHub is a related discussion of allowing @domain handles without the leading @username.

  1. I’m copying the mechanism from BlueSky and BlueSky considers it useful.
  2. It’s easy to set up. No new endpoint needed for your site. No new link element in a page’s html. Just add an entry to your DNS configuration.

Just imagine entering zdf.de into your FediVerse search box and being redirected to ZDF :zdf: (@ZDF@zdf.social) - zdf.social. This would lead to better integration of the FediVerse into the world.

1 Like

imagine your search box appends https:// and tries to resolve via activitypub accept header. (this is a recommendation given in the activitypub spec for resolving actor ids when passed to a client)


why this string specifically? why not activitypub or something more generic?

I would expect activitypub to be something different. “apobjid” stands for “ActivityPub OBJect ID”. The full length text seemed unwieldy.

What’s the advantage of this approach over using a personal domain with Webfinger (and providing an actor IRI for a different domain)? That can be done now although most or all AP servers use their own domain for messaging.

1 Like

It’s a config value somewhere, not an endpoint. Also I consider the DNS solution to be easier to both use and implement than any other except “pass the actor uri around”.

Furthermore, I think that there will be a few rounds of modification on how an actor is identified. This is just one possible choice. I think it’s a good idea to propose alternatives and then compare which get accepted and which don’t.

I think this FEP really captures the proposal character of a FEP. People can now implement this mechanism and be confident that they all implement something that works well together, but nobody should feel the need to implement it. (Except it’s a great proposal and people should jump to be the one implementing it in their software … :star_struck: )


Note to self: expanding the summary section to make the algorithm clearer is a good idea.

Disclaimer: I am just a user of the Fediverse and not an expert by any measure; Only anecdotes from me. Sorry if it is inappropriate for me to weigh in here. But…

WordPress announced Fediverse support which is awesome, but the handles for websites (in my opinion) look just awful:

Continuing to push this proposal through would help this quite a bit.