Skip to main content

SOCIAL_*

Social graph + signed posts + DMs + reward-driven likes. Always active (no fork required).

Identity

SOCIAL_PROFILE_SET

FieldTypeNotes
type"SOCIAL_PROFILE_SET"
fromstringProfile owner
displayNamestring≤ 64 chars
biostring≤ 280 chars
avatarBlobId?stringReference to SOCIAL_BLOB

SOCIAL_FOLLOW_SET

FieldTypeNotes
type"SOCIAL_FOLLOW_SET"
targetAddressstringAddress to follow/unfollow
enabledbooleantrue = follow, false = unfollow

Posts

SOCIAL_POST_CREATE

FieldTypeNotes
type"SOCIAL_POST_CREATE"
postIdstringCaller-generated unique ID
bodystringInline text ≤ 16 KB
blobIdsarray<string>Attached media (images/audio)
parentPostId?stringIf reply, the parent post id

SOCIAL_REACTION_SET

FieldTypeNotes
type"SOCIAL_REACTION_SET"
targetPostIdstringPost being reacted to
reactionstring"like" (currently the only supported reaction)
enabledbooleantoggle on/off

DMs

SOCIAL_DM_SEND

FieldTypeNotes
type"SOCIAL_DM_SEND"
dmIdstringUnique ID
recipientstringReceiver address
ciphertextstringEncrypted body (base64)
nonceHexstringNaCl box nonce (24 bytes hex)
ephemeralPubKeystringSender ephemeral pub key (32 bytes hex)
contentHashstringsha256(plaintext) — for off-chain integrity
blobIdsarray<string>Attached blobs

DMs are end-to-end encrypted using NaCl box (Curve25519 ECDH + XSalsa20-Poly1305).

Blob storage

SOCIAL_BLOB_INIT

FieldTypeNotes
type"SOCIAL_BLOB_INIT"
blobIdstringUnique ID (often sha256 of full payload)
contentTypestringMIME type
totalBytesnumber
totalChunksnumberCount of upcoming SOCIAL_BLOB_CHUNK txs
contentHashstringsha256 of full payload (verified at FINALIZE)

SOCIAL_BLOB_CHUNK

FieldTypeNotes
type"SOCIAL_BLOB_CHUNK"
blobIdstring
chunkIndexnumber0-based
chunkDataBase64string≤ 400_000 bytes after base64 decode

SOCIAL_BLOB_FINALIZE

FieldTypeNotes
type"SOCIAL_BLOB_FINALIZE"
blobIdstring

Effect: assembles all chunks, verifies sha256, marks blob as available for reference by other txs (IMAGE_MINT, AUDIO_MINT, DM attachments).

Like rewards (Fork-gated)

SOCIAL_SUBSCRIBE_SET

User declares willingness to fund likes for an author up to a daily budget.

FieldTypeNotes
targetAddressstringAuthor
dailyTokenBudgetstring (bigint)Micro-OMBRA spend cap per day

SOCIAL_LIKE_INTENT

User declares intent to "like" a post, escrowing budget.

FieldTypeNotes
intentIdstringUnique
postIdstringTarget post
maxTokensPerLikestring (bigint)Capped at SOCIAL_MAX_TOKENS_PER_LIKE = 10_000 micro
expiresAtnumberUnix ms, ≤ now + SOCIAL_LIKE_EXPIRY_MS (24h)

SOCIAL_LIKE_MINE

A miner claims an open intent and mines the like (proof of effort).

FieldTypeNotes
intentIdstring
minerIdstring
proofstringMiner-provided proof of inference effort

Effect: transfers maxTokensPerLike from intent escrow to miner; intent marked claimed.

SOCIAL_LIKE_EXPIRE

Anyone can submit this after intent.expiresAt to refund escrow to the user.

FieldTypeNotes
intentIdstring

Caps

SOCIAL_MAX_TOKENS_PER_LIKE = 10_000 // per intent
SOCIAL_MAX_DAILY_TOKENS = 10_000_000 // 10 OMBRA per user per day
SOCIAL_LIKE_QUEUE_CAP_PER_AUTHOR = 10_000 // pending intents per author
SOCIAL_LIKE_EXPIRY_MS = 86_400_000 // 24h

Builders

buildSocialProfileSetTx, buildSocialFollowSetTx,
buildSocialPostCreateTx, buildSocialReactionSetTx,
buildSocialDmSendTx,
buildSocialBlobInitTx, buildSocialBlobChunkTx, buildSocialBlobFinalizeTx,
buildSocialSubscribeSetTx,
buildSocialLikeIntentTx, buildSocialLikeMineTx, buildSocialLikeExpireTx

Next: CHAT_TURN + AGENT_* (Fork V6) →