DailyVaultSplitter
The DailyVaultSplitter
is the central vault module responsible for redistributing all finalized TRN earnings at the end of each Merkle cycle. It is executed once daily at UTC 0, immediately after the Merkle tree is committed and verified by the sequencer network.
This module does not handle real-time token routing — instead, it works as the post-Merkle reconciliation engine that uses TRNUsageOracle
-verified balances and routes TRN into the appropriate downstream vaults for final distribution.
🧷 Purpose
All TRN earned through views, retrns, subscriptions, boosts, ads, and engagements are:
Logged in real-time by the
TRNUsageOracle
Net settled once per day by the Merkle root drop
Distributed to vaults by the
DailyVaultSplitter
immediately after drop finalization
The DailyVaultSplitter
ensures:
Deterministic allocation of earnings
Protection from early withdrawal or double claims
Streamlined DAO and NFT-based sharing logic
🔄 Execution Flow
At the end of each day (UTC 0):
The sequencer finalizes and publishes the Merkle root representing:
All user fruit balances
Earnings (positive balances)
Expenditures (debits)
BRN offsets (from burns or moderation)
The
TRNUsageOracle
reconciles each account, finalizes their actual earnings, and verifies Merkle inclusion.DailyVaultSplitter
is triggered automatically by the sequencer or validator node to:Transfer TRN into downstream vaults
Burn BRN offsets
Reset all fruit balances
📦 Allocation Logic
The splitter distributes the full TRN pool (total earned by users that day) using fixed percentages:
PostVaultSplitter
Variable
Earnings from view/retrn/subscription actions go here.
CountryEscrowSplitter
Variable
TRN tagged with a geoHash
jurisdiction is routed here.
StabilityVault
TBD
Reserve for AMM flash-loan stabilization (activated later).
DAO Reserve
10%
Platform-wide fee captured by the DAO.
InvestorNFT Vaults
3.3% (of DAO share)
Distributed pro-rata across 100 NFTs.
ContributorNFT Payouts
TBD
Optional fixed daily or streaming distributions.
✳ Note: Percentages beyond the DAO split are enforced downstream. For instance,
PostVaultSplitter
routes 90% to content creators, 10% to DAO automatically.
⚖ Enforcement Constraints
Immutable Execution: Runs only after Merkle drop finalization.
No Premature Withdrawals: Earnings cannot be accessed until routed.
No User Interaction: Triggered automatically by the sequencer logic.
Global Single Entry Point: Only this module can initiate redistribution from the usage ledger.
🔐 Security Assumptions
All routing contracts are non-upgradable once deployed, unless a DAO vote allows override.
Vault routing honors permissions set in the
TRNUsageOracle
, which ensures users can’t bypass or reroute earnings.Transfers occur after all burns are applied and debts are cleared.
📁 Related Modules
TRNUsageOracle
Provides Merkle state and reconciled account data
PostVaultSplitter
Handles content action-based earnings
CountryEscrowSplitter
Sends TRN to geo-tagged CountryNFT escrows
StabilityVault
Pools earnings to stabilize AMM post-launch
InvestorNFT.sol
Distributes DAO earnings across investor NFTs
ContributorNFT.sol
Defines contributor payout logic
MerkleDropExecutor
Confirms Merkle tree and triggers splitter
🔄 Example Scenario
If the total user earnings (from actions, subscriptions, and ad rewards) for the day equal 100,000 TRN:
10,000 TRN is routed to the DAO Reserve.
From this, 3,300 TRN goes to InvestorNFTs.
Remaining 6,700 TRN may support platform ops or contributor rewards.
The remaining 90,000 TRN is distributed proportionally to:
Content creators via
PostVaultSplitter
CountryNFT escrows via
CountryEscrowSplitter
Liquidity reserves via
StabilityVault
(once active)
This split is deterministic and fully enforced by Merkle commitments and usage constraints.
✅ Summary
Purpose: Distributes daily earnings after Merkle finalization
Trigger: Sequencer-triggered at start of each new UTC day
Destination Vaults: Post, Country, DAO, Investor, Contributor, and Stability vaults
Rules Enforced: No early access, no partial unlocks, no user control
Last updated