Knowledge Base
  • ๐Ÿ‘จโ€๐ŸŽจFor creators
    • ๐Ÿ‘‹Intro to creating with Highlight
    • ๐Ÿ“œProject quick start guides
      • Launch an open edition
      • Launch a delayed reveal collection
      • Launch a 1-of-1 auction
      • Launch a generative artwork
      • Launch an open edition generative artwork
      • Launch a PFP project
      • Launch a generative, image-based PFP project
      • Launch a ranked auction
      • Launch an onchain project
      • Launch a collector's choice project
      • Ongoing drops with the same contract
    • ๐ŸŽ‡Learn the creation flows
      • ERC-721 vs. ERC-1155 Token Standards
      • Edition flow
      • Generative flow
      • Series flow
      • The importance of testing your collections
    • ๐Ÿ‘ฉโ€๐Ÿ’ปUse embeds to build custom mint sites
      • Case Study: How Superchain Chiblings launched a fully custom website on Highlight x Base
      • Running a collector's choice mint via embeds
    • ๐Ÿ’ธSelling your NFTs
      • Available sale methods
        • Ranked auction
        • Dutch auction
        • English auction
      • Setting up gates (allowlists)
      • Combining sale methods
      • Configuring payment currencies
        • Accepting ERC20 payments
        • Accepting credit card payments
      • Payouts, royalties & splits
      • Livestream on the mint page
    • ๐Ÿ› ๏ธManaging your collections
      • Hiding a collection
      • Mint creator reserves
      • Airdropping tokens
      • Updating collection metadata
      • Getting verified
      • Sponsored mints
      • Reducing collection size
    • ๐Ÿ”ฎGenerative & onchain art tools
      • Highlight Studio
      • Onchain file system
      • Storing SVGs onchain
      • Downloading token metadata
      • How onchain is Highlight?
    • ๐ŸŒIntegrations & ecosystem
      • Farcaster
      • Paragraph.xyz
      • Foundation Worlds
        • Importing a collection to Worlds
        • Foundation ร— Highlight FAQs
      • Export generative art from Cables.gl
      • Highlight on mobile
    • ๐Ÿค“Advanced
      • Reusing contracts
      • Randomization algorithm
      • Upload asset specifications
      • Fulfilling auctions for non-transferable tokens
    • โœจAbout Highlight
      • Artwork policies
      • Highlight fees
  • For Collectors
    • ๐Ÿ’ณBuying
      • Buying on secondary
      • Exchange currency across chains
  • ๐Ÿ’ฒSelling
    • Selling on secondary
    • Instantly sell & relist NFTs
  • ๐Ÿ””Notifications
  • For developers
    • Intro to the Highlight Protocol
    • NFT contracts
      • Official addresses
      • ERC721GeneralSequence
      • ERC721General
      • ERC721EditionsDFS
      • ERC721SingleEditionDFS
      • ERC721GenerativeOnchain
      • Deprecated contracts
    • Custom metadata renderers
      • Example custom renderers
    • Minting protocol
      • Mint Managers
      • Mint Mechanics
        • Dutch auction mechanic
        • Ranked auction mechanic
        • Verisart mechanic
        • Seed-based mechanic
        • Auction Manager *
      • Referral Manager
    • Management modules
      • TokenManager
      • RoyaltyManager
    • Observability
    • Onchain File Storage
    • Mint fee oracle
    • Protocol rewards
      • Creator rewards
      • Mint referral rewards
    • Crosschain burn / redeem
  • Official links
    • โœจHighlight website
    • ๐ŸŸฃHighlight Farcaster
    • ๐ŸฆHighlight Twitter
    • ๐Ÿ‘‹About us
Powered by GitBook
On this page
  1. For developers
  2. Minting protocol

Mint Mechanics

PreviousMint ManagersNextDutch auction mechanic

Last updated 11 months ago

The MintManager itself facilitates fixed priced public sales in which you can add basic information like a payment recipient, a max supply, a max per wallet, etc. It also supports gated signature-based sales, which allows Highlight to validate gate access offchain and then process mints on chain.

But beyond that, developers can also write their own custom mint mechanics. Mint mechanics can be crafted to produce highly tailored sales experiences. Highlight's own ranked auction and Dutch auction formats are powered by mint mechanics. Others have produced custom mint mechanics to accomplish things like running their own off chain servers to process mint logic, use their own credit card payment system, sign transactions, and then execute mints.

Mint mechanics have functions that are inserted as hooks into the mint managers, and are run before minting can occur. This means you can decide for yourself, in your own mechanic, what sale logic to process. Once the mechanic's mint logic is processed, the mint will proceed successfully. In these cases, the only check run in our mint manager is the check to verify that the appropriate Highlight fee of .0008 ETH has been paid.

Every custom mechanic has a , with three core methods: createVector (all mechanics use a global ID system, and you call createVector to create one and register it), processNumMint (a hook where your custom logic happens, all we do is validate that fee was paid and then we execute), processChooseMint (the same kind of hook but for collectors' choice series).

Finally, note that your custom mechanic can receive arbitrary data passed in from the mint manager as the final parameter, allowing you to pass in custom data that you can process inside your mechanic.

The arbitrary data parameter in all three functions (createVector, processNumMint, processChooseMint) is the key to implementing highly customizable sale logic in your mechanic.

Contracts link

simple interface to adhere to
Logohl-evm-contracts/contracts/mint/mechanics at main ยท highlightxyz/hl-evm-contractsGitHub