acct URI

⸺ by Charles Iliya Krempeaux

An acct URI looks like this:

	acct:joeblow@example.com

Typically an acct URI is used to turn an e-mail address or a 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 :

	@reiver@reiver.link

Gets turned into this acct URI:

	acct:reiver@reiver.link

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 —

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

But 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 .

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

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

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

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

	     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 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 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: