How do I apply for the OKX Market Forced Royalty Contract?

Published on Jun 28, 2024Updated on Oct 2, 20242 min read

How do I apply for the OKX Market Forced Royalty Contract?

Before applying for the OKX Market Forced Royalty Contract, make sure you have:

  • Deploys or upgrades the NFT contract

  • Whitelists the OKX market contract

  • Set up royalty information by connecting your contract administrator wallet to the collection page, and selecting Make collection offer to set the royalty receiving address and collection rate. If you would like to modify your collection information, you can refer to this article for the collection in the EVM network and this article for the collection in the Ordinals network.
    Note: If the project team’s wallet cannot connect to the market, you can contact our market technical staff for configuration.

  • Make sure the following information is met before submitting your application via this application form:

    • Only whitelist contracts provided by OKX are tradable (refer to the integration document)

    • Contracts from other markets are not tradable

    • If the whitelist is opened to other markets that do not enforce forced royalties, OKX reserves the right to stop exclusive collection trading

What are the whitelisted addresses in different chains?

  1. Aggregator addresses, mandatory royalty market contract addresses, and unified authorization contract addresses are transaction-related addresses that must be configured.

  2. The batch transfer tool address is the OKX tool address, compatible with ERC721 and ERC1155, and its configuration is optional.

Chains

Aggregator address (Compulsory)

Mandatory royalty market contract address (Compulsory)

Unified authorization contract address (Compulsory)

Batch transfer tool address (Optional)

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

X Layer

0xa7FD99748cE527eAdC0bDAc60cba8a4eF4090f7c

0xEfcB1C65C1fff1BDE5938505137AddA08c02713B

0x2B45c083c9cAb7edA8d2d63B926d9A828EE01c74

0x08E4a58C6434f3d59d3D608596cFc3Cb95ef3329

What are the reference codes?

Here are the codes that you can reference to:

  1. For collection, you can refer to the ERC721 standard implementation of Openzeppelin 4.9 as an example.

    JavaScript
        function _beforeTokenTransfer(
            address from,
            address to,
            uint256 tokenId
        ) internal virtual {
        
            if (_isContract(msg.sender)) {
                require(senderAllowlist[msg.sender], "Sender not in Allowlist");
            }
            
            // ... ...
            // ... ...
        }
  2. For open-source code, you can refer to this link as an example