A Next.js web application where anyone can launch tokens on Stellar, configure vesting schedules, run airdrops, and browse all existing token launches.
- Easy Token Creation: Launch tokens on Stellar with customizable parameters
- Token Configuration: Set name, symbol, supply, decimals, and features (mintable/burnable)
- Multi-step Wizard: Guided process with token config, vesting, and airdrop setup
- Real-time Deployment: Live transaction progress with contract address results
- Flexible Vesting: Linear, cliff, or hybrid vesting schedules
- Progress Tracking: Visual progress bars showing released and claimable amounts
- One-click Claiming: Claim vested tokens directly from the interface
- Revocable Options: Support for revocable vesting schedules
- Multiple Distribution Types: Equal, weighted, or claimable airdrops
- CSV Upload: Easy recipient management with CSV file upload
- Distribution Control: Manual or automated token distribution
- Campaign Tracking: Monitor distribution progress and status
- Browse All Launches: Discover tokens launched on the platform
- Advanced Filtering: Search by name, symbol, date range
- Detailed Token Pages: Complete token information with tabs for overview, vesting, airdrops, and holders
- Stellar Integration: Direct links to Stellar Expert for on-chain verification
| Network | Horizon URL | Soroban RPC URL |
|---|---|---|
| Testnet | https://horizon-testnet.stellar.org |
https://soroban-testnet.stellar.org |
| Mainnet | https://horizon.stellar.org |
https://soroban-rpc.stellar.org |
All core logic runs on Soroban β Stellar's smart contract platform:
- Token Contract β Deploys SEP-41 compatible tokens with optional mint/burn capabilities
- Vesting Contract β Creates on-chain vesting schedules (linear, cliff, hybrid) with
create_schedule - Airdrop Contract β Manages distribution campaigns (equal, weighted, claimable) with
create_campaign
Contracts are called via @stellar/stellar-sdk using Contract.call() and SorobanRpc.Server.prepareTransaction(). Transactions are signed client-side by Freighter and submitted to the network.
Freighter is the only supported wallet. It handles:
- Account public key retrieval (
getPublicKey) - Network detection (
getNetworkβTESTNET/MAINNET) - XDR transaction signing (
signTransaction)
All Freighter and Stellar SDK calls use dynamic imports to prevent SSR issues in Next.js.
- User accounts:
G...(56-char base32, validated via/^G[A-Z2-7]{55}$/) - Contract addresses:
C...(56-char base32, validated via/^C[A-Z2-7]{55}$/)
All deployed contracts and accounts link to Stellar Expert for independent on-chain verification.
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Wallet Integration: @stellar/freighter-api
- Stellar SDK: @stellar/stellar-sdk
- Charts: Recharts
- Icons: Lucide React
stellar-launchpad-web/
βββ app/
β βββ page.tsx # Landing page
β βββ launch/page.tsx # Token launch form
β βββ explore/page.tsx # Browse launches
β βββ token/[id]/page.tsx # Token detail page
β βββ vesting/
β β βββ page.tsx # My vesting schedules
β β βββ new/page.tsx # Create vesting
β βββ airdrop/
β β βββ page.tsx # My airdrops
β β βββ new/page.tsx # Create airdrop
β βββ layout.tsx
βββ components/
β βββ wallet/ # Wallet connection components
β βββ launch/ # Token launch form components
β βββ token/ # Token display components
β βββ vesting/ # Vesting management components
β βββ airdrop/ # Airdrop management components
β βββ explore/ # Token discovery components
β βββ ui/ # Reusable UI components
βββ hooks/ # React hooks for state management
βββ lib/ # Utility libraries and helpers
βββ types/ # TypeScript type definitions
- Node.js 18+ and npm/yarn
- Freighter wallet extension installed in your browser
- Clone the repository:
git clone https://github.com/your-org/stellar-launchpad-web.git
cd stellar-launchpad-web- Install dependencies:
npm install
# or
yarn install- Start the development server:
npm run dev
# or
yarn dev- Open http://localhost:3000 in your browser
- Connect Freighter Wallet: Click "Connect Freighter" in the header
- Navigate to Launch: Click "Launch a Token" from the homepage or header
- Configure Token: Fill in token details (name, symbol, supply, etc.)
- Optional Vesting: Set up vesting schedules for team allocation
- Optional Airdrop: Configure airdrop campaigns for distribution
- Review & Deploy: Confirm configuration and deploy to Stellar
- View Schedules: Navigate to "Vesting" to see your schedules
- Track Progress: Monitor vesting progress with visual indicators
- Claim Tokens: Click "Claim" buttons to withdraw vested tokens
- Create New: Use "Create Schedule" for standalone vesting contracts
- Campaign Overview: Visit "Airdrops" to manage campaigns
- Create Campaign: Set up new airdrops with CSV recipient uploads
- Monitor Progress: Track distribution status and completion
- Execute Distribution: Manually trigger token distribution when ready
- Browse Launches: Use "Explore" to discover all platform tokens
- Filter Results: Search by name, symbol, or launch date
- View Details: Click on tokens to see comprehensive information
- Check On-chain: Use Stellar Expert links for blockchain verification
This is part of a 3-repository ecosystem:
- Core Contracts: stellar-launchpad-core - Soroban smart contracts
- Documentation: stellar-launchpad-docs - Technical documentation
- Dark Mode: Optimized dark theme for better user experience
- Mobile Responsive: Full mobile and tablet support
- Real-time Updates: Live transaction progress and status updates
- Error Handling: Comprehensive error states and user feedback
- Loading States: Smooth loading animations and skeleton screens
- Wallet Integration: Secure Freighter wallet integration
- Input Validation: Client-side validation for all forms
- Error Boundaries: Graceful error handling and recovery
- HTTPS Only: All external links use secure protocols
- Chrome/Chromium (recommended for Freighter)
- Firefox
- Safari
- Edge
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Create an issue in this repository for bugs or feature requests
- Join our community discussions
- Check the documentation repository for detailed guides