A monorepo for the Tally token launch platform on Uniswap V4, including smart contracts, a TypeScript SDK, and a web application.
├── apps/
│ └── web/ # Next.js web application
├── packages/
│ ├── contracts/ # Solidity smart contracts (Foundry)
│ └── sdk/ # TypeScript SDK (ABIs, addresses, types)
Foundry-based smart contracts for the launch platform:
- LaunchFactory – Factory for creating launches
- LaunchOrchestrator – Main orchestration contract (auction lifecycle)
- LaunchToken / TokenFactory – ERC-20 token creation
- PostAuctionHandler – Post-auction distribution logic
- LaunchLiquidityVault – Liquidity management
- LiquidityLockup / LiquidityLockupFactory – LP position lockup
- CCAAdapter – Community CCA adapter
Solidity 0.8.26, EVM target: cancun.
Typed TypeScript SDK consumed by the web app and other clients:
@launcher/sdk/abi– Auto-generated ABIs from Foundry artifacts@launcher/sdk/addresses– Per-chain deployed contract addresses@launcher/sdk/types– Shared types and enums (e.g.LaunchState)@launcher/sdk/helpers– Address utilities and chain metadata
Next.js 15 (App Router) frontend for creating and managing launches.
Key dependencies: React 19, wagmi v2, viem, Reown AppKit, Tailwind CSS, shadcn/ui, Upstash Redis, Tenderly.
Features:
- Create and configure token launches
- Browse and bid on auctions
- Draft management with Redis persistence
- Transaction simulation via Tenderly
- Multi-chain viewing (view launches on any supported chain without switching wallet)
| Layer | Technology |
|---|---|
| Smart Contracts | Solidity 0.8.26, Foundry |
| SDK | TypeScript, viem |
| Frontend | Next.js 15, React 19, wagmi v2 |
| Styling | Tailwind CSS, shadcn/ui |
| Wallet | Reown AppKit (WalletConnect) |
| Linting | Biome |
| Package Manager | pnpm (workspaces) |
| Data | Upstash Redis, Tenderly |
- Ethereum Mainnet
- Sepolia
- Base Sepolia
- Node.js 18+
- pnpm
- Foundry (for contracts development)
pnpm installCopy environment variables:
cp .env.example .env.localRequired variables (see .env.example):
| Variable | Description |
|---|---|
NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID |
Reown Cloud project ID |
KV_REST_API_URL / KV_REST_API_TOKEN |
Upstash Redis credentials |
TENDERLY_ACCESS_KEY / TENDERLY_ACCOUNT_SLUG / TENDERLY_PROJECT_SLUG |
Tenderly simulation |
PERMIT_SIGNER_PRIVATE_KEY |
Server-side permit signer |
# Start the web app (port 3002)
pnpm dev:web
# Build the web app
pnpm build
# Lint
pnpm lint
# Type-check
pnpm typecheckcd packages/contracts
# Build contracts
forge build
# Run tests
forge test
# Export ABIs to SDK (from repo root)
pnpm export-abisMIT