Mint-A-Frame
Wowow, mint banger casts & reward authors on-chain using our transaction frame!
Screenshots



Problem Statement
Introduction: We created the Mint-A-Cast frame to empower creators and users. We wanted to solve 2 problems:How do we have on-chain attribution for users who save casts?How do we reward creators for quality, popular casts?Our Mint-A-Cast frame solves these two problems. First, the frame allows users to mint banger casts and allows them to have an on-chain record of casts they like. Second, creators (cast authors) can set a fee when their casts are minted; this gives creators another avenue of revenue. Creators also have a way to track users who are rewarding them for their content; this gives another directory to content creators to possibly reward their followers. With the Mint-A-Cast frame, users directly reward creators for quality content thus increases the reward for casting quality content.MVP Summary: Through the use of this frame, the user can mint a cast as an NFT. Currently, the user will need to visit the site – https://frameworks-ri-ja-seven.vercel.app – to paste the URL to upload the metadata. Afterward, they use the link provided to cast that will spin up a frame. This single-frame will allow users to mint casts directly from the Warpcast platform. Currently, the cast creator can set a minting fee by interacting with the contract directly as well as withdraw funds.MVP User Flow:Find a cast they like; copy the cast link (format:https://warpcast.com/[castAuthorName]/[castShortHash])Navigate to the website https://frameworks-ri-ja-seven.vercel.appPast URL into input box, click button to next stepFollow Transaction pop-up in order to use the Pinata SDK to upload the IPFSCopy the link to the frame generated.Either cast this link to spin up the frame or use a debugger like frames.js to see the frame.Click mint & sign the wallet pop upWait for the transaction to completeCurrently, the Mint-A-Cast website and frame is usable to mint any cast; so no customization is required beyond providing the cast link. You can use the link to the blockchain explorer to see recent mints: https://sepolia.etherscan.io/address/0x4dd9ed609abbb6ae489045a678ff3080d3f4106cRoadmap:General Improvements:Launch production to Base Mainnet; currently, dev environment is on SepoliaSwitch from Wield API to Pinata Farcaster API when they accept the short hash and username for cast look up.Create multipage frameFirst PageAllow users to input cast link into first frameSubmit button & transaction to upload metadata IPFSSecond PageShow picture preview of castMint button & transaction to mint NFTThird PageShow success imageLink out button to blockchain explorerDeploy an 1155 contract per creator from first mintWhen the same cast is minted, it will have the same token id; hence, using ERC 1155.Each NFT will have attributes to show:DateAuthor NameChannel cast was made inMake sure contract follows standards to be minting with WarpsSmall ~$0.10 fee for each mint to go to us (Ricy & Jamie) to help cover cost to maintain the FrameUser ImprovementsThe frame's input with be able to accept the cast URL or a full cast hash inputAfter the first mint, when the user shares their minted cast other users can mint the same cast with Warps through Warpcast.User will have a Mint-A-Cast web client to browse FarcasterMinting cast is an embedded functionUsers can use any currency (cross chain execute; full chain abstraction)User can create their own custom Mint-A-Cast frame for specific casts of theirsCreator ImprovementsCreation of a web client front end for creator tools including but not limited toSet mint pricing (e.g. 0.001 ETH)Set mint limit amount (e.g. 10 total)Set mint time limit (e.g. 1 day)Unmintable Cast (disabled minting on some casts)Airdrop minted casts to previous supportersAllowlist mintingSubscription to cast minting (through Hypersub)Specify currency received (e.g. Base ETH, DEGEN)Allocate profits directly to an address withouth needing to withdraw
Solution
The contract is a erc1155 smart contract, https://sepolia.etherscan.io/tx/0x4b50fa82925f3417af973bddf057a074345efe818a6491e898f057f898141f23. The contract is deployed on Sepolia and developed with Hardhat. It also provides interface for authors to adjust price and withdraw profits.The frontend is a NextJS project. Using Framejs to achieve single page minting frame. This Mint-A-Cast frame is to present users with the cast image of the nft they can mint with a the mint button. The mint button would allow users to send transactions to Sepolia chain and the transaction would also send some ETH as the fees to buy/mint the nft. After users have submitted the transaction, the frame returns a transaction submitted frame with transaction hash. To convert a cast into NFT, the project is using APIs by Wield to retrieve related data and using the Pinata SDK to upload metadata to IPFS.Frames.JS Code Examples: https://github.com/jamiechicago312/frameworks-ri-ja/blob/main/frontend/src/app/%5BtokenId%5D/page.tsx#L19https://github.com/jamiechicago312/frameworks-ri-ja/blob/main/frontend/src/app/%5BtokenId%5D/page.tsx#L19https://github.com/jamiechicago312/frameworks-ri-ja/blob/main/frontend/src/app/%5BtokenId%5D/txdata/route.ts#L16Pinata SDK/API Examples: https://github.com/jamiechicago312/frameworks-ri-ja/blob/main/frontend/src/services/NFT/index.tsx#L9https://github.com/jamiechicago312/frameworks-ri-ja/blob/main/frontend/src/services/pinata/index.ts#L22
Hackathon
Frameworks
2024
Prizes
- 🏆
Open Frames Bounty
XMTP
Contributors
- Ricy137
54 contributions
- jamiechicago312
48 contributions