Introduction
There’s been several requests for Soft DAO NFTs in the forums. Soft DAO contributor Chris Walker has been building the infrastructure for Softies, an AI-generated NFT collection built to the Abstract Token Standard. The DAO is seeking someone to build a front-end for this infrastructure. See below for specs.
Last week, Citizen Writ, 0xMusicologist, and Chris Walker hosted an AMA about the new infrastructure. For additional context, all are encouraged to listen to the recording.
Objective
Demonstrate the use of the abstract token contract standard for interactive, generative NFTs.
Scope
Propose a frontend interface that allows Soft DAO members to:
- Configure the traits of their future NFT: Rarity and Personality (exact parameters TBD)
- Send funds to a PaymentTracker Contract to buy the NFT as configured
- Submit the selection to the backend service to generate abstract token messages
- Select one image from several AI-generated images returned
- Reify the selected image on-chain to create the Softie NFT
The following components are being developed separately:
- PaymentTracker contract: Allows eligible users to pay for an NFT with USDC, USDT, and other ERC20 tokens.
- Backend service: generates valid Abstract Token Messages when payments are made to the PaymentTracker contract
- Softie ERC721 contract: Reifies valid Abstract Token Messages to place NFTs on-chain.
Architecture
The frontend should be a web app that supports web3 wallets and arbitrary EVM networks (e.g. ZK Sync Era, Base, Polygon, etc).
A subgraph will be provided that includes:
- Payments made by an account to the PaymentTracker
- ERC721 tokens minted by an account using the Softie ERC721 contract
Eligibility for the PaymentTracker will be determined by a merkle root: users submitting payment will provide the merkle proof along with the payment
The backend service will be prompted to generate an API as follows:
- Clients POST a JSON body containing a valid payment transaction hash, rarity, and personality parameters (exact format TBD)
- Service returns an array of valid abstract token messages