Repost Token

This token represents a repost (share) of another user’s content.

A repost allows a user to share someone else’s post with their own followers, optionally adding their own commentary. This is similar to “retweeting” in Twitter or “sharing” in other social platforms.

The token must contain a parent (p) field pointing to the original post being reposted. For other constraints see the Action Tokens.

Content-Addressing

This token is content-addressed using SHA-256:

Parent Reference

The p (parent) field references the original post being reposted:

  • Contains the original post’s action_id (a1~...)
  • Parent must exist and be verified
  • Creates immutable link between repost and original content
  • Federation: remote instances can verify the complete chain

Database Key

The database key for a repost token is [iss, t, p]

Purpose: This key ensures that a user can only repost the same content once. The key components are:

  • iss: Issuer identity (who is reposting)
  • t: Token type (“REPOST”)
  • p: Parent ID (what’s being reposted)

Example:

  • Alice reposts Bob’s post → Stored with key [alice.example.com, "REPOST", a1~post123]
  • Alice reposts the same post again → New token with same key, previous one is marked deleted
  • Only ONE repost of the same content per user

Types of Reposts

Simple Repost

Sharing content without additional commentary:

{
  "iss": "alice.example.com",
  "iat": 1738483200,
  "k": "20240101",
  "t": "REPOST",
  "p": "a1~xyz789..."
}

Repost with Commentary

Sharing content with your own thoughts added:

{
  "iss": "alice.example.com",
  "iat": 1738483200,
  "k": "20240101",
  "t": "REPOST",
  "p": "a1~xyz789...",
  "c": "This is an excellent analysis! Everyone should read this."
}

Quote Repost

Reposting with substantial commentary (quote post/quote tweet):

{
  "iss": "alice.example.com",
  "iat": 1738483200,
  "k": "20240101",
  "t": "REPOST",
  "p": "a1~xyz789...",
  "c": "While I agree with the main points, I think the conclusion overlooks an important aspect..."
}

Fields

Field Required Description
iss The identity reposting the content
iat Timestamp when repost was created
k Key ID used to sign the token
t Token type (always “REPOST”)
p Parent token ID (the original post being reposted)
c Optional commentary on the repost (markdown)
aud Optional audience restriction

Example

User @alice.example.com reposts @bob.example.com’s post with commentary:

Field Value
iss alice.example.com
iat 2024-04-13T00:01:10.000Z
k 20240101
t REPOST
p a1~xyz789abc…
c Great insights on distributed systems!

Visibility and Federation

Repost tokens are broadcast actions, meaning they are:

  • Sent to all followers of the reposter
  • Displayed in the reposter’s timeline/feed
  • Credit the original author
  • Link back to the original post

Federation Flow

When Alice reposts Bob’s post:

  1. Alice’s instance creates a REPOST token referencing Bob’s original POST token
  2. The REPOST is broadcast to Alice’s followers
  3. The original POST token is fetched/synchronized if not already available locally
  4. Followers see the repost in Alice’s timeline with proper attribution to Bob

Permission Checks

When creating a repost:

  1. Original post exists: Verify the parent post ID is valid
  2. Permission to view: Ensure the reposter can access the original post
  3. Repost allowed: Check if original author allows reposts (future feature)
  4. Audience restrictions: Honor any audience limitations on original post

Statistics Impact

Reposts affect the statistics of the original post:

  • Original post’s STAT token includes repost count
  • Reposts increase content visibility and reach
  • Original author can see who reposted their content

Undo/Delete Repost

To remove a repost:

  • Create a new action that overwrites the REPOST (using same database key)
  • Or delete the REPOST token entirely
  • This removes the repost from the reposter’s timeline
  • Original post’s repost count is decremented

Comparison with Other Actions

Action Purpose Visibility
REPOST Share content with followers Broadcast to your followers
REACT Express opinion privately Only visible to post author/viewers
CMNT Add threaded discussion Attached to original post
ENDR Recommend user/content Endorsement on profile

See Also