Cross-Chain NFT


  • bridge collectibles to and from OpenSea (see #ONEquest)
  • a bridge to/from Enjin Efinity and wallet supports

Weekly Update

  • 10/25: bridge code has been merged, and ready to launch on Mainnet by end of this week.
  • 10/18: ERC1155/HRC1155 bridge support of ETH is on testnet, @Ganesha Upadhyaya and @Yuriy M are reviewing the PR. The opensea verification support will be added this week.
  • 10/06: ERC721/HRC721 bridge to/from Ethereum was in testing. ERC1155/HRC1155 is being worked on right now. A few engineers have shown interest and are working on the bridge.
  • 09/28: We are making progress on the cross-chain NFT. Cross-chain HRC721 is working in local test net based on the comments from the bounty. 1155 support is on the way. The screenshot of the harmony to ethereum 721 support.
  • 09/15: a few teams are interested in working on this bounty to support 721/1155 for cross-chain.


Related works


  • immutable-x is a layer-2 (zk-rollup based) solution targeted towards fast/cheap NFT trading.
  • immutable-x api (https://docs.x.immutable.com/reference#application-1): developers do not need to interact directly with smart contracts (for minting to trading to transferring), but use simple API calls.
  • immutable-x sdk (called link): Typescript SDK implementation for better partner integrations (works directly with web3 wallets like metamask).
  • immutable-x shared orderbook: backend for assets (similar to opeasea) provided by immutable-x such that partners building marketplaces can directly utilize it.
  • nft metadata: allows two types of metadata for nfts: 1) immutable (user upload nft image and immutable-x creates ipfs hashes and links the tokenURI), 2) mutable (user provide tokenURI, which user can change later)
  • nft metadata allows additional properties to be passed in the metadata json.

Relevance to our crosschain-nft platform

  • erc721 bridging from/back-to ethereum: our nft bridging uses same logic, where erc721 gets locked to bridge contract on ethereum and same tokenId gets minted to hrc721 contract that is mapped to unique erc721 contract.
  • hrc721 bridging from/back-to harmony: not supported yet. but we could do: for any nft (hrc721/1155) originally minted on harmony, our bridge can allow them to be moved over to ethereum using two options: 1) deploying and minting as erc721: in this case, a new contract is deployed if an erc721 contract for the hrc721 does not exists yet. the cost will be bared by the user. and then corresponding mint for the tokenId is done. 2) mint into a generic erc1155 (like davinci): no new contract is deployed, user's hrc721 tokenIds gets mapped to erc1155 tokenIds. in this case, no cost for initial contract deployment, only minting cost.
  • nft metadata: when the user locks erc721, horizon bridge mints corresponding hrc721 tokenIds with tokenURI same as erc721 tokenId tokenURIs. Further, bridge allows hrc721 owner to change tokenURI. when user bridges hrc721 to ethereum, same method can be used.
  • nft backend: todo...