此網頁僅供信息參考之用。如果您居住在香港,請通過您的賬戶查看 OKX香港的產品和服務。

OKX Web3 錢包強制版稅合約說明

發佈於 2024年6月18日更新於 2024年6月18日閱讀時長 2 分鐘

一、強制版稅合約說明

歐易 Web3 錢包強制版稅工具爲您的合集提供一套完整流程的服務,可保證用戶在二級市場的每次交易,都能爲您的合集實現100%的版稅收取。爲此您需要允許合集只在歐易 Web3 錢包市場進行獨家交易。

二、申請流程

  1. 項目方部署或升級NFT合約,合約實現可參考文檔下方的示例

  2. 項目方將市場合約配置爲白名單

  3. 項目方配置版稅信息

    1. 版稅邏輯修改指引

      • 使用合約管理員錢包,打開並連接合集頁,點擊紅框處配置版稅收款地址和收取比例

    2. 合集信息修改指引

      • 打開項目方資產合約管理員地址

      • 選中需編輯的合集,點擊編輯,進行項目信息編輯

      • 備註:如項目方錢包無法連接到市場,請聯繫歐易 Web3 錢包市場技術人員進行配置

  4. 確認以下信息,並填寫申請表單,向歐易 Web3 錢包市場提供 NFT 合約

    1. 僅歐易提供的白名單地址合約可交易(見對接文檔)

    2. 其它市場合約不可交易

    3. 如白名單被開放給其它不執行強制版稅的交易市場,歐易有權停止獨家合集交易


三、各鏈白名單地址

聚合器地址、強制版稅市場、統一授權合約地址爲交易相關地址,是必須要配置的。批量轉移工具地址爲歐易工具地址,工具兼容 ERC721 與 ERC1155,是選擇性配置的。

聚合器(必須配置)

強制版稅市場合約(必須配置)

統一授權(必須配置)

批量轉移工具(可選配置)

eth

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0x82C0fDFA607d9aFbe82Db5cBD103D1a4D5a43B77

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0x5B93A825829f4B7B5177c259Edc22b63d6E4e380

polygon

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0xdc8B1f859bD9aFd93159DEcF75eaDD5f871aE6ee

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0x8325A52a1B74Cd50B4CcF94dD821F56A7a9018E2

arb

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0xdc8B1f859bD9aFd93159DEcF75eaDD5f871aE6ee

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0xdc426b528377F3Bd301D09FA0Ea16ff169cC8C73

BNB

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0xdc8B1f859bD9aFd93159DEcF75eaDD5f871aE6ee

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0x6A5Cf9D9d0B8c32610b2a2e60cBb766D3404C3c6

mode

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0x2Cc7a0Ab3CD788d4C59A31d7C4001351Fb1CE564

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0x5F47bfAD0d500A999b6A937e8D1715Db0B573631

Xlayer

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0xEfcB1C65C1fff1BDE5938505137AddA08c02713B

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0x08E4a58C6434f3d59d3D608596cFc3Cb95ef3329


四、參考方案(WIP)

1、合集側的參考代碼,以 Openzeppelin 4.9 的 ERC721 標準實現爲例。點擊參考鏈接,代碼:

JavaScript
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 tokenId
    ) internal virtual {
    
        if (_isContract(msg.sender)) {
            require(senderAllowlist[msg.sender], "Sender not in Allowlist");
        }
        
        // ... ...
        // ... ...
    }

2、參考此開源合約