Chainlink Automation ยท Merkle
Yield Distributor
Pull-payment yield distribution using Merkle trees. Chainlink Automation advances epochs on schedule. Investors claim directly โ no batched payouts, no operator calls.
Connect to check your yield
Link your wallet to see claim eligibility across past epochs and track unclaimed yield.
How it works
How Merkle yield works
Pull-payment distribution. One Merkle root. O(log N) gas per claim. No centralized payout, no batch transactions.
Epoch opens
Chainlink Automation calls performUpkeep() on schedule, opening a new yield distribution cycle. The current epoch's ID increments and the active window begins.
Yield deposited
The treasury (distributor role) transfers real-world yield โ USDC, USDT, or the configured token โ into the contract via depositYield(). Funds accumulate in the active epoch.
Epoch finalized
The distributor uploads a Merkle root committing to every investor's exact allocation. Status moves to FINALIZED. Claims open. totalYield is locked.
Investors claim
Each eligible investor calls claimYield() with their allocation amount and a Merkle proof generated off-chain. The contract verifies the proof and transfers yield directly to the wallet.
Epoch closed
The distributor calls closeEpoch() after the claim window. Any unclaimed yield is swept back to the treasury. Status moves to CLOSED. The cycle resets.