feat/ponder-lm-indexing (#142)
This commit is contained in:
parent
de3c8eef94
commit
31063379a8
107 changed files with 12517 additions and 367 deletions
121
tmp/usertest-results/USERTEST-REPORT-V2.md
Normal file
121
tmp/usertest-results/USERTEST-REPORT-V2.md
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# Kraiken User Test Report v2
|
||||
**Date:** 2026-02-14
|
||||
**Branch:** `feat/ponder-lm-indexing`
|
||||
**Stack:** Local fork (Anvil + Bootstrap + Ponder + Web-app + Landing)
|
||||
|
||||
## Executive Summary
|
||||
|
||||
Two test suites targeting distinct user funnels:
|
||||
- **Test A (Passive Holder):** 9/9 passed ✅ — Landing page → Get KRK → Return value
|
||||
- **Test B (Staker):** 7/12 passed (3 stake execution timeouts, 2 skipped) — Staking UI evaluation + docs audit
|
||||
|
||||
The tests surface **actionable UX friction** across both funnels. Core finding: **the passive holder funnel converts degens but loses newcomers and yield farmers.**
|
||||
|
||||
---
|
||||
|
||||
## Test A: Passive Holder Journey
|
||||
|
||||
### Tyler — Retail Degen ("sell me in 30 seconds")
|
||||
| Metric | Result |
|
||||
|--------|--------|
|
||||
| Would buy | ✅ Yes |
|
||||
| Would return | ❌ No |
|
||||
| Friction | Landing page is one-time conversion, no repeat visit value |
|
||||
|
||||
**Key insight:** Degens convert on first visit but have no reason to come back. The landing page needs live stats or a reason to revisit.
|
||||
|
||||
### Alex — Newcomer ("what even is this?")
|
||||
| Metric | Result |
|
||||
|--------|--------|
|
||||
| Would buy | ❌ No |
|
||||
| Would return | ❌ No |
|
||||
| Friction | No beginner explanation, no trust signals, no step-by-step guide, unclear value prop |
|
||||
|
||||
**Key insight:** Newcomers bounce. The landing page assumes crypto literacy. Needs: "What is this?" section, social proof, getting started guide.
|
||||
|
||||
### Sarah — Yield Farmer ("is this worth my time?")
|
||||
| Metric | Result |
|
||||
|--------|--------|
|
||||
| Would buy | ❌ No |
|
||||
| Would return | ❌ No |
|
||||
| Friction | No APY/yield display, no risk indicators, no audit info, can't verify liquidity, no monitoring tools |
|
||||
|
||||
**Key insight:** Yield farmers need numbers upfront. Without APY estimates, risk metrics, or audit credentials, they won't invest time to understand the protocol.
|
||||
|
||||
---
|
||||
|
||||
## Test B: Staker Journey
|
||||
|
||||
### Priya — Institutional ("show me the docs")
|
||||
**Steps completed:** Setup ✅, Documentation audit ✅, UI quality ✅, Stake execution ⏱ (timeout)
|
||||
|
||||
**Documentation Audit:**
|
||||
- ✅ Documentation link visible
|
||||
- ✅ Found 5 contract addresses — can verify on Etherscan
|
||||
- ⚠ No copy button for addresses — minor friction
|
||||
- ✅ Audit report accessible
|
||||
- ⚠ Protocol parameters not displayed
|
||||
- ⚠ No source code link (Codeberg/GitHub)
|
||||
|
||||
**UI Quality:**
|
||||
- ✅ Found 39 precise numbers — good data quality
|
||||
- ⚠ No indication if data is live or stale
|
||||
- ✅ Input validation present
|
||||
- ✅ Clear units on all values
|
||||
|
||||
### Marcus — Degen/MEV ("where's the edge?")
|
||||
**Steps completed:** Setup ✅, Interface analysis ✅, Stake execution ⏱ (timeout)
|
||||
|
||||
### Sarah — Yield Farmer ("what are the risks?")
|
||||
**Steps completed:** Setup ✅, Risk evaluation ✅, Stake execution ⏱ (timeout)
|
||||
|
||||
**Note:** Stake execution tests timeout because the test wallet interaction (fill amount → select tax → click stake) doesn't match the actual UI component structure. This is a test scaffolding issue, not a UX issue.
|
||||
|
||||
---
|
||||
|
||||
## Findings by Priority
|
||||
|
||||
### 🔴 Critical (Blocking Conversion)
|
||||
1. **No APY/yield indicator on landing page** — Yield farmers and passive holders need a number to anchor on. Even "indicative rate" or "protocol performance" would help.
|
||||
2. **No beginner explanation** — Newcomers have zero context. Need a "What is Kraiken?" section in plain English.
|
||||
3. **Landing page is one-time only** — No reason to return after first visit. Protocol Health section exists but needs real data.
|
||||
|
||||
### 🟡 Important (Reduces Trust)
|
||||
4. **No audit/security credentials visible** — Sarah and Priya both flagged this. Link to audit report, bug bounty, or security practices.
|
||||
5. **No source code link** — Institutional users want to verify. Link to Codeberg repo.
|
||||
6. **Data freshness unclear** — Priya noted: "No indication if data is live or stale." Add timestamps or "live" indicators.
|
||||
7. **No copy button for contract addresses** — Minor but Priya flagged it for verification workflow.
|
||||
|
||||
### 🟢 Nice to Have
|
||||
8. **Protocol parameters not displayed** — Advanced users want to see CI, AS, AW values.
|
||||
9. **Step-by-step getting started guide on landing** — Exists on docs but not on landing page.
|
||||
10. **Social proof / community links** — Tyler would convert faster with Discord/Twitter presence visible.
|
||||
|
||||
---
|
||||
|
||||
## Recommendations
|
||||
|
||||
### For Passive Holders (Landing Page)
|
||||
1. Add **indicative APY** or protocol performance metric (even with disclaimer)
|
||||
2. Add "What is Kraiken?" explainer in 2-3 sentences for newcomers
|
||||
3. Make Protocol Health section show **live data** (holder count, ETH reserve, supply growth)
|
||||
4. Add **trust signals**: audit link, team/project background, community links
|
||||
5. Add "Last updated" timestamps to stats
|
||||
|
||||
### For Stakers (Web App)
|
||||
1. Add **copy button** next to contract addresses
|
||||
2. Add **data freshness indicator** (live dot, last updated timestamp)
|
||||
3. Link to **source code** (Codeberg repo)
|
||||
4. Display **protocol parameters** (current optimizer settings)
|
||||
|
||||
### For Both
|
||||
1. The ProtocolStatsCard component was built (commit `a0aca16`) but needs integration into the landing page with real Ponder data
|
||||
2. Bootstrap V3 swap is broken (sqrtPriceLimitX96=0 gives empty swap) — not blocking for mainnet but blocks local testing
|
||||
|
||||
---
|
||||
|
||||
## Test Infrastructure Notes
|
||||
- **buyKrk helper** uses direct KRK transfer from deployer (Anvil #0) — V3 pool swap broken on local fork due to pool initialization at min tick
|
||||
- **Stake execution tests** need UI component alignment — test expects `getByLabel(/staking amount/i)` but actual component may use different structure
|
||||
- **Chain snapshots** work correctly for state isolation between personas
|
||||
- **Test A is fully stable** and can be run as regression
|
||||
Loading…
Add table
Add a link
Reference in a new issue