A decentralized tipping dApp built on Push Chain that allows users to send tips to creators with real-time Push notifications.
- Universal Tipping: Send tips to any registered creator using ENS names
- Push Chain Integration: Built on Push Chain testnet for fast, low-cost transactions
- Push Wallet: Seamless wallet connectivity with Push Universal Wallet
- Creator Dashboard: Register and manage your creator profile
- Modern UI: Beautiful, responsive interface with 3D animations
TipUp/
โโโ app/ # Next.js frontend
โ โโโ src/
โ โ โโโ app/ # App router pages
โ โ โโโ components/ # React components
โ โ โโโ config/ # Contract configuration
โโโ hardhat/ # Smart contracts
โ โโโ contracts/ # Solidity contracts
โ โโโ scripts/ # Deployment scripts
โ โโโ test/ # Contract tests
โโโ README.md
- Frontend: Next.js 15, TypeScript, TailwindCSS v3, Framer Motion
- Blockchain: Push Chain Testnet (Chain ID:42101 )
- Wallet: Push Universal Wallet
- Smart Contracts: Solidity 0.8.19, OpenZeppelin
- Build Tool: Hardhat
- Dependencies: Optimized minimal setup (no bloat)
- Node.js 18+ and npm/pnpm
- Git
- Push Wallet or MetaMask with Push Chain testnet configured
git clone <your-repo>
cd TipUp
# Install frontend dependencies
cd app
npm install
# Install contract dependencies
cd ../hardhat
npm installCreate a .env.local file in the app/ directory:
NEXT_PUBLIC_TIPUP_CONTRACT=0xYourDeployedContractAddress
NEXT_PUBLIC_PUSH_RPC_URL=https://rpc.push.org
NEXT_PUBLIC_PUSH_CHAIN_ID=42101cd hardhat
# Compile contracts
npm run compile
# Deploy to Push Chain testnet
npm run deployCopy the deployed contract address to your .env.local file.
cd app
npm run devVisit http://localhost:3000 to see the app.
- Connect Wallet: Use Push Universal Wallet to connect
- Register: Go to Dashboard and register your ENS name
- Share: Share your tip link:
yourapp.com/tip/yourname.eth - Track: Monitor tips and analytics in your dashboard
- Connect Wallet: Connect your Push Wallet
- Find Creator: Visit a creator's tip page
- Send Tip: Enter amount and optional message
- Confirm: Confirm transaction and receive notifications
- RPC URL:
https://rpc.push.org - Chain ID:
42101 - Currency: ETH
- Block Explorer: Push Chain Explorer
After deployment, update the contract address in:
app/.env.local:NEXT_PUBLIC_TIPUP_CONTRACTapp/config/contract.ts:TIPUP_CONTRACT
The TipUp.sol contract includes:
- Creator Registration: Register with ENS name and profile message
- Tip Functionality: Send tips with optional messages
- Statistics: Track total tips, tip count, and creator stats
- Events: Emit events for frontend integration
- Security: ReentrancyGuard and input validation
function registerCreator(string memory _ensName, string memory _profileMessage) external
function tip(string memory _ensName, string memory _message) external payable
function getCreator(string memory _ensName) external view returns (Creator memory)Currently using browser notifications as a placeholder. Future implementation will integrate with Push SDK for real-time notifications:
// Future implementation
await PushSDK.notify({
recipient: creatorAddress,
title: "New Tip Received!",
body: `${sender} sent you ${amount} ETH`,
});cd hardhat
npm testcd app
npm run build
npm run lintcd hardhat
npm run deployDeploy to Vercel, Netlify, or your preferred platform:
cd app
npm run build- Real Push SDK notifications
- Multi-token support (USDC, USDT)
- Tip history and analytics
- Creator verification system
- Mobile app
- Social features
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details
- Documentation: Check this README
- Issues: Open a GitHub issue
- Push Chain: Push Protocol Docs
- Push Protocol for the amazing infrastructure
- OpenZeppelin for security contracts
- Next.js team for the excellent framework
Built with โค๏ธ on Push Chain