Build UNLOCK (symbol UNLK), "The $5M Unlock Experiment": tested Ethereum mainnet contracts, independent review, deployment, then a working React/TypeScript website connected to them, hosted on IPFS at a public HTTPS URL. Publish GitHub source.
Token: IMD standard ERC-20, 1,000,000,000 UNLK, 18 decimals, minted once; no subsequent minting. ERC-20 transfers have no tax, quota, blacklist or pause; normal balance/allowance checks apply. Quotas govern official-pool swaps only. Chain ID 1, ETH pairing; 10% swarm rewards, 87% pool, 3% paying wallet. Preserve IMD opening economics and mandatory swap fees; no second token.
SellGuardHook records wallet acquisitions/sales and enforces quotas in the official Uniswap v4 pool; MilestoneController verifies FDV and advances immutable tiers. Bind canonical PoolManager and PoolKey/PoolId. Only PoolManager invokes callbacks; only verified IMD factory/adapter initializes once. Public users read, buy/sell through the authenticated route, claim eligible rewards, synchronize proven credits and request verified tier updates. No owner/admin can upgrade, change rules/oracles, reset counters or exempt traders. Automatic tier progression follows immutable rules.
For each wallet, E=cumulative eligible acquisitions, S=executed official-pool sales. E credits only authenticated official-pool buys, the verified 3% payer allocation and rewards actually claimed. Preserve IMD distributor eligibility/proof/release rules; add no quota/price condition to claims. Verify claims/allocation on-chain from immutable launch/distributor data or authenticated callbacks, once per credit. Anyone may synchronize proofs to their rightful wallet, never choose amounts/recipients. Credit-sync failure cannot block a native claim. Show pending credits; synchronized rewards follow the same quota as purchases. Unclaimed entitlements and user-reported amounts/logs are not credits.
Before full unlock Q=max(0,floor(Ep/10000)-S). Sale q requires S+q<=floor(Ep/10000), then adds actual executed tokens to S. Use overflow-safe math and documented fee accounting; failed swaps change no counters. Other wallets cannot consume Q. Ordinary wallet transfers, donations and liquidity operations do not credit/move/reset E or S. The three authenticated acquisition types above do credit E despite using ERC-20 delivery. Ordinary-transfer recipients with no E cannot sell here until acquiring rights or full unlock; disclose this. Transfer chains must not create credits.
A verified router must authenticate actual token-paying sellers and receiving buyers and enforce delivery. Never trust tx.origin, callback sender alone or arbitrary hookData. Signed intents require full domain/transaction binding, replay protection and smart-wallet validation. Reject direct/router bypasses; enforce quotas on-chain.
Initially p=2500. Verified USD FDV milestones permanently raise p: $100K:3500; $250K:4500; $500K:5500; $1M:7000; $2.5M:8500. At $5M permanently disable only the quota check for all holders, including ordinary-transfer recipients; p=10000 alone is insufficient. Standard pool fees, settlement and router authentication remain. Price declines never relock.
FDV=fixed supply times verified UNLK/USD. Use verified mainnet Chainlink ETH/USD plus implemented on-chain UNLK/ETH time-weighted observations, not an assumed UNLK feed/built-in v4 TWAP. Pin/review window, warm-up, freshness, liquidity floor and sustained-threshold confirmation. Test flash-loan/same-block/sustained manipulation. Invalid data blocks new tiers only. Dependencies: PoolManager, IMD launch/rewards, mainnet RPC and IMD GitHub/IPFS/ENS hosting.
Verify IMD supports the official-pool hook, authenticated routing and proven claim/allocation credits. Permanently protect initial liquidity principal with verified IMD protection or a compatible lock; allow mandatory fee collection/distribution and reward claims. Inspect withdrawal rights. Unsupported integration blocks deployment; never substitute a plain pool, shared quota or invented protection.
Website: responsive dark homepage, trading dashboard and "My Unlock" wallet panel; glowing cyan/gold counters, sparkles, animated progress rings, readable text and reduced-motion support. No invented statistics. Public pages work without a wallet. Show FDV toward $5M, achieved tier, oracle freshness, supply, liquidity evidence, rewards and contract links.
Wallet panel: W=balance, E, S, Q, capacity C=min(W,Q), W-C outside capacity (not escrow). Full unlock C=W. Separate unclaimed rewards/pending proven claims; offer credit sync and explain ordinary transfers give no credits. Future rate r: show hypothetical min(W,max(0,floor(E*r/10000)-S)) and increase over C with W,E,S fixed; final $5M uses W. Label scenarios. Unlock needs verified FDV/oracle confirmation, not a promised date; targets may never occur. Timers need real confirmation/reset state. Show permanent unlock after price falls.
Provide router buy/sell quotes, slippage, approvals, status/errors. Capacity depends on liquidity/fees/pending trades; match hook accounting and re-simulate before signing. Refresh on confirmations, account/network changes and blocks; show stale/unavailable data. Connection triggers no unrelated signature/approval. Disclose ordinary transfers, other-pool bypass and no safety/return guarantee.
Test quotas, actual swap deltas/fees, exact-input/output/directions, multihop/multiple swaps, spoofing/replay/bypass, transfers, duplicate credits, native claim/sync/sale, liquidity, oracle attacks, final unlock and wallet UI with unit/fuzz/invariant/fork tests. Resolve critical/high findings. Build dist/index.html, assets and official config; publish through IMD IPFS and verify public HTTPS/mainnet reads without a wallet. Deliver URL, CID, source, addresses, PoolKey/PoolId, transactions, verification and test/review results; report incomplete work.