De meest opwindende ontwikkeling van de afgelopen maand voor de digitale ruimte is ongetwijfeld de felbegeerde EIP-2981-standaard geweest. Om specifiek te zijn, richt EIP-2981 zich op NFT-makers en biedt het de hoognodige oplossing om royalty-informatie rechtstreeks aan het token zelf te koppelen, en maakt daarbij gebruik van een gemeenschappelijke gegevensopslag en berekening waartoe alle deelnemers toegang hebben.
Hoe werkt het?
Het is vrij eenvoudig. De kern van het probleem wordt opgelost door een enkele Solidity-functie in een smart contract te wijzigen:
/// @notice Called with the sale
price to determine how much royalty
// is owed and to whom.
/// @param _tokenId - the NFT asset
queried for royalty information
/// @param _salePrice - the sale
price of the NFT asset specified by
_tokenId
/// @return receiver - address of
who should be sent the royalty payment
/// @return royaltyAmount - the
royalty payment amount for _salePrice
function royaltyInfo(
uint256 _tokenId,
uint256 _salePrice
) external view returns (
address receiver,
uint256 royaltyAmount
);
In het gebruikelijke geval, voor een gegeven NFT _tokenId en _salePrice, zal de royaltyInfo-functie een percentageberekening uitvoeren om de noodzakelijke (en onbetwiste) informatie te produceren om een royaltybetalingstransactie uit te voeren.
Merk op hoe de functie zich niet bezighoudt met valuta. De bestaande standaarden voor NFT’s (ERC-721/1155) zijn valuta-onafhankelijk. In feite zijn ze zich niet eens bewust van het concept van een ‘verkoop’. Als het gaat om meer abstracte concepten zoals verkoop, zijn het de marktplaatsen die ze faciliteren. Ter herinnering: er vinden twee belangrijke acties plaats wanneer een verkoop plaatsvindt:
- Een overdracht van geld van de koper naar de verkoper
- Een overdracht van de NFT van de verkoper naar de koper
Wat het smart NFT-contract betreft, kan het niet zeggen of een aanroep van safeTransferFrom een eenvoudige overdracht van de NFT naar een ander adres of een daadwerkelijke verkoopgebeurtenis was. Dit alleen al maakt het afdwingen van on-chain royaltybetalingen een uitdaging. Zeker als je voldoet aan bestaande standaarden die hier niet op zijn gebouwd.
Het algemene doel van EIP-2981-bijdragers is om een gasefficiënte oplossing te bieden en tegelijkertijd beperkingen op toekomstige verbeteringen van royaltybetalingen te vermijden. De eenvoud van het ontwerp is opzettelijk, met als doel adoptie eenvoudig te maken. Zoals bij elke standaard, is namelijk adoptie de sleutel tot het nut ervan.
Waarom is dit belangrijk?
De ontwikkelingen van de afgelopen jaren brachten ons de komst van NFT’s en de creatie van een nieuw medium voor makers om geld te verdienen met hun werk. Dit betekent niet alleen door ze voor eens en voor altijd te verkopen, maar door een verkooprecord bij te houden met behulp van blockchain-infrastructuur. Op deze manier kunnen makers royalty’s verdienen bovenop elke verkoop.
Een probleem met de grootschalige openbaarmaking van deze records hield de makers echter nog steeds tegen. Op dit moment bestaat er geen open standaard voor het betalen van royalty’s. Hoewel records bijvoorbeeld worden opgeslagen op marktplaatsen binnen Ethereum (ETH), kunnen ze niet worden gedeeld tussen verschillende platforms. Als gevolg hiervan, in het geval dat makers of kopers een NFT van een platform halen, zullen er geen informatierecords meer bestaan over de afkomst ervan. Hierdoor ontvangt de maker geen royalty’s meer.
Gezien deze zorgen is de EIP-2981 in een jaar tijd ontwikkeld. Het elimineert dit probleem volledig door aan marktdeelnemers de royalty-informatie voor een bepaalde NFT te signaleren. Het doel is gericht op het bieden van een gasefficiënte oplossing en het vermijden van beperkingen op toekomstige royaltybetalingen.