-
Notifications
You must be signed in to change notification settings - Fork 7
0x52 - Users can bypass Player royalties on EIP2981 compatible markets by selling clubs as a whole #293
Comments
Escalate for 10 USDC. I believe this issue is invalid because when reading the codebase, it seems to be the design choice of the Footium protocol to not charge new owner of the club the royalty fee for player transfer. The reason is in theory, the players still remain in the same club and are not transferred to other club. Transfer royalty is only applicable when a player NFT is transferred from one club to another, not when a club NFT is sold to a new owner. It is consistent with how other football works. Furthermore, there is no documentation that states or implies that buying a club NFT requires paying transfer royalty for every player NFT in the club. This leads me and many other Watsons to believe that this is not an issue. The EIP2981 is not enforced, therefore if a user want to bypass the player royalties, there are many ways to do it so selling club as a whole is not necessary. For example listing in a NFT marketplace that does not support EIP2981, so no royalty is charged. |
You've created a valid escalation for 10 USDC! To remove the escalation from consideration: Delete your comment. You may delete or edit your escalation comment anytime before the 48-hour escalation window closes. After that, the escalation becomes final. |
Escalate for 10 USDC This escalation is to contra-argument the escalation made by Watson thangtranth. While it is correct that the issue over-estimated the "Users can bypass Player royalties", and that this can be done in an easier way with a marketplace that does not enforce royalties via EIP2981 as mentioned in the watson's escalation. There exists an inconsistency in that players NFTs implement the EIP2981 whereas that club NFTs do not, so marketplaces that do respect the EIP-2981 won't pay the royalties for the club NFTs, and this can be seen as a loss of "yield" for the developers of the footium protocol. The argument that this seemed to be the intended behavior (not charging royalties for clubs) is subjective, as it could have easily been missed by the developers. And given that the sponsor confirmed the issue, it seems that this was the case. |
You've created a valid escalation for 10 USDC! To remove the escalation from consideration: Delete your comment. You may delete or edit your escalation comment anytime before the 48-hour escalation window closes. After that, the escalation becomes final. |
To clarify here from the protocol designer, it's correct that we don't intend for clubs to pay for the royalties for all players on transfer. Instead, we anticipate that the club will subjectively be valued in terms of the players that belong to the club. As a result, clubs should implement the EIP2981 standard so that on club sale royalties will be paid back to the protocol developers |
0xRobocop escalation is valid, a valid medium for this submission |
Escalation accepted Valid medium |
|
0x52
medium
Users can bypass Player royalties on EIP2981 compatible markets by selling clubs as a whole
Summary
Players have a royalty built in but clubs do not. This allows bulk sale of players via clubs to bypass the fee when selling players.
Vulnerability Detail
FootiumPlayer.sol#L16-L23
FootiumPlayer implements the EIP2981 standard which creates fees when buy/selling the players.
FootiumClub.sol#L15-L21
FootiumClub on the other hand never implements this standard. This allows users to sell players by selling their club to avoid any kind of fee on player sales.
Impact
Users can bypass fees on player sales by selling club instead
Code Snippet
FootiumClub.sol#L15-L21
Tool used
Manual Review
Recommendation
Implement EIP2981 on clubs as well
The text was updated successfully, but these errors were encountered: