acct URI (Fediverse)

by

An acct URI looks like this:


acct:joeblow@example.com

Typically an acct URI is used to turn an e-mail address or Fediverse ID into a URL / URI. (There are reasons why one might want to turn a pointer or identifier that isn' a URL / URI into a URL / URI.)

For example, this Fediverse ID:


@reiver@changelog.ca

Gets turned into this acct URI:


acct:reiver@changelog.ca

Why acct URIs

The TL;DR of why acct URIs‽ is —

There are many conceptual places where some kind of an identifier is a core part of it.

For example, on any social protocol I am aware of, there is some type of notion of an identifier.

BBS echo-mail has them. BBS net-mail has them. Internet e-mail has them. Internet finger-protocol has them. Internet gemini-protocol has them. (Multi-User) Linux & Unix operating systems have them. Twitter has them. Etc.

The identifier enables you to send messages, to share photos & images, to control data, etc.

With a single centralized system, dealing with identifiers is comparatively more straight-forward. But when dealing with a distributed, decentralized, or federated system, things can get more complex — for example, how do you point to and interact with someone or something from a different node on the network? Etc.

Experience (with OpenID and other systems) seems to suggest that (at least currently) most people are more comfortable with using something that looks more like an e-mail address or as username as an identifier rather than a URL or a URI. For example —

Fediverse IDs look very similar to e-mail addresses. They just have a U+0040 at-sign ("@") at the beginning of them:

But WebFinger only understand URLs and URIs. So those have to be turned into URLs or URIs. Which, usually, is very straight-forward:

Fediverse Users

Most users of the Fediverse aren't aware of acct URIs. And really, they don't have to be aware of them!

Fediverse Programmers

But behind the scenes, acct URIs are used by Fediverse software.

Behind the scenes, a Fediverse ID is turned into a acct URI, and then that acct URI is used to in a request to WebFinger .

If you are a programmer / software engineer / software developer / etc, then you may need to be aware of acct URIs, and have some level of understanding of them.

Resolving

acct URI

Part of the process of resolving a Fediverse ID transfomrs a Fediverse ID into an acct URI. (And then using that acct URI version of the Fediverse ID makes a request to WebFinger.)

Here is an example of transforming a Fediverse ID into an acct URI:


     at sign
       ↓
       @joeblow@example.com ← Fediverse ID

   acct:joeblow@example.com ← acct URI
       ↑
  no at sign

A client would then make a request to:


https://example.com/.well-known/host-meta

To discover what the (template) URL for WebFinger is. And then, for example, if it is at:


https://example.com/.well-known/webfinger?resource={uri}

Then make a request to:


https://example.com/.well-known/webfinger?resource=acct:joeblow@example.com

This WebFinger implementation could accept whatever it wants. It doesn't have to restrict itself to what is specified by the IETF RFC-7565 (The 'acct' URI Scheme) specification. BUT —

See Also

For more information on acct URI see: