Paint an Omnichain Masterpiece, then forge your friends' pieces!
Emergent Gallery is a cross-chain NFT (ERC‑721) smart contract suite designed to let digital artworks move fluidly between blockchains and to support a creative “forging masterpiece” experience.
Emergent Gallery integrates LayerZero v2’s ONFT‑721 for true cross‑chain NFTs: a normal “send” encodes via ONFT721Core, burns on the source, and mints on the destination upon lzReceive. We also ship a dual‑purpose, production‑ready send that detects composed payloads and triggers a “forge” path—skipping debit on the source and minting on the destination from metadata—plus a time‑based “forging masterpiece” state that temporarily blocks transfers/approvals while art is being created.
On the UX side, x402 handles front‑end payments/entitlement checks, and Walrus stores image/metadata so forged mints resolve to durable content.
We shipped both a Flow 'Forged Masterpieces' NFT collection and also have normal ONFT transfers on Flow (both testnet), alongside Arbitrum Sepolia and Base Sepolia.
In short, this combines standard ERC‑721 semantics with LayerZero messaging for predictable bridging, rich composed operations, and a clear, time‑gated creative lifecycle—ready for extension across multiple EVM testnets with metadata and
Deployed Addresses of ONFT721s: baseSepolia, address: 0x30c671ca0594a72f38CeCc68a2135250A45Ae924 network: flowTestnet, address: 0xe144269185484b327A3BD22c82e62b62EFe6B755 network: arbitrumSepolia, address: 0xe144269185484b327A3BD22c82e62b62EFe6B755
Forged Masterpieces Collections: Flow Testnet=0x999F10125807398d2D83a8d2a676a504deC5fAd8 Arbitrum Sepolia: 0x999F10125807398d2D83a8d2a676a504deC5fAd8 Base Sepolia=0xB9fd8A0Bf48842a3062CEF3B87eB00bdD38e1143
We built Emergent Gallery NFT Contracts as a cross-chain ERC‑721 suite in Solidity 0.8.22 using Hardhat, TypeScript tests, and LayerZero v2 ONFT‑721 to handle interoperability across Arbitrum Sepolia, Base Sepolia, and Flow Testnet.
The core extends LayerZero’s ONFT721 (ONFT721Core + ERC721) and relies on the canonical send pipeline: _buildMsgAndOptions encodes messages with ONFT721MsgCodec, send() delivers them through the LayerZero endpoint, and _lzReceive mints on the destination. We implemented a dual‑purpose send: a standard path that burns on the source and mints on the destination, and a “forge” path that detects composed payloads (via the ONFT721 message format) and, instead of burning, sends a message so the destination mints while the original remains on the source—enabling creative duplication or metadata‑driven minting.
On top of that, we added a time‑gated “forging masterpiece” state with startForgingMasterpiece and completeForgingMasterpiece, which blocks transfers/approvals until a configurable duration elapses.
The front end integrates x402 for payment and entitlement checks prior to mint/forge/send, and we use Walrus for decentralized storage of assets/metadata, with forge messages referencing Walrus URIs so destination mints resolve immediately.