harb/tmp/usertest-results/LAUNCH-STRATEGY-REPORT.md
2026-02-18 00:19:05 +01:00

318 lines
16 KiB
Markdown

# Kraiken Protocol — User Test Report
**Date:** February 14, 2026
**Environment:** Local Anvil fork, full stack (contracts + Ponder + web-app)
**Method:** 5 AI personas running Playwright E2E tests against the live UI
**Market context:** Bear market (BTC ~50% off ATH), risk-off sentiment
---
## 1. Executive Summary
Five personas representing distinct crypto user archetypes tested the Kraiken protocol's full journey: land → connect wallet → acquire KRK → stake.
**Results:**
| Persona | Role | Staked? | Sentiment |
|---------|------|---------|-----------|
| Marcus "Flash" Chen | Degen / MEV hunter | ✅ 100 KRK @ 5% | Intrigued, wants audit |
| Sarah Park | Yield farmer | ✅ 50 KRK @ 15% | Interested, needs APY comparison |
| Alex Rivera | Crypto newcomer | ✅ 25 KRK @ 15% | Overwhelmed but completed |
| Tyler "Bags" Morrison | Retail degen | ❌ Balance didn't load | Frustrated, left |
| Dr. Priya Malhotra | Institutional | ❌ Timed out on landing | Won't proceed without docs |
**3/5 staked.** Tyler and Priya never reached the stake action — Tyler due to a frontend balance-loading bug, Priya because the app offers nothing for institutional due diligence (no docs, no audit, no team page).
**Verdict: NOT launch-ready**, but the mechanism itself validated strongly. Every persona who engaged with the mechanics found them novel and compelling. The gaps are UX, trust signals, and education — all fixable.
---
## 2. Persona Journeys
### 2.1 Marcus "Flash" Chen — Degen / MEV Hunter ✅
**Journey:** Landing → wallet → cheats (test swap 0.01 ETH) → bigger swap (5 ETH) → stake page → staked 100 KRK at 5% tax → searched for snatch targets → checked statistics. Total: ~60s.
**What he did right:** Small test swap first, then probed liquidity depth. Deliberately chose low tax rate to test if he'd get snatched. This is exactly the adversarial behavior the protocol is designed for.
**What he said:**
> "Intrigued but cautious. Mechanics are novel and create genuine PvP opportunity. Would need to see audit, verify contracts on Basescan, and test snatching profitability in production."
> "Would allocate small bag ($2-5k) to test in production, but not going all-in until proven safe."
**His asks:**
- Contract addresses visible on the page (to verify on explorer)
- Audit badge — "CRITICAL: No visible audit link. Immediate red flag for degens."
- Snatching ROI calculator
- Flash loan protection documentation
- Tax rate tooltip: "Higher tax = harder to snatch, lower yield"
**Screenshots:** 12 (full journey captured in Marcus's round)
---
### 2.2 Sarah Park — Cautious Yield Farmer ✅
**Journey:** Landing (read everything) → wallet (hesitant) → stake page (research stats) → cheats (test swap 0.05 ETH) → larger buy (3 ETH) → staked 50 KRK at 15% tax → checked position → compared to Aave mentally. Total: ~51s.
**Defining moment:** Chose 15% tax specifically to minimize snatch risk. Safety over yield. This is the conservative DeFi user who needs convincing.
**What she said:**
> "Interested but need more information before committing real funds. The Harberger tax mechanism is intriguing but confusing."
> "Compared to Aave (8% risk-free), this needs to offer 10-15% to justify the complexity and snatch risk. Verdict: Promising but not ready for my main capital yet."
**Her asks:**
- APY calculator ("Stake X at Y% tax = Z estimated APY")
- "What is Harberger tax?" explainer in simple terms
- Comparison page: Kraiken vs Aave/Compound
- Mobile notifications for snatch attempts
- Risk disclosures
- "What tax rate should I choose?" guidance
**Key insight:** Sarah represents the largest potential user base (yield farmers). Her 8% Aave comparison is the benchmark Kraiken must beat with a clear value proposition.
---
### 2.3 Alex Rivera — Crypto-Curious Newcomer ✅
**Journey:** Landing (16s reading, overwhelmed) → wallet (nervous about scams) → stake page → cheats (confused by name) → small test buy (0.05 ETH) → staked 25 KRK at 15% tax. Browser crashed during post-stake screenshots.
**Defining moment:** Spent 16 seconds on the landing page feeling "overwhelmed" and looking for help. Found none. Connected wallet anyway ("deep breath"). Picked 15% tax because "it sounds safe... I think?"
**What he said:**
> "This looks professional but I have no idea what I'm looking at..."
> "Words I don't understand: VWAP, tax rate, snatching, claimed slots..."
**His asks (10 copy feedback items — most of any persona):**
- "New to DeFi?" section on landing
- Getting Started guide — "CRITICAL: I'm intimidated and don't know where to begin"
- Trust badges: "Audited", "Secure", "Non-custodial"
- Glossary / hover definitions for ALL DeFi terms
- FAQ: "Can I lose money?"
- Tax rate guidance: "Recommended for beginners: 10-15%"
- Wizard mode for newcomers
- Recovery guidance when things fail
**Key insight:** Alex completed the journey despite being terrified, which means the UI flow works mechanically. But every step was anxiety-inducing. A 5-minute onboarding flow would transform this experience.
---
### 2.4 Tyler "Bags" Morrison — Retail Degen ❌
**Journey:** Landing (3s glance) → wallet (immediate) → cheats → bought 4 ETH of KRK → navigated to stake → saw "Insufficient Balance" → waited → test timed out. Never staked.
**What happened:** Tyler bought KRK successfully but when he navigated to the stake page, his KRK balance never appeared in the UI. The `StakeHolder` component showed "Insufficient Balance" because the wallet composable hadn't refreshed the token balance after the swap + page navigation. He would have left the app.
**What he said:**
> "What's all this 'tax rate' stuff? Too complicated, just want to stake"
> "Make staking easier! Just ONE button, not all these options"
> "Do I make more money with higher or lower tax? Idk???"
**Key insight:** Tyler represents the user who will NEVER read docs. He needs a "one-click stake" option with sensible defaults. The tax rate selector is a complete blocker for this persona — he doesn't understand it and has no way to learn.
---
### 2.5 Dr. Priya Malhotra — Institutional ❌
**Journey:** Landing page only. Read it, searched for docs, found none, stopped.
**What happened:** Priya's test timed out because the balance-loading issue prevented progression. But her feedback from the landing page alone is valuable:
**What she said:**
> "No visible link to technical documentation. For institutional investors, this is essential."
> "No audit report link visible. Institutional capital requires multi-firm audits at minimum."
**Her questions:**
- "What is the theoretical Nash equilibrium for tax rates?"
- "Has this undergone formal verification?"
- "What are the centralization risks? Who holds admin keys? Is there a timelock?"
**Key insight:** Institutional money won't touch Kraiken until there's a whitepaper, audit report, formal verification, and governance transparency. This is post-launch work, but should be planned.
---
## 3. Critical Bugs
### 3.1 Balance Loading After Swap (LAUNCH BLOCKER)
**Impact:** Blocked 2/5 users from staking
**Root cause:** After swapping ETH→KRK on the cheats page, navigating to the stake page shows stale balance (0 KRK). The `useWallet` composable's `loadBalance()` is only triggered on account/chain changes, not navigation.
**Partial fix applied:** Added `loadBalance()` call after swap in CheatsView.vue. But the balance still doesn't refresh reliably when navigating between pages.
**Real fix needed:** Either poll the token balance periodically (every 5s), or trigger `loadBalance()` when StakeHolder mounts, or use wagmi's `useBalance` with `watch: true`.
### 3.2 Ponder/GraphQL Instability
**Impact:** Crashed during testing, 502 errors. Position verification via GraphQL failed.
**Severity:** Medium — staking works without Ponder, but position display doesn't.
### 3.3 Browser Crash on Screenshot (Minor)
**Impact:** Alex's browser crashed during post-stake screenshot. Likely Chromium memory on the VPS, not a real user issue.
---
## 4. UX & Copy Findings (Prioritized)
### P0 — Must fix before any launch
| Finding | Who flagged it | Fix |
|---------|---------------|-----|
| No audit badge | All 5 personas | Add badge + link (even "audit pending") |
| Tax rate has zero guidance | Tyler, Sarah, Alex | Tooltip + "Recommended: X%" default |
| No "What is this?" explanation | Alex, Sarah, Priya | Landing page explainer section |
| Balance doesn't refresh after swap | Tyler (blocker) | Fix wallet composable polling |
### P1 — Should fix before mainnet
| Finding | Who flagged it | Fix |
|---------|---------------|-----|
| No APY calculator | Sarah, Marcus | "Stake X at Y% ≈ Z% APY" widget |
| "Snatching" sounds hostile | Alex, Sarah | Rename or add reassuring copy |
| No contract addresses visible | Marcus | Display + link to explorer |
| No getting started guide | Alex | 3-step onboarding overlay |
| No comparison to alternatives | Sarah | "Why Kraiken vs Aave?" section |
### P2 — Nice to have
| Finding | Who flagged it | Fix |
|---------|---------------|-----|
| No docs/whitepaper link | Priya, Marcus | Link to docs site |
| No mobile notifications | Sarah | Push/email for snatch events |
| No FAQ | Alex | FAQ page or accordion |
| "Cheat Console" name confusing | Alex | Rename to "Test Console" for testnet |
| No team/about page | Sarah, Priya | About section with team bios |
---
## 5. Tokenomics Feedback
### Questions every persona had:
1. **"What tax rate should I choose?"** — Nobody understood the tax rate mechanic without guidance. Marcus gamed it (low tax to test snatching), Sarah maximized safety (high tax), Tyler guessed randomly, Alex panicked.
2. **"Can I get snatched and lose money?"** — The snatch mechanic is either exciting (Marcus: "genuine PvP") or terrifying (Alex: "Can I lose my money?"). The answer needs to be front and center.
3. **"What's the APY?"** — Sarah compared to Aave (8% risk-free). Without a clear yield estimate, yield farmers can't make a decision.
### Persona-specific deep questions:
- **Marcus:** "What prevents flash-loaning to manipulate VWAP?" / "What's the minimum profitable tax spread for snatching?"
- **Sarah:** "How does 7-day inflation compare to staking returns?" / "Is 15% tax high enough to prevent snatching?"
- **Priya:** "What is the Nash equilibrium?" / "Has this undergone formal verification?"
- **Alex:** "What is a Harberger Tax?" / "Higher tax = more money or less money? This is backwards from normal taxes!"
- **Tyler:** "Do I make more money with higher or lower tax? Idk???"
### Key takeaway:
The tax rate mechanic IS the protocol's unique value prop — but it's also its biggest comprehension barrier. A "tax rate explainer" that answers "what should I choose and why" is the single highest-impact content piece you could create.
---
## 6. Competitive Positioning
### Bear market framing
In a bear market, users prioritize:
1. Safety (don't lose what I have)
2. Yield (beat inflation/holding)
3. Trust (audits, track record)
4. Novelty (something worth learning)
### vs Aave/Compound (Sarah's world)
**Sarah's benchmark:** "8% on USDC with zero snatch risk."
**Kraiken's pitch:** "Active yield management where YOU control your risk/reward through tax rate selection. Higher engagement = higher returns." But this only works if you can show estimated APY ranges.
### vs Memecoins (Tyler's world)
**Tyler's benchmark:** "Buy low, pump, dump."
**Kraiken's pitch:** "Earn while you hold. Gamified staking where you compete for positions." Tyler would respond to leaderboards, PvP snatch notifications, and "top earner" status.
### vs Institutional DeFi (Priya's world)
**Priya's benchmark:** "Formal verification, multi-sig governance, audit by Trail of Bits."
**Kraiken's pitch (future):** "Novel mechanism design with game-theoretic foundations, published research, formal analysis." Not ready for this audience yet.
### Recommended launch target: Marcus + Sarah
Degens discover, yield farmers sustain. Marcus tests the mechanics, finds alpha, tweets about it. Sarah follows with conservative positions once she sees the APY data. Tyler and Alex come later when there's onboarding. Priya comes post-audit.
---
## 7. Launch Checklist
### Week 1: Fix blockers
- [ ] Fix balance refresh on page navigation (StakeHolder `onMounted``loadBalance()`)
- [ ] Add audit badge or "audit in progress" notice
- [ ] Add tax rate tooltip explaining the tradeoff
- [ ] Stabilize Ponder (or gracefully degrade when it's down)
### Week 2: Core UX
- [ ] Tax rate explainer page/modal
- [ ] "What is Kraiken?" landing section
- [ ] APY estimate widget (even rough ranges)
- [ ] Display contract addresses with explorer links
- [ ] "What happens if I get snatched?" FAQ entry
### Week 3: Onboarding
- [ ] Getting Started guide (3 steps: connect → buy → stake)
- [ ] Default tax rate suggestion for new users
- [ ] "Why Kraiken?" comparison section
- [ ] Rename "Cheat Console" for testnet UX
### Week 4+: Growth
- [ ] Snatch notifications (push/email)
- [ ] Snatching ROI calculator
- [ ] Leaderboard / gamification
- [ ] Technical docs / whitepaper link
- [ ] Team/about page
---
## 8. Work Items
| Task | Effort | Impact | Persona |
|------|--------|--------|---------|
| Fix balance refresh bug | S | Critical | Tyler |
| Tax rate tooltip | S | High | All |
| Audit badge / notice | S | High | All |
| Landing page explainer | M | High | Alex, Sarah |
| APY calculator widget | M | High | Sarah |
| Ponder stability | M | Medium | All |
| Getting Started guide | M | High | Alex |
| Contract addresses in UI | S | Medium | Marcus |
| "What if snatched?" copy | S | Medium | Alex, Sarah |
| Tax rate explainer page | M | High | All |
| Comparison to Aave | S | Medium | Sarah |
| Snatch notifications | L | Medium | Sarah |
| Snatching ROI calculator | M | Medium | Marcus |
| Docs/whitepaper | L | Medium | Priya |
| Leaderboard | L | Low | Tyler |
**S** = < 1 day, **M** = 1-3 days, **L** = 1 week+
---
## 9. Test Artifacts
### JSON Reports (per persona)
- `marcus-flash-chen.json` Complete journey, staked
- `sarah-park.json` Complete journey, staked
- `alex-rivera.json` Complete journey, staked (browser crash on final screenshots)
- `tyler-bags-morrison.json` Partial journey, blocked by balance bug
- `dr-priya-malhotra.json` Landing page only, timed out
### Screenshots on disk
- `test-results/usertest/tyler/` 5 screenshots (landing wallet cheats bought stake page)
- Marcus, Sarah, Alex screenshots referenced in JSON but from different test runs; some not persisted to disk
### Test Infrastructure
- Playwright E2E suite: `tests/e2e/usertest/*.spec.ts` (5 persona specs + helpers)
- Chain state: evm_snapshot/revert between each persona for isolation
- Balance fix: `web-app/src/views/CheatsView.vue` (added `loadBalance()` after swap)
### Known test issues
- Screenshot paths are relative and depend on Playwright's working directory inconsistent between runs
- Playwright's 5-minute default test timeout is tight for personas that do many buys
- `evm_revert` returns `false` when snapshot ID is stale (need fresh snapshot each time)
---
## 10. Bottom Line
**The mechanism works and people find it interesting.** Marcus wants to game it (good that's the design). Sarah wants to optimize it (good that's the yield). Alex wants to understand it (fixable add education). Tyler wants it simpler (fixable add defaults). Priya wants proof it's safe (necessary add audits).
**One sentence:** Kraiken has a genuinely novel DeFi mechanism that generates real curiosity across all user types, but it can't launch until users can actually complete the staking flow without hitting bugs, and until the tax rate mechanic is explained well enough that a newcomer can make an informed choice.