Description

**Motivation**: We wanted to combine existing technologies such as flipper (to flip images), Cairo (Starknet) and Gradual Dutch Auctions (GDAs) in a fun and practical project. Users can look to our project to a) implement their own js-enabled frontends on cairo and b) apply our cairo library for GDAs.

stark mfers showcase

How it's made

**Back-End:** This implementation is built upon the research paper by paradigm on [Gradual Dutch Auctions](https://www.paradigm.xyz/2022/04/gda), [Flipper](https://github.com/Anish-Agnihotri/flipper), and existing [Cairo development](https://github.com/sambarnes/cairo-dutch/pull/1). There are two main Cairo contracts, DiscreteGDA.cairo and ERC721_stark_mfer.cairo and six helper Cairo modules. DiscreteGDA contains the logic on calculating the current total price of an NFT purchase for a given number of tokens. It’s structured as a library so that developers who want to incorporate a gradual dutch auction in their minting scheme can easily do so by extending this implementation. The ERC721_stark_mfer is an extension of the [OpenZeppelin ERC721 library](https://github.com/OpenZeppelin/cairo-contracts/tree/main/src/openzeppelin/token/erc721) with a few tweaks in it such as having a bridging mechanism to L1 and constructing the full `tokenURI` for the metadata. **Front-End:** The front-end is a Next.js + React project that uses starknet-react. The front-end enables users to easily mint a reversed mfer with their Argent wallet. The front-end also displays a simulation of the future price for one mfer using Gradual Dutch Auctions.