Tiempo estimado: 4 minutos de lectura
¿Qué son los derechos de autor en un contrato de NFT?
Los derechos de autor (royalties) en un contrato de NFT representan la fracción del precio de venta de un token en un marketplace que debería percibir el creador del contenido.
El concepto es muy simple y desarrolla una de las narrativas más habituales en el mundo web3: la del reparto justo de los beneficios comerciales hacia los creadores de contenidos en un sistema sin intermediarios.
Es un mecanismo que se debe aplicar exclusivamente cuando se produce una transacción comercial, quedando al margen los traspasos de propietario entre direcciones sin ningún valor económico.
¿Cómo se definen las royalties en un contrato de NFT?
En sus orígenes, el estandar ERC-721 que define el contrato base de los NFT no desarrolló el concepto de derechos de autor o royalties. Fue la aparición de la norma ERC-2981 la que sentó las bases para definir cuánto y quién debería percibir valor por las transacciones comerciales de los NFT.
Se trata de una interfaz muy sencilla que únicamente define este método de lectura:
/// @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
);
De esta forma, cuando se venda un determinado token desde un marketplace será posible conocer que fracción del precio de venta (royaltyAmount) y a qué dirección (receiver) se debería transferir para respetar los derechos de autor.
Habitualmente se define la siguiente estructura Solidity para almacenar la información sobre derechos de autor:
struct RoyaltyInfo {
address recipient;
uint16 bps;
}
Se observa que el porcentaje se calcula en forma de BPS o puntos básicos (100 BPS = 1%). Es una unidad estándar para representar porcentajes con precisión sin usar decimales, ya que la EVM no soporta números flotantes . El cálculo de los derechos de autor quedaría de esta manera:
royaltyAmount = (_salePrice * bps) / 10_000;
Por otra parte, el estándar define una única dirección beneficiaria de los derechos de autor. Para esquemas más complicados que involucren a más de un receptor se puede optar por desarrollar un contrato propietario o usar alguna de las implementaciones existentes. Entre ellas se citan estas:
- PaymentSplitter de OpenZeppelin. Actualmente ha quedado fuera de la versión 5.0 de los contratos por este motivo.
- El contrato Split.
- El contrato fee splitter de Immutable.
¿Qué otras alternativas hay?
El estandar ERC-2981 no es la única vía para definir derechos de autor en contratos de NFT.
Por un lado, los propios marketplaces han definido sus estándares para gestionar los derechos de autor. Entre ellos podemos citar:
- ¿Cómo añadir derechos de autor en OpenSea?
- ¿Cómo fijar derechos de autor en Rarible?
- ¿Cómo añadir derechos de autor en Manofold?
Por otra parte, los contratos que no implementan el estandar ERC-2981 quedarían al margen de la gestión de derechos de autor.
Con el objetivo de unificar la gestión de derechos entre los distintos marketplaces y permitir que contratos antiguos los puedan gestionar, ha surgido el Royalty Registry. Consta de dos componentes:
- La configuración del registro de royaties: se trata de un contrato que permite al propietario de la colección definir la información de derechos de autor de cualquier contrato de NFT. En principio está pensado para aquellos contratos que no establecen los derechos de ninguna forma.
- El motor de búsquedas de royalties: es un un contrato que proporciona una forma sencilla de consultar las royalties de un contrato de NFT. Si se ha establecido una configuración en el Registro de Royalties, se utilizará esa información. De lo contrario, se intentará obtener a partir de especificaciones como EIP2981 o la de algún marketplace compatible.
Un ejemplo de la consulta efectuada al registro sería la siguiente:
Conclusión: repartiendo los beneficios a los creadores
La gestión de derechos de autor sin intermediarios es uno de los paradigmas de la narrativa en web3.
Si bien el concepto es muy interesante y atrayente, su implementación real dista mucho de ser ideal.
Las primeras dificultades radican en la forma de definir cuánto y quién debe percibir los derechos. Iniciativas como la norma ERC-2981 o el Registro de Royalties han servido para unificar y extender mecanismos frente a las iniciativas privadas de los distintos marketplaces.
Queda sin embargo pendiente el punto más importante: ¿de qué forma asegurar que los derechos de autor definidos sean realmente respetados cuando se produzca una transacción comercial en el contrato de NFT? Lo trataré en mi próximo artículo.
¿Has tenido que hacer cumplir el reparto de derechos de autor en algún contrato de NFT o en alguna otra situación? ¿Qué soluciones has encontrado dentro de web3 para ello? Te invito a que compartas tus propias experiencias.
Si necesitas hacer valer los derechos de autor en tu proyecto web3, puedo ayudarte. Contáctame y vemos qué opción es la más adecuada para tu caso. ¡Muchas gracias!