Edited 2/27/22 by Derked


(Much of this description is taken from the work of guiltygyoza. The original github can be found in the resources section)

NFT emission today is primarily done using a predetermined fix supply (10,000, 8,888, etc.) and the owner of that NFT is simply who wins the bid or mints fastest. The rarity of the NFT is predetermined by the project team or seeded with some sort of on-chain randomness.

Solve2Mint is a framework for NFT emission where each NFT maps to a unique solution to an equation or puzzle. A user submits a solution through a contract call or a contract itself that meets the required specification of the solve2mint contract. When a valid solution is submitted, the user then owns that solution in the form of an NFT that uniquely maps to that solution.

The scarcity of a Solve2Mint system is not always straightforward. However, it is guaranteed to be finite when working in a fixed point number system. Certain puzzles may have many solutions, while others may have very few.

Structurally, solutions can be categorized into different families. A family of solutions can be loosely defined by the concept that once a solution is found for a given family, the rest of the solutions for that family can be easily found by perturbing (slightly modifying) the first solution. Therefore, it is ideal to differentiate the first found solution in a family from the rest of the family’s solution.

Matchbox DAO has a great interest in expanding on the solve2mint concept to build a system specifically tailored for the organization’s goals. The goal would to be to build a Class A solve2mint system that challenges and onboards Cairo developers interested in building on Starknet in a fun and gamified way. The goal is to make a Matchbox DAO solve2mint NFT an aspiring accomplishment for any Cairo developer.

Classifying Solve2Mint Systems

Solve2Mint systems can be roughly categorized into 3 different classes. Class C (Weak), Class B (Moderate), and Class A (Strong).

  1. Class C (Weak)

    A Class C solve2mint system is one or more mathematical solutions that can be solved analytically. To mint an NFT, a user would read over the smart contract to understand the equations, and then solve the equations using off-chain software or custom programming logic. They would then submit their solution to the contract via a simple call.

  2. Class B (Moderate)

    A Class B solve2mint system is an equation or puzzle that does not have a (or at least an obvious) direct analytical (closed form) solution, but can be solved using numerical methods. This makes solving the puzzle harder, but a competent competitor could run numerical simulations that exhaust the entire space.

  3. Class A (Strong)

    A Class A solve2mint system accepts a smart contract as an input which contains logic that solves randomized versions of the challenge defined by the solve2mint system. A participant submits a smart contract that attempts to solve randomized trials by the solve2mint contract. An NFT is minted to the submitter if and only if the submitted smart contract passes all the randomized trials.

Theoretical Implementations of Solve2Mint

Class C Theoretical Examples:

Class B Theoretical Examples: