A little over a month ago we launched Elephants.fun and Canvas alongside Patchwork to show off some examples of the sort of onchain, composable projects that Patchwork enables right out of the box. We've loved seeing the Elephants that people are creating and sharing, but by far the biggest complaint we've heard is that, with the current randomized trait minting flow, it can be frustrating to mint a bunch of traits and still not have all of the required traits types (Background, Base, Eyes, Mouth) to build an Elephant.
To address this, we deployed a new freebie trait contract with a special mintBatch
function that mints you exactly one Background, Base, Eyes, and Mouth from a new set of trait visuals. This new contract lives right alongside the existing one for our premium traits, and both interact with the Elephants contract and app in the exact same way. Be warned: these freebies are very boring and you'll want to swap them out to cheer up your sad mammal, but this should get you started.
Extending Elephants and configuring this onchain via Patchwork required just 3 calls:
//Add new starter contract to elephants scope
patchworkProtocol.addWhitelist("elephants", address(traitStarter));
//Register new trait contract as assignable to the elephant contract
elephant.registerReferenceAddress(address(traitStarter))
//Turn on minting, with a fee of 0
patchworkProtocol.setMintConfiguration(address(traitStarter), IPatchworkProtocol.MintConfig(0 gwei, true));
This was a trivial amount of work to extend an existing collection with traits from an entirely new contract, and it's easy to see how fun this could get. As scope owners, we could whitelist community trait packs, or special trait contracts for events or partnerships. Or, we could turn the scope owner into a DAO and let the community decide. Trait contracts could themselves have their own quirky rules and logic, but compose nicely with the main Elephants contract. And if it turns out people don't like the Elephants contract, they could fork it and make any of these traits assignable to their own contract.
Give it a shot and show us what you come up with! Mint your free starter pack at mint.fun on or Elephants.fun. And if you're building a project of your own that can benefit from the composability and extendability Patchwork provides, jump in our Discord and noodle with us.