NFT Breeding Program Prerequisite: What is Metaplex Standard? image from Metaplex docs 1. Initialize Store metaplex NFT attributes on chain Breeding Metadata Hash Generation Name Metaplex Mint ParentA ParentB ... AttributeA AttributeB ... Initialization is only for genesis (Generation 0) Change Upgrade Authority of NFT to Breeding PDA signer so that the used NFT can be burnt by Breeding program 2. Compute New Data Customizable Breeding Logic with compute interface Write attributes to BreedingMeta (PDA) 3. Mint Child NFT Write Metaplex metadata (without URI) Transfer upgrade authority to Breeding program PDA Signer Burn Parent NFTs(optional) Read attributes (off-chain) Upload image to web3 storage (off-chain) 4. Update URI of child NFT Update URI in Metaplex metadata