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.
Built-in mechanics
Section titled “Built-in mechanics”| Type | What it does |
|---|---|
SEED_BASED_MINT | Deterministic token assignment from a seed |
DISCRETE_DUTCH_AUCTION | Step-based Dutch auction with scheduled price drops |
RANKED_AUCTION | Sealed-bid auction with optional rebate |
GASLESS | Gas-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.
Choose-token (Series)
Section titled “Choose-token (Series)”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-signedgatedSeriesMintChooseToken.- Public
DUTCH_AUCTION→ on-chainmechanicMintChoose(needs a registeredmechanicVectorId). - Gated
DUTCH_AUCTION→ executor-signedgatedSeriesMintChooseToken.
Ranked auctions never support choose-token.
Custom mechanics
Section titled “Custom mechanics”Register your own mint contract:
- Deploy your mechanic contract on each chain you want it to run on.
- Call
client.mechanic.createto register it, including itsconfigSchema(JSON Schema for saletypeConfig) andencodingAbi(ABI used to encode on-chain calldata). - Add chain deployments via
client.mechanic.addDeployment. - Reference it when creating sales:
type: "CUSTOM"+mechanicId.
See SDK: mechanics for the code surface.
Related
Section titled “Related”- Sale types — pricing strategies and which mechanic backs each
- Support matrix — which mint method each combination uses
- Series — choose-token in context
- SDK: mechanics — register & manage mechanics