Comment on page
Omni X is a baseline fork of LooksRare, which shares similarities with OpenSea as both are non-custodial exchanges utilizing a hybrid model. In this model, "Maker Orders" are stored off-chain as EIP-712 signatures. However, the LooksRare model is preferred due to its:
- Modular design for upgradeability without proxies or circuit breakers, enabling continuous feature rollouts
- Multiple strategies for executing orders
- On-chain royalties, compatible with ERC-2981 and custom standards
- Redistribution of rewards to stakers and marketplace participants in the form of native tokens (LOOKS) and trading tokens (WETH)
Combined with well-written developer documentation, these features make LooksRare an ideal technical base for community-driven NFT marketplaces.
To adapt the LooksRare model for omnichain support via LZ, the following changes are introduced:
- 1.Maker Orders (off-chain EIP-712 signatures) will include two additional parameters:
srcChainparameter contains the network ID where the order was made, while
dstChainscontains an array of chain IDs that the order maker wants to accept.Example: An ask order for an Avalanche NFT that the seller wants to sell on Polygon, BNB Chain, or Arbitrum will have a
srcChainID of 6 and
- 2.Taker Orders (on-chain structs) will also include the same parameters. A taker order will trigger an execution against an existing maker order if the parameters align. The taker assumes all gas fees associated with the transaction.
By implementing these modifications, Omni X can support cross-chain NFT transactions, expanding its capabilities and offering users more flexibility and options when trading NFTs on various chains.
- 3.The core exchange contract must become omnichain. When the trade is executed on the
srcChainof the taker order, the trade data is sent to the
srcChainof the maker order. The exchange contract then calls the
TransferManagerERC721to handle the transfer of the original NFT to the new owner on the
- 4.If the NFT being sold is omnichain, the exchange contract can also call the
SenderManagerERC721to transfer the NFT to the
srcChainof the taker order if the taker prefers. This transfer can be performed in a single transaction.