To encourage timely claims, unclaimed airdrops are subject to penalties starting from the 8th day after the airdrop has been initiated. The penalty is applied at a rate of 2% per day with a maximum of 100% (after day 57):
Important: After 57 days from airdrop start (50 days of penalties), any remaining unclaimed tokens are considered fully forfeited.
Penalty Distribution
The 2% daily penalty is actually applied as two 1% operations
First Aidrop (Week 1):
// 1% penalty rate but applied twice
uint256 tmptaxedWNM = airdrop.unclaimedWNM / 100;
uint256 tmptaxedWBLK = airdrop.unclaimedWBLK / 100;
uint256 tmptaxedWUNI = airdrop.unclaimedWUNI / 100;
if (weekId == 1 && (tmptaxedWNM > 0 || tmptaxedWBLK > 0 || tmptaxedWUNI > 0)) {
// 60% of the 1% penalty is burned
tWNM.mint(deadWallet, tmptaxedWNM * 6 / 10);
tWBLK.mint(deadWallet, tmptaxedWBLK * 6 / 10);
tWUNI.mint(deadWallet, tmptaxedWUNI * 6 / 10);
// 40% of the 1% penalty goes to stakers
wnmContract.assignExternalStakingRewards(tmptaxedWNM * 4 / 10, tmptaxedWBLK * 4 / 10, tmptaxedWUNI * 4 / 10);
}
// The other 1% goes to liquidity pools
liquidityWNM += tmptaxedWNM;
liquidityWBLK += tmptaxedWBLK;
liquidityWUNI += tmptaxedWUNI;
First-week penalty flow (2 % total)
• 1 % of unclaimed tokens: 60 % burned, 40 % to stakers
• 1 % of unclaimed tokens: 100 % routed to the liquidity programme
Net effect: 50 % liquidity, 30 % burn, 20 % stakers.
This fee structure applies only to the first airdrop and incentivizes liquidity provision and staking while reducing the total supply by burning part of the unclaimed tokens.
Subsequent Airdrops (Week 2+):
else if (tmptaxedWNM > 0 || tmptaxedWBLK > 0 || tmptaxedWUNI > 0) {
// First 1% goes to stakers
wnmContract.assignExternalStakingRewards(tmptaxedWNM, tmptaxedWBLK, tmptaxedWUNI);
}
// Second 1% goes to liquidity pools
liquidityWNM += tmptaxedWNM;
liquidityWBLK += tmptaxedWBLK;
liquidityWUNI += tmptaxedWUNI;
For all airdrops after the first one, the penalty structure is as follows:
50% of the penalties are allocated to the liquidity program.
50% of the penalties are distributed to stakers.
The system will automatically apply penalties to unclaimed airdrops:
This penalty is applied when users claim their airdrop
function calculateMintAfterPenalty(uint256 amount, uint256 rate) internal pure returns (uint256) {
uint256 base = amount * 1e18; // Scale up for precision
uint256 penalty = base * rate / 100;
return base - penalty;
}
This fee structure ensures that unclaimed airdrops continue to support the liquidity program and staking rewards, maintaining the ecosystem’s growth.