ADR-47: Collections secondary marketplaces v2

More details about this document
Latest published version:
https://adr.decentraland.org/adr/ADR-47
Authors:
agusferreira
fzavalia
nicosantangelo
cazala
lautaropetaccio
nachomazzara
Feedback:
GitHub decentraland/adr (pull requests, new issue, open issues)
Edit this documentation:
GitHub View commits View commits on githistory.xyz

Statement of the problem

The current marketplaces (Marketplace & Bid) have two fees, a publication fee which is charged to the seller of the asset once they create an order, and a cut fee which is deducted to the seller to the final price when an order/bid is executed. For the time being, the publication fee is 0 and the cut fee is 2.5%. Those fees go to the owner of the smart contract. Here, arise the first issue, the owner of the smart contract is not always where we want to send the fees making the management of those fees hard. The second one, and the most important, is that it doesn't support royalties for user-generated collections assets (Decentraland collections v2).

Solution proposed

Fees

The publication and cut fees go to the fees collector instead of the owner.

A new fee is added: Royalties fees. The royalties fees apply only when an order or bid is executed.

Roles

There are two new roles:

Fees collector: the publication and cut fees go there keeping the owner of the contract as a different entity. The owner of the contract can change the fees collector.

Royalties Manager: not completely a new role but a module. This contract will return where the royalties fees must go. Find the specs here. The owner of the contract can change the royalties manager contract. This allows using further versions of the royalties manager.

Small enhancements

This is not part of the main reason, but also the Solidity version is updated to 0.8 and the error messages are standardized.

Implementation

Links

License

Copyright and related rights waived via CC0-1.0. DRAFT Living