Typically an <strong>acct URI</strong> is used to turn an <strong>e-mail address</strong> or <ziba-linkname="id">Fediverse ID</ziba-link> 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.)
</p>
<p>
For example, this <ziba-linkname="id">Fediverse ID</ziba-link>:
… because people seem to be comfortable with something that looks more like an <strong>e-mail address</strong> or as <strong>username</strong> as an <strong>identifier</strong> but the technology only understands URLs and URIs;
so you still have to turn things that look like <strong>e-mail address</strong> and <strong>usernames</strong> into URLs and URIs;
which is what <strong>acct URI</strong> is;
and “no”, mailto URI won't work;
</p>
<p>
… because a new URI scheme makes it easy to identify that it should be used with <ziba-linktransform="lowercase">WebFinger</ziba-link> (rather than being able to do something else with it).
</p>
</li>
</ul>
<p>
There are many conceptual places where some kind of an <strong>identifier</strong> is a core part of it.
</p>
<p>
For example, on any social protocol I am aware of, there is some type of notion of an <strong>identifier</strong>.
</p>
<p>
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.
</p>
<p>
The <strong>identifier</strong> enables you to send messages, to share photos & images, to control data, etc.
</p>
<p>
With a single centralized system, dealing with <strong>identifiers</strong> 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.
</p>
<p>
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 <strong>e-mail address</strong> or as <strong>username</strong> as an <strong>identifier</strong> rather than a URL or a URI.
For example —
</p>
<ul>
<li>joeblow@example.com</li>
<li>jandoe@something.example</li>
<li>actor@host</li>
</ul>
<p>
<ziba-linkname="id">Fediverse ID</ziba-link>s look very similar to e-mail addresses.
They just have a U+0040 at-sign ("@") at the beginning of them:
</p>
<ul>
<li>@joeblow@example.com</li>
<li>@jandoe@something.example</li>
<li>@actor@host</li>
</ul>
<p>
But <ziba-linktransform="lowercase">WebFinger</ziba-link> only understand URLs and URIs.
Most users of the <strong>Fediverse</strong> aren't aware of <strong>acct URI</strong>s.
And really, they don't have to be aware of them!
</p>
</section>
<section>
<h2>Fediverse Programmers</h2>
<p>
But behind the scenes, <strong>acct URI</strong>s are used by <ziba-linkname="softwware">Fediverse software</ziba-link>.
</p>
<p>
Behind the scenes, a <ziba-linkname="id">Fediverse ID</ziba-link> is turned into a <strong>acct URI</strong>, and then that <strong>acct URI</strong> is used to in a request to <ziba-linktransform="lowercase">WebFinger</ziba-link> .
</p>
<p>
If you are a <strong>programmer</strong> / <strong>software engineer</strong> / <strong>software developer</strong> / etc, then you may need to be aware of <strong>acct URI</strong>s, and have some level of understanding of them.
Part of the process of <strong>resolving</strong> a <strong>Fediverse ID</strong> transfomrs a <strong>Fediverse ID</strong> into an <ziba-linkdir=".."transform="lowercase">acct URI</ziba-link>.
(And then using that <ziba-linkdir=".."transform="lowercase">acct URI</ziba-link> version of the <strong>Fediverse ID</strong> makes a request to <ziba-linkdir=".."transform="lowercase">WebFinger</ziba-link>.)
</p>
<p>
Here is an example of transforming a <strong>Fediverse ID</strong> into an <ziba-linkdir=".."transform="lowercase">acct URI</ziba-link>:
</p>
<pre>
at sign
↓
@joeblow@example.com ← Fediverse ID
acct:joeblow@example.com ← acct URI
↑
no at sign
</pre>
<p>
A client would then make a request to:
</p>
<pre>
https://example.com/.well-known/host-meta
</pre>
<p>
To discover what the (template) URL for <ziba-linkdir=".."transform="lowercase">WebFinger</ziba-link> is.