Problem Statement
Team tokens, investor allocations, and ecosystem grants have complex vesting schedules with cliffs, linear releases, and milestone unlocks. A vesting viewer must be built showing all vesting schedules for a connected wallet, with visual timeline, upcoming unlock events, historical claims, and CSV export for tax purposes.
Technical Bounds
- Vesting schedule: start date, cliff duration, total duration, total amount, released amount, vesting type (linear, milestone, hybrid).
- Timeline: horizontal bar showing elapsed vs remaining, with markers for cliff and milestones.
- Upcoming unlocks: table of next 5 unlock events with date, amount, and estimated USD value.
- Claim: "Claim" button for available tokens; shows gas estimate before confirm.
- History: table of past claims with amount, date, tx hash, USD value at claim.
- Export: CSV for tax reporting with all claim events and USD values.
Steps
- Build
VestingOverview component: list of schedules with progress bars and status badges.
- Build
VestingTimeline horizontal bar component showing elapsed/remaining/cliff/milestones.
- Build
UpcomingUnlocks table with countdown timers and "Claim Available" buttons.
- Build
ClaimHistory table with pagination and CSV export.
- Implement
useVesting hook: fetch from /api/v1/vesting/{address}, SWR caching.
- Add USD price integration: fetch current token price, compute estimated values for unlocks.
Problem Statement
Team tokens, investor allocations, and ecosystem grants have complex vesting schedules with cliffs, linear releases, and milestone unlocks. A vesting viewer must be built showing all vesting schedules for a connected wallet, with visual timeline, upcoming unlock events, historical claims, and CSV export for tax purposes.
Technical Bounds
Steps
VestingOverviewcomponent: list of schedules with progress bars and status badges.VestingTimelinehorizontal bar component showing elapsed/remaining/cliff/milestones.UpcomingUnlockstable with countdown timers and "Claim Available" buttons.ClaimHistorytable with pagination and CSV export.useVestinghook: fetch from/api/v1/vesting/{address}, SWR caching.