Proud Punch Mouse
Medium
Usd0PP token holders did not receive any interest earnings.
According to the documentation: https://usual.gitbook.io/usual-technical-documentation/Aw3jUdIChYIRnEPcqUqK/overview/features/usd0++
It offers daily yield distribution in $USUAL tokens, with a variable rate based on market price, and guarantees a floor yield in USD0, matching the risk-free yield. However, in the code: https://github.com/sherlock-audit/2024-10-usual-labs-v1/blob/4fb4a64a479e0b9b8f93934220e891c29d54df33/pegasus/packages/solidity/src/token/Usd0PP.sol#L244
function unwrap() external nonReentrant whenNotPaused {
Usd0PPStorageV0 storage $ = _usd0ppStorageV0();
// revert if the bond period is not finished
if (block.timestamp < $.bondStart + BOND_DURATION_FOUR_YEAR) {
revert BondNotFinished();
}
uint256 usd0PPBalance = balanceOf(msg.sender);
@> _burn(msg.sender, usd0PPBalance);
@> $.usd0.safeTransfer(msg.sender, usd0PPBalance);
emit BondUnwrapped(msg.sender, usd0PPBalance);
}
We can see that Usd0PP is only exchanged back to usd0 at a 1:1 ratio. Usd0PP holders do not receive any yield earnings—there is no $USUAL yield reward nor a floor yield in USD0. The Usd0PP contract also does not implement any functions related to yield rewards.
As the bonds mature, the value of the US Treasury Bill tokens (USYC) gradually increases. The value stored in the treasury exceeds the total amount of usd0 and will further increase over time, adding more value to the treasury. In theory, the treasury’s earnings (interest income from bonds) could be used to mint additional usd0 and distribute it to Usd0PP holders, thereby guaranteeing a floor yield in USD0 that matches the risk-free yield. However, this feature is not currently implemented in the code.
Even though users who initially converted usd0 to usd0PP might receive $USUAL airdrop rewards, this is not considered yield rewards. Additionally, users who convert usd0 to usd0PP later do not receive any rewards at all.
No response
No response
No response
The documentation mentions that yield rewards are not allocated to Usd0PP token holders; the treasury retains all bond earnings without distributing them to anyone. This could lead to users losing trust in the protocol.
No response
Implement yield earnings for Usd0PP.