# SG2 Spec: Stargaze Minter Factory Contracts Common types needed for minter factories. New minter factories should extend these types to add their custom properties. Every minter requires a factory that stores the minter's governance paramaters. A minter factory creates minters based on these paramaters. Factories also restrict minters to a set of allowed sg721 code ids. For example, the vending minter factory needs a `shuffle_fee`. This is added as a custom extension to `MinterParams` and `UpdateParamsMsg`. ```rs pub struct VendingUpdateParamsExtension { pub shuffle_fee: Option, } pub type VendingUpdateParamsMsg = UpdateMinterParamsMsg; pub struct ParamsExtension { pub shuffle_fee: Coin, } pub type VendingMinterParams = MinterParams; ```