Skip to content

Mechanics

A mechanic is the on-chain contract that executes a sale. Where sale types define the pricing strategy at the API level, mechanics define the on-chain logic that actually mints tokens.

For most sales you never touch mechanics directly — picking a sale type wires the right one automatically.

TypeWhat it does
SEED_BASED_MINTDeterministic token assignment from a seed
DISCRETE_DUTCH_AUCTIONStep-based Dutch auction with scheduled price drops
RANKED_AUCTIONSealed-bid auction with optional rebate
GASLESSGas-sponsored minting via meta-transactions

These are seeded by the platform and immutable. They’re deployed per chain; the platform tracks deployment addresses per chain.

A special mint path, not a mechanic: choose-token lets collectors select which token IDs they want to mint. It’s only available for Series collections on FIXED_PRICE or DUTCH_AUCTION sales.

  • FIXED_PRICE + any access mode → executor-signed gatedSeriesMintChooseToken.
  • Public DUTCH_AUCTION → on-chain mechanicMintChoose (needs a registered mechanicVectorId).
  • Gated DUTCH_AUCTION → executor-signed gatedSeriesMintChooseToken.

Ranked auctions never support choose-token.

Register your own mint contract:

  1. Deploy your mechanic contract on each chain you want it to run on.
  2. Call client.mechanic.create to register it, including its configSchema (JSON Schema for sale typeConfig) and encodingAbi (ABI used to encode on-chain calldata).
  3. Add chain deployments via client.mechanic.addDeployment.
  4. Reference it when creating sales: type: "CUSTOM" + mechanicId.

See SDK: mechanics for the code surface.