Developing Mobile Applications for Crypto Launchpads (IDO/IEO)
A crypto launchpad is a platform for token initial offerings. IDO (Initial DEX Offering) occurs via DEX smart contract. IEO (Initial Exchange Offering) occurs via centralized exchange. A launchpad mobile app includes: active and upcoming project showcase, participation mechanism (deposit USDT/BNB → receive tokens), tier access system, vesting claim after TGE.
Architecture: Tiers and Allocations
Most launchpads use tiered systems: more native platform tokens (or longer staking) = higher tier = larger IDO allocation.
Tier is calculated by balance + staking at snapshot block. Logic is on smart contract or off-chain with Merkle-proof.
// iOS — checking user tier
struct UserTier {
let level: Int // 0–4
let name: String // Bronze / Silver / Gold / Platinum / Diamond
let stakedAmount: BigDecimal
let allocationMultiplier: Decimal
}
func getUserTier(address: EthereumAddress) async throws -> UserTier {
let staked = try await stakingContract.balanceOf(account: address)
return TierCalculator.calculateTier(stakedAmount: staked)
}
UI: profile screen showing current tier, next tier, and amount to add. Progress bar "until next tier".
IDO Project Screen
Specific IDO page — main launchpad screen. Structure:
- Header: logo, name, network, token contract
- Timer: time until start / end / claim
- Progress: collected X of Y USDT (progress bar)
- Token price, total supply, vesting schedule
- "Participate" button (only during whitelist/sale period)
- Tabs: About / Tokenomics / Team / Whitepaper
Sale progress — real-time via TokensPurchased(buyer, amount) event or polling every 30 seconds.
IDO Participation: Whitelist + Purchase
Most IDOs require pre-registration (whitelist). Application is EIP-712 message signature or simple registerForSale(projectId) transaction. After approval — user receives allocation.
Purchase:
// Android — participating in IDO via smart contract
suspend fun participateInIdo(
saleContract: String,
paymentToken: String, // USDT address
paymentAmount: BigInteger
): String {
// Step 1: approve USDT
val approveTx = approveERC20(token = paymentToken, spender = saleContract, amount = paymentAmount)
waitForReceipt(approveTx)
// Step 2: participate
val buyFunction = Function("buy", listOf(Uint256(paymentAmount)), emptyList())
return sendTransaction(to = saleContract, data = FunctionEncoder.encode(buyFunction))
}
Show users: how many tokens for amount entered, vesting schedule ("10% now, rest evenly over 12 months").
Vesting and Claims
After TGE (Token Generation Event) tokens unlock per schedule. Smart contract stores vestingSchedule for each participant.
// iOS — calculating available claim
func availableToClaim(beneficiary: EthereumAddress) async throws -> BigUInt {
let schedule = try await vestingContract.getVestingSchedule(address: beneficiary)
let elapsed = BigUInt(Date().timeIntervalSince1970) - schedule.startTime
let vested = min(schedule.totalAmount, schedule.totalAmount * elapsed / schedule.duration)
return vested - schedule.released
}
Claim screen: vesting progress (visual timeline), unlocked today, total locked, "Claim" button with amount.
Staking Native Token
Staking is tier system foundation. User deposits tokens into staking contract (stake(amount)) and gains tier. Lock period can be fixed or flexible with reduced multiplier.
// Android — staking with lock period
data class StakingOption(
val lockDays: Int,
val tierMultiplier: Double, // 1.0x / 1.5x / 2.0x
val earlyUnstakePenalty: Int // % penalty for early withdrawal
)
Show on unstake: penalty exists and days remaining until unlock.
Push Notifications and Reminders
- Whitelist opening for selected projects
- Application approved/rejected
- IDO starts in 1 hour
- Participation transaction confirmed
- Token unlock per vesting (claim available)
Users subscribe to specific project notifications — not broadcast to all.
Development Timeline
| Component | Timeline |
|---|---|
| Project showcase + detailed IDO page | 1 week |
| Tier system + staking | 1 week |
| Whitelist registration | 3 days |
| IDO participation (approve + buy) | 1 week |
| Vesting and claim | 1 week |
| Push notifications | 3 days |
Launchpad MVP: 6–8 weeks. With KYC integration, multi-network support (EVM + Solana), referral program — 3 months.







