Private TRN↔BRN AMM

Module Name: TrnBrnSwapModule Type: Internal Liquidity Bridge Access: Platform-only (never exposed directly to users) Primary Oracle: TRNUsageOracle

The TrnBrnSwapModule is a core internal AMM responsible for facilitating a 1:1 swap between TRN (Transferable Reward Note) and BRN (Burn Reserve Note). This swap mechanism underpins the engagement layer of the TRN platform — enabling actions like post burns, downvotes, and retrns without distorting the broader TRN supply or token economy.

It is designed with strict rules to prevent manipulation, preserve systemic balance, and ensure deterministic behavior across all actions that invoke value-based engagement.


🔁 Purpose & Behavior

  • 1:1 Swap Guarantee: The swap is pegged at 1 TRN = 1 BRN.

  • Non-user Facing: Users never receive BRN in their wallets. All BRN staking is done on their behalf via internal modules (e.g. BurnRegistry).

  • Internal Consumption Only: BRN is used only to record engagement actions (burns, retrns, etc.) and never transferred.

  • No Circulation: BRN is always paired with a pending Merkle batch. Once processed, it is automatically burned and reconciled.

  • Controlled Mint/Burn: Swapping TRN for BRN burns the TRN; swapping BRN back mints new TRN only when needed for payout finalization.


🔐 System Rules

🔒 Minting & Burning

  • TRN → BRN

    • The TRN is burned immediately.

    • A matching amount of BRN is minted internally and staked to the BurnRegistry.

  • BRN → TRN

    • Happens automatically during Merkle batch settlement.

    • All BRN is burned.

    • If more TRN is required for payout, it is minted under supervision of the MintThrottleController.

📉 No External Swaps

  • This AMM cannot be accessed by:

    • Users

    • Scripts

    • Bots

  • All swap flows are gated via the TRNUsageOracle, and only invoked through system modules like:

    • ViewIndex

    • RetrnIndex

    • BurnRegistry

    • BoostingModule

🚫 Transfer Inhibition

  • BRN cannot be:

    • Withdrawn

    • Traded

    • Airdropped

  • It is an ephemeral, accounting-only token used for temporary tracking of engagement value.


📊 Engagement Logic

When a Post is Burned:

  • 1 TRN is burned

  • 1 BRN is staked

  • The burn action is logged in BurnRegistry

  • The post’s gross earnings are reduced (e.g., 10 burns on a 100 TRN post = 90 TRN net)

When a Post is Retrned:

  • TRN is burned

  • BRN is staked

  • Retrns reference the original post — no extra BRN is created

  • The action is also recorded in RetrnIndex


💸 DAO Revenue

  • All TRN used in TRN→BRN swaps is sent to the DAO Vault

  • This includes:

    • Burn actions by users

    • Moderation actions

    • Excess BRN that never gets converted back

  • The system never refunds these swaps to users — burns are final


📏 Swap Limits & Guardrails

  • Max Swap Per Transaction: 333,333 TRN

    • Until the StabilityVault is fully funded

  • Max Price Impact Per Block: ±2%

    • If breached, the transaction is held for the next Merkle cycle

  • No Flash Loans: Swap module is immune due to:

    • Internal-only access

    • Usage Oracle rate limits

    • AMM simulation protections


🔁 Lifecycle Summary

plaintextCopyEditUser burns a post →
→ Platform calls TrnBrnSwapModule
→ Burns 1 TRN
→ Mints & stakes 1 BRN
→ BurnRegistry records event
→ DAO receives burned TRN
→ Merkle batch settles
→ BRN is burned, TRN minted as needed to match final balances

🔐 Enforcement

  • All swaps require permissioned access via TRNUsageOracle

  • The MintThrottleController ensures no excess TRN is minted during BRN→TRN reversal

  • No user can bypass or manipulate this swap path

  • Merkle tree and daily batch logic validate all swaps retroactively to enforce compliance


⛔ Misuse Resistance

  • Any attempts to spam burns for manipulation are:

    • Caught by AI bot detection

    • Recorded in ModerationLog

    • Can trigger content appeal or account moderation

  • Users gain no advantage from spam burns — they lose TRN and visibility

  • Boosted posts that get burned:

    • Are unboosted

    • The unspent TRN is refunded to the booster via TRNUsageOracle


  • TRNUsageOracle

  • BurnRegistry

  • ModerationLog

  • MintThrottleController

  • ViewIndex

  • RetrnIndex

  • BoostingModule

Last updated