1. 创作者/项目方可以禁止自己的 NFT 系列在那些零版税的交易平台上架

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract ERC721RestrictedMarkets is ERC721, Ownable {
    constructor() ERC721("MyToken", "MTK") {}

    mapping(address => bool) private _approvedMarketplaces;

    function approve(address to, uint256 tokenId) public virtual override {
        require(_approvedMarketplaces[to] != false, "Invalid Marketplace");
        super.approve(to, tokenId);
    }

    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(_approvedMarketplaces[operator] != false, "Invalid Marketplace");
        super.setApprovalForAll(operator, approved);
    }

    function setApprovedMarketplace(address market, bool approved) public onlyOwner {
        _approvedMarketplaces[market] = approved;
    }

}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract ERC721RestrictedMarkets is ERC721, Ownable {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIdCounter;

    constructor() ERC721("MyToken", "MTK") {}

    function safeMint(address to) public onlyOwner {
        uint256 tokenId = _tokenIdCounter.current();
        _tokenIdCounter.increment();
        _safeMint(to, tokenId);
    }

    mapping(address => bool) private _approvedMarketplaces;

    // rinkeby 0x1E0049783F008A0085193E00003D00cd54003c71
    
    function approve(address to, uint256 tokenId) public virtual override {
        require(_approvedMarketplaces[to], "Invalid Marketplace");
        super.approve(to, tokenId);
    }

    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(_approvedMarketplaces[operator], "Invalid Marketplace");
        super.setApprovalForAll(operator, approved);
    }

    function setApprovedMarketplace(address market, bool approved) public onlyOwner {
        _approvedMarketplaces[market] = approved;
    }



}

建立可交易 NFT 市场白名单

Azuki 的官方团队开发人员 cygaar 发布推文表示:可以更改 NFT 智能合约,建立可交易的 NFT 市场白名单,或者说,直接禁止其 NFT 集合在那些支持零版税的 NFT 交易市场上挂单交易。

2. 推出自己的 NFT 交易市场
图片​

Truth Labs 将推出属于自己的 NFT 交易市场

goblintown.wtf 开发公司 Truth Labs 的联合创始人 Alexander Taub 在其社交平台宣布将于几周内推出 NFT 交易市场。其生态项目 goblintown.wtf、The 187、SecretSocietyJHB、grumpls、burgers 等将上线该市场进行交易。该市场所有 NFT 系列的版税定为 5%,不收取平台费用。

3. 采用类似于 EIP-2981 的能内置支付创作者版税的 NFT 智能合约标准
该标准只是告诉市场版税百分比应该是多少。它并不强制要求必须尊重版税。Opensea 完全忽略了这些值。

EIP-2981:NFT 版税标准

EIP-2981 是一个 NFT 版税智能合约标准,它由 Zach Burks, James Morgan, Blaine Malone, James Seibel 于 2020 年 9 月联合提出。EIP-2981 允许资产合约(例如支持 ERC-721 和 ERC-1155 接口的 NFT)每次出售或转售 NFT 时向 NFT 创建者或权利持有人发送需支付的特定比例的版税金额。

EIP-2981 实现了标准化的版税信息检索,它是一个「全局」、「跨市场」、「向后兼容」的「链上版税」协议。采用 EIP-2981 的 NFT 无论在哪个市场出售或转售都可以实现准确的版税支付。但它也存在一些问题:比如目前只有部分主流的 NFT 交易市场(如 LooksRare、Coinbase NFT)支持这个合约标准,OpenSea、X2Y2 等都暂时不支持它。

4. 功能和权益制裁
图片​
Coniun 宣布对「取消版税」反击

8 月 27 日中午,Coniun 发布推文宣布了它对于那些支持零版税的 NFT 交易市场的制裁:删除 Coniun 平台内与零版税有关的交易平台的链接,取消在 X2Y2 上的项目发售,撤销 justaped.in 为 X2Y2 提供的服务,未支付版税购买的 NFT PASS 的平台功能将被封禁,除非补交版权费。对于取消版税的 NFT 交易平台,Coniun 用实际行动吹响了反击的号角。

最后结语

「取消版税」的闹剧是熊市大环境下 NFT 交易平台红海搏杀的意外结果,前有 sudoswap 这个始作俑者充当挡箭牌,当低价和补贴无法成为护城河,面临着生存危机时,X2Y2 选择祭献作为源头活水的创作者,借「惩治 soft rug」变革之名,行伤害 NFT 生态之实,其中的逻辑无法自洽。

X2Y2 可以美名为「居安思危」,但我相信相悖于 Web3 精神、不尊重创作者和艺术家、满眼都是利益的不义之师终将失败。

而在「创作者经济」的历史洪流中,有人加入内卷,为「劣币驱逐良币」火上浇油,有人则选择默默耕耘把蛋糕做大,关注长期效用和品牌的未来。这是投机客和理想家的共识硬分叉,Web3 乌托邦道阻且长。