😄

SmartJokes - Dad Jokes NFT Collection

Completed 2025 Decentralized Application (dApp) with Smart Contracts, Frontend, and IPFS Storage

SmartJokes is a decentralized application (dApp) for creating and collecting "Dad Jokes" as NFTs on the Ethereum blockchain. The project implements a community-driven voting system where users submit jokes that must receive votes (dadnessScore) before being minted as NFTs. Once minted, NFTs can be traded on a marketplace, voted on to increase their value, and upgraded based on their popularity. The system uses IPFS for decentralized storage of joke metadata and implements various game mechanics including cooldown periods, lock periods, and joke type upgrades (BASIC, GROAN, CRINGE, LEGENDARY).

Blockchain Development Web3 Full-Stack Development Smart Contracts NFT Decentralized Applications Ethereum

Overview

SmartJokes is a decentralized application (dApp) for creating and collecting "Dad Jokes" as NFTs on the Ethereum blockchain. The project implements a community-driven voting system where users submit jokes that must receive votes (dadnessScore) before being minted as NFTs. Once minted, NFTs can be traded on a marketplace, voted on to increase their value, and upgraded based on their popularity. The system uses IPFS for decentralized storage of joke metadata and implements various game mechanics including cooldown periods, lock periods, and joke type upgrades (BASIC, GROAN, CRINGE, LEGENDARY).

Key Features

Community-driven voting system for joke approval

ERC721 NFT standard implementation with OpenZeppelin

Joke type upgrades (BASIC → GROAN → CRINGE → LEGENDARY)

Marketplace for buying and selling jokes with ETH

IPFS integration for decentralized metadata storage

Gamification mechanics (dadnessScore, value appreciation)

Security features (cooldown periods, lock periods, access controls)

React frontend with Web3 integration (Wagmi, Viem)

MetaMask wallet connection and transaction signing

Real-time blockchain state updates

pages.portfolio.projects.smartjokes_dad_jokes_nft.features.10

Technical Highlights

Implemented complete ERC721 NFT collection with voting system

Created community-driven content curation through voting mechanism

Built marketplace for NFT trading with ETH payments

Integrated IPFS for decentralized metadata storage

Developed gamification system with joke type upgrades

Implemented security features and economic balance mechanisms

Challenges and Solutions

Voting System Implementation

Ensured fair voting with one vote per user, author exclusion, vote threshold, and time-based voting period

State Management

Implemented separate mappings and arrays for tracking pending vs. approved jokes

Economic Balance

Prevented spam with cooldown periods, maximum jokes per user, and vote threshold requirements

Frontend-Blockchain Integration

Used Wagmi hooks, React Query, and event listening for real-time blockchain updates

IPFS Integration

Set up IPFS node with Docker for decentralized metadata storage and hash-based retrieval

Transaction Management

Implemented error handling, loading states, and transaction status tracking for user feedback

Technologies

Smart Contracts

Solidity OpenZeppelin Hardhat TypeChain

Frontend

React TypeScript Vite Wagmi Viem Ethers.js

UI

Chakra UI React Router React Query

Storage

IPFS Docker

Blockchain

Ethereum MetaMask ERC721

Environment

Node.js TypeScript npm

Project Information

Status
Completed
Year
2025
Architecture
Decentralized Application (dApp) with Smart Contracts, Frontend, and IPFS Storage
Category
Blockchain Development