Pool Mini demystifies web3 social finance, making group funding and token giveaways simple, engaging, and accessible. Born from the need to simplify budget management and fund dispersal in web3βespecially for multi-recipient scenarios like hackathon bounties or community eventsβPool Mini brings this power directly into the Farcaster ecosystem.
As a Farcaster Mini-App, it leverages Pool's core functionalities to enhance community interaction. Influencers, communities, and projects can easily launch giveaways, crowdfund initiatives, or reward user engagement directly within the Farcaster feed. With an intuitive UX, AI-assisted parameter suggestions (planned), and quick onboarding, Pool Mini aims to make group funding fun and straightforward for both crypto-natives and newcomers.
This project is a Next.js application bootstrapped with create-onchain --mini, enhanced with MiniKit and OnchainKit for seamless Base integration, and styled with Tailwind CSS.
For information about deployed contracts and deployment history, see our Deployment Documentation.
- Latest Base Mainnet Deployment (
Pool.sol):0xA2cD9Ccd89C3c8760A701DaDD11174393443E495 - Latest Base Sepolia Testnet Deployment (
Pool.sol):0xD571c6e319D13637A1DfF6F6e9fdb8d2803af3aE - (Refer to
deployment.mdfor Droplet and other token contract addresses.)
- Bun (v1.0+ recommended)
- Git
- A Web3 wallet (e.g., MetaMask, Coinbase Wallet) with Base network(s) configured.
This project uses @t3-oss/env-nextjs for managing and validating environment variables, ensuring type safety and reliability.
- Copy the
.env.examplefile to.env.local(or other relevant files like.env.development.local,.env.production.local).cp .env.example .env.local
- Fill in the necessary values in
.env.localaccording to the schema defined insrc/env.ts.
Key environment variables include:
# Required for Frame metadata
NEXT_PUBLIC_URL=http://localhost:3000 # Change for production
NEXT_PUBLIC_VERSION=0.1.0
NEXT_PUBLIC_ONCHAINKIT_PROJECT_NAME="Pool Mini App"
NEXT_PUBLIC_ICON_URL=/icon.png # Relative to public folder
NEXT_PUBLIC_IMAGE_URL=/cover.png # Relative to public folder
NEXT_PUBLIC_SPLASH_IMAGE_URL=/splash.png # Relative to public folder
NEXT_PUBLIC_SPLASH_BACKGROUND_COLOR="#FFFFFF"
# Required to allow users to add your frame to their Farcaster account
# Regenerate these by running `bunx create-onchain --manifest` in your project directory
FARCASTER_HEADER=
FARCASTER_PAYLOAD=
FARCASTER_SIGNATURE=
# Required for webhooks and background notifications via Upstash Redis
REDIS_URL=
REDIS_TOKEN=
# Smart Contract Addresses (defaults are provided in src/config/contract-config.ts)
# NEXT_PUBLIC_POOL_CONTRACT_BASE=0xA2cD9Ccd89C3c8760A701DaDD11174393443E495
# NEXT_PUBLIC_POOL_CONTRACT_BASE_SEPOLIA=0xD571c6e319D13637A1DfF6F6e9fdb8d2803af3aE
# NEXT_PUBLIC_TOKEN_CONTRACT_BASE= # e.g., USDC on Base
# NEXT_PUBLIC_TOKEN_CONTRACT_BASE_SEPOLIA= # e.g., MockUSDC on Base Sepolia.well-known/farcaster.jsonendpoint configured for Frame metadata and account association- Frame metadata automatically added to page headers in
layout.tsx
- Redis-backed notification system using Upstash
- Ready-to-use notification endpoints in
api/notifyandapi/webhook - Notification client utilities in
lib/notification-client.ts
- Custom theme defined in
theme.csswith OnchainKit variables - Pixel font integration with Pixelify Sans
- Dark/light mode support through OnchainKit
The app is wrapped with MiniKitProvider in providers.tsx, configured with:
- OnchainKit integration
- Access to Frames context
- Sets up Wagmi Connectors
- Sets up Frame SDK listeners
- Applies Safe Area Insets
- Live Application: app.poolparty.cc
- GitHub Repository: github.com/Pool-Escrow/pool-mini-app
- DeepWiki (Contracts): deepwiki.com/Pool-Escrow/Pool-Contracts
- DeepWiki (Mini App): deepwiki.com/Pool-Escrow/pool-mini-app
- MiniKit Documentation: docs.base.org/builderkits/minikit/overview
- OnchainKit Documentation: docs.base.org/builderkits/onchainkit/getting-started
- Next.js Documentation: nextjs.org/docs
- Foundry Book (Smart Contracts): book.getfoundry.sh
We welcome contributions to Pool Mini! Whether it's feature suggestions, bug reports, or code contributions, please feel free to:
- Open an issue to discuss a new feature or bug.
- Submit a pull request with your improvements.
Please ensure your code adheres to the project's linting and formatting standards:
bun lint
bun check-types # If you have a type checking scriptThis project is licensed under the MIT License. See the LICENSE file for details.