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 subject (sub) field pointing to the original action being reposted. REPOST uses sub — NOT p — because the reposted action is referenced without creating threading hierarchy (the same convention REACT and APRV follow). The reposter’s client always sets an explicit audience (aud): their own idTag when boosting to their own wall, or the target wall otherwise.
For other constraints see the Action Tokens.
Content-Addressing
This token is content-addressed using SHA-256:
- The entire JWT token (header + payload + signature) is hashed
- Action ID format:
a1~{base64_hash} - See Content-Addressing & Merkle Trees for details
Subject Reference
The sub (subject) field references the original action being reposted:
- Contains the original action’s action_id (
a1~...) - Subject must exist and be verified
- Creates an immutable, non-hierarchical link to the original content
- Federation: remote instances can verify the complete chain
Database Key
The repost key_pattern is {type}:{subject}:{issuer}:{audience}. The audience is part of the identity, so the same user can independently boost a post to their own wall and repost it to a community — two distinct keys, two independently un-repostable rows.
Example:
- Alice reposts Bob’s post to her wall → key
REPOST:a1~post123:alice.example.com:alice.example.com - Alice reposts the same post again to her wall → same key, previous one is superseded
- A
REPOST:DELwith the same key removes the repost
Delivery: REPOST is a broadcast action that also delivers to the subject’s owner (deliver_to_subject_owner) so the original poster can count and list reposters, and bundles the reposted action itself (deliver_subject) so recipients get the original content rather than a dangling reference.
Types of Reposts
A repost can be a simple repost (no c field), a repost with commentary, or a quote repost (longer commentary). The token structure is identical in all cases – only the presence and length of the optional c field differs.
Omit the c field for a simple repost without commentary.
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”, or “REPOST:DEL” to undo) |
| sub | ✓ | Subject: action ID of the original post being reposted |
| aud | ✓ | Audience: target wall (own idTag for a boost, community otherwise) |
| c | Optional commentary on the repost (markdown) |
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 |
| sub | a1~xyz789abc… |
| aud | alice.example.com |
| 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:
- Alice’s instance creates a REPOST token referencing Bob’s original POST token
- The REPOST is broadcast to Alice’s followers
- The original POST token is fetched/synchronized if not already available locally
- Followers see the repost in Alice’s timeline with proper attribution to Bob
Permission Checks
When creating a repost:
- Original post exists: Verify the subject action ID is valid
- Permission to view: Ensure the reposter can access the original post
- Repost allowed: Check if original author allows reposts (future feature)
- 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, issue a REPOST:DEL token with the same key (same subject and audience). It supersedes the original repost, removing it from the reposter’s timeline and decrementing the original post’s repost count.
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 |
See Also
- Action Tokens - Overview of all action token types
- Post Token - Original posts that can be reposted
- Statistics Token - Tracking repost counts
- Federation - How reposts federate across instances