Engagement System
The TRN platform operates a high-precision, real-time Engagement System designed to track, evaluate, and reward user interactions with content across multiple dimensions: views, retrns, boosts, blessings, and burns. Every engagement is recorded with cryptographic precision and routed through key modules that interface with the TRNUsageOracle
, enabling daily Merkle-based distribution and enforcement. This section documents the tightly-coupled architecture and confirmed mechanics of the engagement flow, as defined through our extensive design decisions.
🔁 Core Objectives
Reward attention and curation in a meritocratic way.
Discourage spam and manipulation using AI-backed burn signals and fraud detection.
Enable meaningful expression through retrns and blessings that redistribute TRN.
Quantify and audit user influence via immutable logs and real-time credit.
Preserve system balance by routing all actions through the
TRNUsageOracle
.
📌 Component Overview
ViewIndex
Tracks unique content views and viewer reward eligibility.
RetrnIndex
Records retrns and ensures retrned content earns TRN appropriately.
BoostingModule
Powers pay-to-promote campaigns with targeting, expiration, refunds.
BlessBurnTracker
Logs blessings and burns to affect payouts and moderation signals.
LottoModule
Selects top performers for daily TRN rewards in each branch/vertical.
🧿 ViewIndex
Each content view costs 1 TRN, enforced through the
TRNUsageOracle
.Viewers earn TRN for watching boosted posts (90% of 3× cost goes to viewer).
Views are deduplicated via Merkle trees. One view per CID per content per day.
The index feeds into the Merkle drop process at UTC 0 daily, settling all balances.
ViewIndex communicates with the
TRNUsageOracle
to:Credit eligible viewers.
Charge viewers (or draw from their
fruit balance
) for premium or gated content.Prevent content access if the user has insufficient TRN or debt.
Boosted Post Views:
Viewers must watch at least 10 seconds with audio on to earn TRN.
Boosted views are marked separately and processed in real time.
Viewers may see ads blended in to their feed. They’re labeled and scroll is locked until complete.
🔁 RetrnIndex
A retrn is a quote-like repost that promotes original content.
Each retrn points to the original CID and inherits earning logic from the source post.
A user may retrn a given post only once per day.
Retrned posts of boosted content lose their boost status and revert to organic.
Retrned views reward the original post’s creator.
Retrns are non-editable and permanently tied to the original content.
If the original content is geo-restricted by
GeoOracle
, the retrn is also restricted.
🚀 BoostingModule
Boosts are creator-only and must be run on their own posts.
Boosted posts incur a 3x cost multiplier, and 90% of the per-view cost is distributed to viewers.
Boosts are defined by:
Budget (min 1 day, max 7 days).
Spend rate (fast = higher placement).
AI targeting prompt (used to find relevant user CIDs via embedding similarity).
Campaigns are non-cancellable. If the post is burned, remaining TRN is refunded to booster.
Boosted posts are displayed in a dedicated boosted feed and within the main feed for users with ads enabled.
Post metadata includes a visible bar timer for the 10s view requirement.
Other boost rules:
Cannot boost subscription-gated content.
Cannot boost other users’ posts.
Cannot retrn your own boosted posts.
🌿 Bless/Burn Tracker
Bless = positive signal (comparable to a like/upvote).
Burn = negative signal; if burns cross a threshold, post is disabled and flagged.
Burning a boosted post:
Refunds remaining TRN to booster.
Sends burned TRN to the DAO vault.
Each user can bless or burn once per post.
Bless/Burn counts contribute to:
LottoModule
selection weight.Creator reputation (informal, does not affect feed visibility).
AI moderation queue via
FlagEscalator
.
No rewards are paid on burned content.
🎰 LottoModule
Each day, 33 winners per branch are selected across all trending content verticals.
Inputs include:
Bless/Burn ratio.
View count.
Retrns.
Boost performance.
Resonance score from AI modeling.
Winners are rewarded from a dedicated DAO fund allocation.
Winning content must be positive-signal aligned and unburned.
🧠 Real-Time Sync with TRNUsageOracle
Every engagement action:
Is validated by the
TRNUsageOracle
.Updates a user’s fruit balance and ledger.
Enforces transfer rules (e.g., can’t withdraw if unclaimed fruit exists or if in debt).
Is logged to off-chain indexer systems and included in the Merkle drop batch.
If a user attempts to:
View content without TRN → denied unless fruit or ad watched.
Boost a post with unpaid debt → blocked.
Withdraw while in fruit deficit → blocked.
Exceed allowed retrns per post/day → blocked.
🏦 DAO Revenue Tie-Ins
10% of all view-based earnings go to the DAO Vault.
Burned TRN from post moderation is routed directly to the DAO Vault.
Unspent TRN from failed boost campaigns is returned to the booster, not burned.
LottoModule rewards are drawn from DAO earnings.
📂 Related Modules and Files
Core Indexes
ViewIndex.sol
, RetrnIndex.sol
Boosting Engine
BoostingModule.sol
, BoostCampaignFactory.sol
, BoostCampaignStorage.sol
Feedback System
BlessBurnTracker.sol
, FlagEscalator.sol
, AIResonanceOracle.sol
Reward Distribution
LottoModule.sol
, DailyVaultSplitter.sol
Oracle Enforcement
TRNUsageOracle.sol
, FruitLedgerAdapter.sol
, MerkleDropProcessor.sol
Last updated