Royalties
Last updated
Last updated
There are several fees/royalties associated with a transaction on the OpenChrono platform. These are in place to incentivise quality of work and compensate the authenticator, storage, and maintenance costs.
The seller also pays a marketplace 'listing fee'.
On every sale via the OpenChrono marketplace this fee structure will be applied.
There are two points of view with regard to the royalties. The first is royalties for secondary marketplaces. At the time of writing, the most well-known royalty standard for smart contracts is ERC-2981. This ERC ensures that a base fee, a token-specific fee, and a fee-receiver can be set. It does not enforce the payment of it. It only enforces that the contract gives royalty information. Secondary marketplaces such as OpenSea only partly support this as a voluntary fee.
It is important to know that ERC-2981 calculates the royalty amount over the given price. Meaning that the given price already includes the fees.
Another point of view is for sales via the OpenChrono website. Here ERC-2981 is not used. Instead, the fee structure is applied directly. This is to avoid unwanted rounding errors and to keep the calculations clean.
The TimePieceNFT contract supports ERC-2981. The fee percentage is calculated and set by the TimePiecePayments contracts based on the given fee structure. More on this later.
As shown in the picture above, the fee structure of OpenChrono consists of multiple parts to cover different costs.
As shown in the image above. It is important to note that the seller sets a desired asking price. This price is used to calculate the fee amounts. The buyer will thus pay more than this set price and the seller will receive less than this set price.
The seller fee is ‘paid’ by the seller as a fee for making use of the OpenChrono platform.
The contract fee is to compensate for the costs of operating the smart contracts.
The storage fee of to compensate for the costs of storing the watch in a vault.
The authentication fee is to compensate for the costs of the authentication process.
This total fee percentage is only used on secondary marketplaces that make use of ERC-2981.
ERC-2981 supports default and token-specific fees. Therefore the TimePiecePayment also supports this.
The fee structure consists of an array of receivers and the corresponding fee percentage. The default fee must always be completely filled with valid data.
If an authenticator requests a higher or lower fee, or the storage fee is to change due to asset value, then this is possible by setting the new value in the token fee structure in the same place as it is in the default fee, and keeping all not-updated fields zero. After setting this token fee structure, the contract can combine the default and token structure by overwriting the default fee structure with the non-zero values in the token structure. This will result in a single fee structure to use for a specific token. See the image below for a visual flow.
When a watch is bought via the OpenChrono website the fees apply over the seller-set price as stated before.
First, the buyer fees are calculated and added together to the seller-set price. This is the amount that the buyer needs to pay. All the buyer fees are transferred to the appropriate account.
Next, the seller fee is calculated and subtracted from the seller-set price. This is the amount that the seller receives. The seller fee amount is transferred to the appropriate account.
After a payment has been made and the fees are in the TimePiecePayment contract, OpenChrono can distribute the fees.
Fees can come both from the OpenChrono marketplace and from secondary marketplaces. From secondary markets there is no indication on which tokens it was from (without spitting through blockchain transactions).
OpenChrono can automatically split fees in the contract by giving a listing price and token ID. Any additional/unknown fees can be manually withdrawn and distributed as seen fit.
All percentages set in the contract are based on the seller-set price. As stated before, ERC-2981 takes the fee over the provided (total) price (so including fees). Assuming that the total seller fee percentage is and the total buyer fee percentage is then the single fee percentage over the total amount for ERC-2981 is (see the derivation below).