This guide provides the complete technical specification for implementing FISH CERT NFTs based on the working fishrewards.app simulator.
The "50%-200% reward rates" from your table are actually implemented as weighting factors (0.50 to 2.00) in the reward distribution algorithm, NOT direct percentage returns.
- Total Pool: 5.49 billion FISH tokens
- Distribution: 10 years with yearly halving
- Year 1: 2.745B tokens (50% of total)
- Year 2: 1.3725B tokens (25% of total)
- And so on...
- Default trigger: Year 5
- Multiplies CERT quantities by 2x-8x based on tier
- Dramatically increases reward shares
fishrewards-nft/
├── tokenomics-documentation.md # Complete algorithm breakdown
├── smart-contract-structure.md # Contract architecture
├── metadata/ # NFT metadata files
│ ├── shoreline-drift-nft.json # Tier 1 (cod-fish)
│ ├── tide-catch-nft.json # Tier 2 (tuna-fish)
│ ├── reef-bounty-nft.json # Tier 3 (king-fish)
│ ├── seafarers-crest-nft.json # Tier 4 (opah-fish)
│ ├── ocean-harvest-nft.json # Tier 5 (sail-fish)
│ └── legacy-deepwater-nft.json # Tier 6 (lion-fish)
└── IMPLEMENTATION_GUIDE.md # This file
Package 1 = Shoreline Drift (cod-fish)
Package 2 = Tide Catch (tuna-fish)
Package 3 = Reef Bounty (king-fish)
Package 4 = Seafarer's Crest (opah-fish)
Package 5 = Ocean Harvest (sail-fish)
Package 6 = Legacy Deepwater (lion-fish)
currentPrice = startingPrice + (floor(mintedCount / 100) * incrementAmount)userDailyRewards = (userWeightedStake / globalWeightedStake) * dailyPool
where:
- userWeightedStake = Σ(userQty * weightingFactor * phase2Multiplier)
- globalWeightedStake = Σ(globalQty * weightingFactor * phase2Multiplier)
- dailyPool = yearlyPool / 365mint(packageId, quantity)- With dynamic pricinggetCurrentPrice(packageId)- Real-time price calculationcalculateRewards(user, year)- Complex weighted distributionapplyPhase2()- Multiplier activation (admin only)claimRewards()- User reward claiming
getMintedPerPackage(packageId)getUserCertsByPackage(user, packageId)calculateBreakEven(user)getYearlyProjections(user)
All images are in /assets/ folder:
- Shoreline Drift:
COD FISH CERT V1.svg - Tide Catch:
TUNA FISH V1.svg - Reef Bounty:
KING FISH V1.svg - Seafarer's Crest:
OPAH FISH.png - Ocean Harvest:
SAIL-FISH.png - Legacy Deepwater:
LION-FISH.png
The simulator pulls live data from: 0x43bf526abad45cfae684e706cdbec1cf52a91646
- Uses
mintCountPerPackage(uint256)function - Package IDs 1-6 correspond to the tiers
- Review the metadata files - They contain all tier-specific data in a smart contract-ready format
- Study the tokenomics documentation - It explains the exact algorithms used
- Implement the smart contract structure - Following the architecture provided
- Upload images to IPFS - Update metadata files with actual IPFS hashes
- Match the simulator logic - Ensure contract calculations match the JavaScript implementation
- The system is NOT a simple "50% APY" return model
- It's a complex weighted stake distribution system
- Price increases are stepped, not linear
- Phase 2 multipliers are game-changing events
- Break-even calculations depend on token price assumptions
- Will the NFTs be transferable?
- Should unclaimed rewards accumulate indefinitely?
- How will the Phase 2 trigger be controlled?
- Will there be a governance mechanism?
- Integration with the fish commodity backend?
All code references are from the actual fishrewards.app implementation. No assumptions or invented features have been added.