Skip to content

JesterInvestor/quotecast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuoteCast

Daily bid-for-quote NFT minting app with Farcaster integration. Users bid in USDC to feature their quote of the day, and the winning quote is minted as an NFT on Base chain.

Features

  • 🎨 Quote Submission: Submit inspirational quotes to compete for daily feature
  • 💰 USDC Bidding: Place bids in USDC to feature your quote
  • 🏆 Daily Winner Selection: Highest bid wins the daily feature
  • 🖼️ NFT Minting: Winners can mint their quote as an ERC-721 NFT on Base
  • 🌐 NFT Gallery: Browse all previously minted quote NFTs
  • 🔗 Farcaster Integration: Social features powered by Farcaster
  • ⛓️ Base Network: Built on Base for low fees and fast transactions

Tech Stack

  • Frontend: Next.js 15, React 19, TypeScript, TailwindCSS
  • Web3: Wagmi, Viem, RainbowKit
  • Blockchain: Base (Ethereum L2)
  • Smart Contracts: Solidity, ERC-721

Getting Started

Prerequisites

Installation

  1. Clone the repository:
git clone https://github.com/JesterInvestor/quotecast.git
cd quotecast
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env

Edit .env and add your WalletConnect Project ID.

  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

Smart Contract

The QuoteNFT smart contract is located in src/contracts/QuoteNFT.sol. It includes:

  • ERC-721 standard implementation
  • Quote metadata storage (text, author, date, winning bid)
  • Winner minting functionality
  • Optional public minting for featured quotes
  • Token URI generation for metadata

Contract Features

  • mintQuote(): Admin function to mint NFT for daily winner
  • mintPublic(): Public minting for quotes with enabled public minting
  • getQuoteMetadata(): Get stored metadata for a token
  • getDailyWinner(): Get winner address for a specific date

Usage

  1. Connect Wallet: Click "Connect Wallet" to connect your Web3 wallet
  2. Submit Quote: Enter your name and quote text in the submission form
  3. Place Bid: Select a quote and enter your bid amount in USDC
  4. Win & Mint: If you win, click "Mint Your Quote NFT" to mint your NFT
  5. View Gallery: Browse all previously minted quote NFTs in the gallery

Development

Build for Production

npm run build

Lint

npm run lint

Deployment

Smart Contract Deployment

  1. Install Hardhat or Foundry
  2. Deploy the QuoteNFT contract to Base or Base Sepolia
  3. Update NEXT_PUBLIC_QUOTE_NFT_CONTRACT_ADDRESS in .env

Frontend Deployment

Deploy to Vercel:

vercel deploy

Or build and deploy to any hosting service:

npm run build
npm start

Future Enhancements

  • Full Farcaster social integration
  • USDC smart contract integration for automated bidding
  • On-chain metadata storage (IPFS)
  • Automated daily winner selection
  • NFT marketplace integration
  • Social sharing features
  • Leaderboard and statistics

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

ISC

Links

About

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •