Skip to main content

Operator Allowlist Explained

To uphold fair compensation for game studios, Immutable uses an Operator Allowlist which ensures your royalties and revenue are protected in secondary market trading.

It is mandatory that your collections implement the Operator Allowlist.
operator allowlistoperator allowlist
💡WHO IS THIS FOR?
Anyone who wants to understand the requirements for deploy a collection on Immutable zkEVM.

What is the Operator Allowlist?

Immutable has introduced an Operator Allowlist which ensures royalty fees are respected across the platform and ecosystem. Without the Operator Allowlist, your game's assets could be traded on malicious marketplaces that bypass both creator revenues and Immutable's 2% fee.

The Operator Allowlist will impact your project in the following ways:

  1. Asset Protection (Mandatory): Your NFT/SFT collections must implement the Operator Allowlist interface to protect royalties. This ensures that your game's assets are only traded on approved marketplaces that honor royalty fees. Immutable's preset contracts incorporate this by default.

  2. Utility Contract Privileges (Optional): Studios may implement advanced game mechanics which require their smart contracts to have elevated privileges when interacting with NFT/SFT collections. In these case, the smart contracts will need to be reviewed and added to an approved registry. Only contracts that are not involved in orderbook or settlement operations will be approved by Immutable.


Protection provided by Immutable's Operator Allowlist to an in-game asset

Why is it mandatory?

The Operator Allowlist serves a crucial purpose within Immutable's ecosystem, primarily aiming to shield game studios from potential attacks. These attacks could otherwise enable trading on orderbooks or settlement smart contracts, creating avenues to bypass content creators' revenues, including royalties, and Immutable's 2% fee.

By implementing Immutable's Operator Allowlist within a collection, game studios can fortify their game economies against such threats. All collections are mandated to utilize the IOperatorAllowlist interface. It's noteworthy that all of Immutable's preset contracts inherently incorporate the Operator Allowlist as part of their default configuration.

All collections on Immutable's zkEVM are required to inherit OperatorAllowlistEnforced.sol to protect royalties and protocol fees. All preset and Immutable Developer Hub deployed contracts do this inherently.

How does it work?

ERC721 and ERC1155 smart contracts, such as Immutable's ERC721 and ERC1155 presets, can use the IOperatorAllowlist interface inside the contract to set an operator allowlist that limits approvals and transfers to a set of operators (see enforcement flows).

The allowlist serves as a registry containing a public list of authorized operators identified by their addresses. These addresses could be a specific contract address or its bytecode (the smart contract's compiled code). For example, a settlement contract would have its contract address allowlisted, and a smart contract wallet would have its bytecode allowlisted.

Approving smart contract proxy contracts

Additionally, as smart contract wallets are deployed as proxy contracts with a specific implementation contract module, they will need their implementation contract allowlisted. This means that for a smart contract wallet to be approved, it must have the bytecode of the proxy allowlisted as well as the address of the implementation contract that the proxy is forwarding to.

Who deploys and manages the allowlist?

Immutable will manage a deployed instance of the allowlist with a set of approved addresses. The set of approved addresses includes Immutable's Orderbook contracts and Passport wallets. It is recommended that collection owners use this registry instead of managing their own to avoid incurring gas fees for deploying and managing the contract.

How do I implement the Operator Allowlist?

Follow our detailed instructions to implement the Operator Allowlist into your collections.

💡Mandatory Compliance
Implementing the Operator Allowlist is mandatory for all collections deployed on Immutable zkEVM.

Related content