A nostalgic recreation of iOS 4 with full Web3 integration on Monad Testnet. Experience the classic iPhone interface while interacting with real blockchain smart contracts!
- Boot animation with Apple logo
- Lock screen with wallet connection integration
- Responsive iPhone frame (desktop) / fullscreen (mobile)
- Smooth app transitions and animations
- RainbowKit wallet connection
- Monad Testnet support (Chain ID: 10143)
- Real-time blockchain interactions
- iOS-style transaction feedback
- Faucet ๐ง: Request testnet MON tokens
- Token Disperser ๐ธ: Batch send to multiple addresses
- Blackjack ๐: On-chain casino game with house edge
- Slot Machine ๐ฐ: Provably fair slots
- Dice Game ๐ฒ: Roll and win
- NFT Minter ๐: Mint collectibles
- Leaderboard ๐: On-chain high scores
- Guestbook ๐: Permanent messages
- Escrow ๐ค: Secure transactions
- Prediction Market ๐ฏ: Bet on outcomes
- Savings ๐ฆ: Earn interest
- Calculator, Notes, Clock, Messages, Photos, Safari, Settings
- Node.js 18+
- MetaMask or compatible Web3 wallet
- Monad Testnet MON tokens (use the faucet!)
# Install dependencies
npm install
# Copy environment template
cp env.example .env.local
# Edit .env.local with your values:
# - NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID (get from walletconnect.com)
# - PRIVATE_KEY (for contract deployment)# Start Next.js dev server
npm run dev
# Open http://localhost:3000# Compile all contracts
npm run compile
# This generates ABIs in artifacts/- Get Monad Testnet MON from the faucet (once app is running)
- Add your private key to
.env.local - Fund your deployment wallet with MON
npm run deployThis will:
- Deploy all 11 upgradeable contracts
- Fund gaming contracts with initial bank
- Save deployment info to
deployments/monadTestnet.json
After deployment, contract addresses are saved to:
deployments/monadTestnet.json
The frontend will automatically load these addresses.
| Contract | Description | Features |
|---|---|---|
| MonadFaucet | Testnet token faucet | Drip amount, cooldown period |
| TokenDisperser | Batch token sender | Native & ERC20 support, 0.5% fee |
| MonadBlackjack | Blackjack game | Hit/stand, blockhash randomness, house edge |
| MonadSlots | Slot machine | 3-reel slots, jackpot multiplier |
| MonadDice | Dice game | Over/under, specific number bets |
| MonadNFT | NFT minter | ERC721, batch minting |
| MonadLeaderboard | Score tracking | Top 100, usernames |
| MonadGuestbook | On-chain messages | Like system, 280 char limit |
| MonadEscrow | Secure trades | Buyer/seller protection, disputes |
| MonadPrediction | Prediction market | Binary outcomes, proportional payouts |
| MonadSavings | Interest account | 5% APY, compound interest |
โโโ app/
โ โโโ layout.tsx # Root layout with Web3 providers
โ โโโ page.tsx # Main app entry
โ โโโ providers.tsx # RainbowKit + Wagmi setup
โ โโโ globals.css # Global styles
โโโ components/
โ โโโ BootScreen.tsx # Apple logo animation
โ โโโ LockScreen.tsx # Wallet connection + unlock
โ โโโ HomeScreen.tsx # App grid
โ โโโ IPhoneFrame.tsx # Responsive phone frame
โ โโโ StatusBar.tsx # Top status bar
โ โโโ TransactionModal.tsx # iOS-style tx feedback
โ โโโ apps/
โ โโโ FaucetApp.tsx # Faucet DApp
โ โโโ Calculator.tsx # Classic calculator
โ โโโ Notes.tsx # Note taking
โ โโโ [other apps]
โโโ contracts/
โ โโโ MonadFaucet.sol # All smart contracts
โ โโโ TokenDisperser.sol
โ โโโ MonadBlackjack.sol
โ โโโ [10 more contracts]
โโโ scripts/
โ โโโ deploy.ts # Deployment script
โโโ lib/
โ โโโ wagmi.ts # Monad testnet config
โ โโโ contracts.ts # Contract addresses
โ โโโ abis/ # Contract ABIs
โโโ hardhat.config.ts # Hardhat configuration
โโโ package.json
- Next.js 14 - React framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- RainbowKit - Wallet connection
- Wagmi - Ethereum interactions
- Viem - Ethereum utilities
- Hardhat - Smart contract development
- OpenZeppelin - Upgradeable contracts
- Solidity 0.8.20 - Contract language
- Monad Testnet - Deployment network
- Chain ID: 10143
- RPC URL: wss://monad-testnet.drpc.org
- Explorer: https://monad-testnet.socialscan.io/
- Native Token: MON
- Faucet: Built into the app! ๐ง
- Watch the boot animation
- On lock screen, click "Connect Wallet"
- Select your wallet and approve
- Slide to unlock
- Open Faucet app (๐ง in dock)
- Click "Request Tokens"
- Receive 0.1 MON (1 hour cooldown)
- DApp icons have purple gradient
- All transactions show iOS-style modals
- Check transaction on block explorer
- Open Blackjack/Slots/Dice
- Place bet (minimum 0.001 MON)
- Play and win! ๐ฐ
- Guestbook: Leave permanent messages
- NFT Minter: Create collectibles
- Leaderboard: Submit high scores
โ ๏ธ Testnet Only: These contracts are for testing- ๐ Never share your private keys
- ๐ฐ Testnet tokens have no real value
- ๐งช Contracts use blockhash randomness (not production-grade)
// Frontend automatically handles this
await writeContract({
address: faucetAddress,
abi: FaucetABI,
functionName: 'requestDrip',
});// Start game with 0.01 MON bet
const gameId = await writeContract({
address: blackjackAddress,
abi: BlackjackABI,
functionName: 'startGame',
value: parseEther('0.01'),
});
// Hit
await writeContract({
functionName: 'hit',
args: [gameId],
});
// Stand
await writeContract({
functionName: 'stand',
args: [gameId],
});npm run testnpm run compile# Terminal 1: Start local node
npx hardhat node
# Terminal 2: Deploy contracts
npm run deploy:local# Contracts are upgradeable using UUPS pattern
# Update contract code, then:
npx hardhat run scripts/upgrade.ts --network monadTestnet- Ensure MetaMask is installed
- Add Monad Testnet to MetaMask:
- Network Name: Monad Testnet
- RPC URL: wss://monad-testnet.drpc.org
- Chain ID: 10143
- Currency: MON
- Check you have enough MON for gas
- Use the faucet to get more tokens
- Check cooldown periods on faucet
- Try different screen sizes
- Mobile automatically removes frame
- Desktop shows scaled frame
This is a hackathon/demo project showing Web3 integration with retro UI. Feel free to:
- Add more DApps
- Improve game mechanics
- Add more iOS 4 features
- Enhance animations
MIT License - feel free to use and modify!
- Monad Testnet Explorer: https://monad-testnet.socialscan.io/
- RainbowKit Docs: https://rainbowkit.com
- Wagmi Docs: https://wagmi.sh
- Hardhat Docs: https://hardhat.org
Built with โค๏ธ for the Monad community. Combining nostalgia with cutting-edge blockchain technology!
Made by Ocean | Monad Testnet 2025