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

Module
Purpose

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.


Category
Files/Contracts

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