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 reversalNo 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
📎 Related Modules
TRNUsageOracle
BurnRegistry
ModerationLog
MintThrottleController
ViewIndex
RetrnIndex
BoostingModule
Last updated