Actions & Action Tokens

An Action Token represents a user action within Cloudillo. Examples of actions include creating a post, adding a comment, leaving a like, or performing other interactions.

Why Action Tokens?

Traditional social platforms store your posts, likes, and comments in their private databases. If the platform disappears, so does your content. Cloudillo takes a different approach: your actions are portable, verifiable, and truly yours.

Think of action tokens like signed letters:

  • Anyone can verify who wrote them (cryptographic signature)
  • They can be delivered to any server (federation)
  • They can’t be tampered with without detection (content-addressing)
  • They belong to you, not to any platform (decentralization)

Real-world example: When Alice posts a photo, her server creates a signed action token. This token can be delivered to Bob’s server (federation), verified as authentic (no trust required), and displayed in Bob’s feed. If Alice’s server goes offline, Bob still has a cryptographic proof that Alice created that post.

Key benefits:

  • Portable identity: Your actions follow your identity, not a server
  • Trustless verification: Anyone can verify authenticity without trusting intermediaries
  • Censorship-resistant: No single entity controls your content
  • Offline-capable: Actions can be verified without network access

Each Action Token is:

  • Cryptographically signed by its creator.
  • Time-stamped with an issue time.
  • Structured with relevant metadata about the action.

Action tokens are implemented as JSON Web Tokens (JWTs), content-addressed by the SHA-256 hash of the complete token. See Content-Addressing & Merkle Trees for how action IDs, file IDs and blob IDs chain into a verifiable tree.

Which Token Do I Need?

Start with the category:

You want to… Category Where
Publish, share, comment on or react to content Content Content Actions
Follow someone, or connect with them mutually User Relationships User Relationships
Run a conversation: messages, membership, invitations Communication Communication
Attach statistics, approvals, presence or file shares to something that already exists Metadata Metadata

Then the type. These nine carry most of the traffic:

Type Does References Notes
POST Publishes content to your wall β€” Fans out to your followers
CMNT Comments on something p parent Forms true threads; inherits the parent’s audience
REACT Reacts (like, emoji) sub subject One per user per target β€” a second one replaces the first
CONN Requests a connection aud audience Mutual: a connection exists once both sides have issued one
FLLW Follows a profile aud audience One-directional; no acceptance needed
CONV Opens a conversation β€” Container: sets visibility S and relays its children
MSG Sends a message p parent Direct message with aud, or conversation message under a CONV
SUBS Joins a subscribable action sub subject Membership in a conversation
INVT Invites someone to join sub subject Accepting it creates a SUBS

Unsure whether to use p or sub? See Parent vs Subject β€” the choice decides whether your action joins a thread or merely points at one.

In This Section

Token Format - Every claim, visibility and audience resolution, the nine status codes, content-addressing, database keys and signing. The reference the other pages link back to.

Action Lifecycle - How a token is created, signed, delivered, verified on arrival, and activated; where native hooks run.

Action DSL - How action types are declared: field constraints, content schemas, key patterns and behaviour flags.

Then the four categories:

See Also