diff --git a/app/entities/delete/page.mdx b/app/entities/delete/page.mdx
index 61d3893..edb75a1 100644
--- a/app/entities/delete/page.mdx
+++ b/app/entities/delete/page.mdx
@@ -5,7 +5,7 @@ export const metadata = {
# Delete
-Signals the deletion of an entity. It is a **transient entity**. {{ className: 'lead' }}
+Signals the deletion of an entity. It is a [**Transient Entity**](/entities#transient-entities). {{ className: 'lead' }}
## Authorization
@@ -21,7 +21,7 @@ Having the authorization is defined as:
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the `User` who is deleting the entity. [Can be set to `null` to represent the instance](/entities/instance-metadata#the-null-author).
diff --git a/app/entities/follow-accept/page.mdx b/app/entities/follow-accept/page.mdx
index 8336474..620bb96 100644
--- a/app/entities/follow-accept/page.mdx
+++ b/app/entities/follow-accept/page.mdx
@@ -15,7 +15,7 @@ export const metadata = {
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the `User` considered the 'followee', i.e. the user who is being followed.
diff --git a/app/entities/follow-reject/page.mdx b/app/entities/follow-reject/page.mdx
index a65a26c..c87435c 100644
--- a/app/entities/follow-reject/page.mdx
+++ b/app/entities/follow-reject/page.mdx
@@ -25,7 +25,7 @@ But it can also be used when Bob is already following Alice, in the case that:
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the `User` considered the 'followee', i.e. the user who is being followed.
diff --git a/app/entities/follow/page.mdx b/app/entities/follow/page.mdx
index 26ff12b..e72d25e 100644
--- a/app/entities/follow/page.mdx
+++ b/app/entities/follow/page.mdx
@@ -57,7 +57,7 @@ Once a follow relationship is established, the **followee**'s instance should se
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the `User` considered the 'follower'.
diff --git a/app/entities/group/page.mdx b/app/entities/group/page.mdx
index e9cab0e..df8d46d 100644
--- a/app/entities/group/page.mdx
+++ b/app/entities/group/page.mdx
@@ -83,7 +83,7 @@ Indicates that a [User](/entities/user) wishes to subscribe to a group.
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the [User](/entities/user) subscribing to the group.
@@ -117,7 +117,7 @@ Indicates that a [User](/entities/user) wishes to unsubscribe from a group.
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the [User](/entities/user) unsubscribing from the group.
@@ -151,7 +151,7 @@ Indicates that a [Group](#entity-definition) has accepted a [User](/entities/use
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the [User](/entities/user) subscribing to the group.
@@ -185,7 +185,7 @@ Indicates that a [Group](#entity-definition) has rejected a [User](/entities/use
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the [User](/entities/user) subscribing to the group.
@@ -227,7 +227,7 @@ The `GroupFederate` entity allows a group to federate a note to all of its membe
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the note to federate.
diff --git a/app/entities/page.mdx b/app/entities/page.mdx
index 431e246..ec6fe15 100644
--- a/app/entities/page.mdx
+++ b/app/entities/page.mdx
@@ -35,7 +35,7 @@ Any field in an entity not marked as `required` may be omitted or set to `null`.
URI of the entity. Should be unique and resolve to the entity. Must be an absolute URI.
- **Transient Entities** do not require a URI.
+ [**Transient Entities**](/entities#transient-entities) do not require a URI.
@@ -86,6 +86,12 @@ Any field in an entity not marked as `required` may be omitted or set to `null`.
+## Transient Entities
+
+Some entities are transient, meaning they do not have a URI. These entities are used for actions that do not require a permanent record, such as deletions or migrations.
+
+Implementations **must not** rely on other implementations to store transient entities in their database.
+
## Serialization
When serialized to a string, the JSON representation of an entity must follow the following rules:
diff --git a/app/entities/unfollow/page.mdx b/app/entities/unfollow/page.mdx
index 078db5f..ab836fa 100644
--- a/app/entities/unfollow/page.mdx
+++ b/app/entities/unfollow/page.mdx
@@ -30,7 +30,7 @@ Sometimes, [Users](/entities/user) want to unsubscribe from each other to stop s
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
URI of the `User` considered the 'follower', i.e. the user who is unsubscribing from the followee.
diff --git a/app/extensions/migration/page.mdx b/app/extensions/migration/page.mdx
index 8e2f5a0..d775427 100644
--- a/app/extensions/migration/page.mdx
+++ b/app/extensions/migration/page.mdx
@@ -34,7 +34,7 @@ Migration happens in three steps:
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
Must be `pub.versia:migration/Migration`.
diff --git a/app/extensions/reports/page.mdx b/app/extensions/reports/page.mdx
index 68751a7..e119796 100644
--- a/app/extensions/reports/page.mdx
+++ b/app/extensions/reports/page.mdx
@@ -15,7 +15,7 @@ When an instance receives a report, it *should* be reviewed by a moderator or ad
- This is a **Transient Entity** and does not have a URI.
+ This is a [**Transient Entity**](/entities#transient-entities) and does not have a URI.
Must be `pub.versia:reports/Report`.
diff --git a/app/introduction/page.mdx b/app/introduction/page.mdx
index e9cd248..6274e6b 100644
--- a/app/introduction/page.mdx
+++ b/app/introduction/page.mdx
@@ -35,7 +35,7 @@ The words **MUST**, **MUST NOT**, **SHOULD**, **SHOULD NOT**, and **MAY** are us
The Versia Protocol uses the following terms:
- **Entity**: A generic term for any JSON object in the protocol, such as a [User](./entities/user), a [Note](./entities/note), or a [Like](./extensions/likes). Entities are uniquely identified by their `id` property.
- - **Transient Entity**: A type of **Entity** that is not meant to be stored permanently or referenced by other entities.
+ - [**Transient Entity**](/entities#transient-entities): A type of **Entity** that is not meant to be stored permanently or referenced by other entities.
- **Implementation**: A software application that implements the Versia Protocol.
- **Instance**: An application deploying an **Implementation**.
- Using the same nomenclature, an ActivityPub Implementation would be `Mastodon`, and an Instance would be `mastodon.social`.