FlagEscalator
The FlagEscalator
is a real-time moderation signal processor that monitors user and AI-generated flags on posts across the TRN platform. It is designed to escalate content for review or action once defined thresholds are met. It serves as a bridge between the community, automated detection, and high-trust governance systems (like CouncilNFT or MasterNFT enforcement).
🎯 Purpose
Aggregate flag counts, burn activity, and AI signals to determine whether a post requires moderation.
Trigger automated escalation, including AI suppression, burn locks, or DAO/CouncilNFT notifications.
Minimize abuse while empowering users and bots to surface problematic content.
Send all relevant logs to
ModerationLog
for immutable tracking.
🔑 Core Responsibilities
Track Post Flags
Each post accumulates:
🧑 User flags (e.g. inappropriate, spam)
🤖 AI flags (illegal, unsafe, disallowed semantic category)
🔥 Burn counts (used as negative feedback)
All flags are stored in a scalable mapping indexed by post hash.
Trigger Escalation Logic
When cumulative signals exceed configured thresholds (see DAO settings), the post is:
Suppressed from public feed visibility.
Marked as pending review in
ModerationLog
.Earnings may be paused or redirected to the DAO vault.
For severe flags, escalation is instant (e.g., AI detects illegal content).
Route Escalated Content
Posts that cross review thresholds are routed to:
AI moderators for real-time filtering.
CouncilNFT holders for community oversight.
The DAO for vote-based enforcement (optional).
Prevent Re-flags or Abuse
Users cannot repeatedly flag the same post.
Flag volume per user is rate-limited.
Re-flagging a previously escalated post has no effect unless new evidence is submitted.
🧠 AI Escalation Support
The
FlagEscalator
accepts input from semantic classification tools, embedding-based detection, and country-specific moderation AI.AI signals can independently trigger escalation or increase the weight of human flags.
CountryNFT-specific AIs may use private constraints to flag content regionally without exposing rule logic.
📘 Smart Contract Structure (Simplified)
struct FlagData {
uint256 userFlags;
uint256 aiFlags;
uint256 burnCount;
bool escalated;
bool suppressed;
}
mapping(bytes32 => FlagData) public postFlags;
function flagPost(bytes32 postHash, uint8 reasonCode) external;
function reportAIFlag(bytes32 postHash, uint8 severity) external onlyAI;
function incrementBurnCount(bytes32 postHash) external onlyBlessBurnTracker;
function checkEscalation(bytes32 postHash) external view returns (bool);
🛠️ Threshold Configuration
Thresholds are adjustable by the DAO via a configuration contract or ProposalFactory:
userFlags
≥ X unique user flags
aiFlags
≥ Y AI severity score
burnCount
≥ Z burns
Composite Score
Weighted total hits threshold
Each of these thresholds can vary depending on:
Content category
CountryNFT rules
Whether the post is boosted or gated
🔄 Interactions With Other Modules
ModerationLog
Receives all escalated events with action metadata
GeoOracle
May be notified if escalation triggers a region-specific ban
BurnRegistry
Used to measure how many burns a post has received
BoostingModule
Escalated posts can lose their boost and return unspent TRN
CouncilNFT
May be alerted to take manual action on escalated content
MasterNFT
May veto or override escalation-related DAO actions
🚫 Post Escalation Consequences
Once a post is escalated:
❌ It is no longer visible in public feed rotations.
🔒 Boosted status is paused; unspent funds return to booster.
⚖️ It may be eligible for DAO review.
📉 Post earnings are temporarily suspended.
🧾 Log entry is committed in
ModerationLog
.
✅ Final Notes
Escalated posts are not deleted from IPFS or the platform. They are suppressed from distribution but remain retrievable for audits.
Manual moderation actions by CouncilNFTs or MasterNFTs override automated escalations.
Threshold tuning is subject to DAO control to prevent abuse or over-censorship.
Last updated