Platform Pipeline Tester Hub Sentinel Analytics SDK Developers Submit Your App

Connect Wallet

Tester access requires a Solana wallet holding a Saga or Seeker Genesis SBT. Connect to verify eligibility.

sagadao@seeker:~$ run --mode=accepting_submissions --track=qa

Real users. Real devices.
Real feedback.

U$ER

Stop guessing. The SagaDAO community runs your app on real Saga & Seeker devices, end-to-end. SBT-verified testers. Structured walkthroughs. What comes back is pure signal. Ship faster.

Submit Your App
U$ER
U$ER by SagaDAO · on Solana
U$ER community
// METRICS
5
Sequential Steps
150+
Char Min Feedback
SBT
Gated Entry
Super Tester Threshold

Less NOISE. More SIGNAL.

Gated entry. Sequential steps. Low-effort testers get filtered out. What's left is a proven cohort whose feedback you can actually ship on.

Sequential Filtering
Each stage reinforces the last. Throw too much at people at once and attention drops. Casual testers self-select out early. By design.
Proven Tester Cohort
Gated tests make low-effort behavior inefficient. High-intent testers emerge naturally. Follow-through, usable feedback, real in-app actions.

"The result is a smaller group of testers, but higher quality feedback that builders can actually use."

· SAGA DAO CORE

Your testing intel. Compiled.

Every round delivers structured reports from real community input. Not assumptions. Not vibes. Data you can act on.

Aggregated Reports
UX clarity, drop-off points, feature understanding, sentiment. Compiled and exportable as Markdown, CSV, or plain text.
Annotated Bug Reports
Testers annotate screenshots directly in your app. Severity flagged. Category tagged. Every bug has visual context.
UX Friction Analysis
In-flow poll questions surface confusion and hesitation points. See exactly where users get stuck.
Dropoff Metrics
Where testers abandon. Which features confuse. Whether your value prop lands. Quantified and ranked.
Social Proof & Reviews
Testers post on X, leave dApp Store reviews, share real interactions. Organic reach from real device owners.
Feedback Loop
Test. Learn. Adjust. Confirm. Each round feeds the next. Track what changes actually land.
100%
Verified Hardware
150+
Char Min Feedback
5
Proof Steps
50pt
Completion Bonus

Drop it in. Get answers.

Submit your app. Set your criteria. Verified device owners run the pipeline. Each step filters harder. What comes back is actionable intel.

U$ER on device
Tested with U$ER
01
Submit your app
Upload your APK or web URL. Testers get a clear briefing: what to test, what qualifies, what proof is expected.
02
Testers run the pipeline
Verified testers move through sequential steps with reinforcement at each stage. Small wins that keep momentum up and drop-off down.
03
Receive your report
Feedback compiled and shared with your team. UX scores, friction analysis, annotated bugs, sentiment. All exportable.

The SagaDAO test flow

Each stage is completed in order. Every completion includes a small reward or acknowledgment. Not gamification for its own sake, but reinforcement that keeps momentum and reduces dropoff.

"Steps with reinforcement after each stage to keep it digestible, like moving through a three course meal."

· SAGA DAO CORE
U$ER home screen Guided test setup Sign in screen Wallet with overlay U$ER tools overlay UX walkthrough poll Feature testing poll Test completion & AI submit
App Preview
01 UX Walkthrough 10 pts
Testers move through the intended first-time user flow and answer short poll questions that surface confusion, friction, and where users hesitate.
Poll questions Friction mapping
02 Main Test 25 pts
Written feedback in full sentences (150 char minimum). Measures dropoff points, feature clarity, and whether the core value is understood.
150 char min Dropoff analysis
03 Social Proof 30 pts
Proof of real interaction: posts to X, in-app transactions, dApp Store reviews, or annotated screenshots. Only committed testers reach this stage.
Organic reach dApp Store

Everything testers need, in one tab

The Hub is the social layer of U$ER. A pinned community room sits on top, every live test app gets its own room underneath, and a real-time activity feed shows every step completion, badge, bug report, and rating across the platform.

Live activity +3 new
alice.skr finished a round of Canary Wallet
2m ago +50 pts
moonmanquark moon.skr reported a bug in Saga Staking
5m ago
superdao.skr earned the Bug Hunter badge
14m ago
Tap a row to open that tester's profile.
Rooms
U$
U$ER Tester Chat PINNED
Community hub for every tester on the platform
APPS IN TESTING
CW
Canary Wallet
com.canary.wallet · 12 testers
SS
Saga Staking
com.sagadao.staking · 8 testers
SD
SagaDAO Forum
com.sagadao.forum · 5 testers
Live activity feed
Step completions, finished rounds, earned badges, ratings, and bug reports stream in across every active test. Collapsed to three rows by default; tap to expand.
!
Sentinel @bug, @issue, @suggestion
A tester types @bug in any chat and Sentinel files a flag the admins triage from the dashboard. @suggestion routes to the developer. /help for the full list.
Per-app rooms with five channels
Every approved submission gets its own chat room with General, Bugs, Suggestions, Test issues, and Question issues channels. Rooms appear automatically the moment an admin approves a submission.
Wallet identity, .skr handles
Sign in with your Solana wallet — that's the only step. If your wallet resolves to a .skr domain, U$ER picks it up automatically and uses it as your handle until you set a custom username.
Role hierarchy admins / devs / members
Platform admins moderate everything. Developers automatically become moderators of their own approved app rooms — but cannot delete a platform admin's message. Defense-in-depth on the server.
Hide for me, never delete
Long-press any message to hide it from your view. The original row stays in the database so admin tooling, audits, and any open report linked to it still resolve. No one can erase another user's content.
Reply to report, /report shortcut
Reply to a problematic message with /report and Sentinel files a moderation flag carrying the original message id. Admins see it on the Chat Flags page in the dashboard.
Avatars + preset picker
Three built-in avatars (Saga, Sagaboy, U$ER mark) plus a 2-letter initials fallback. Pick one from the profile editor — your old chat messages refresh automatically.
Three home-screen widgets
Profile widget (avatar + points + tests + streak), live Rounds widget (count + latest three apps in testing), and a Quick Action strip (note / bug / open) for tap-to-act during a test session.

Sentinel

Screenshots, feedback, flow events. Analyzed and synthesized into a single consolidated report, with a deterministic fallback when no AI key is configured.

Smart Bug Triage
Auto-categorizes severity. Deduplicates across testers. Groups related issues. You see 5 actionable clusters instead of 50 raw tickets.
Feedback Summarizer
Synthesizes every 150+ char entry into ranked themes you can act on. "12 testers flagged wallet connect failing on step 3." Not walls of text.
Session Insights
Flow events and accessibility data show where testers get stuck, what they skip, and where navigation dies. Heatmap-style intelligence from real sessions.

How Sentinel reads a round

Annotated screenshot uploads get cross-referenced against the raw frame, flagging UI regressions the tester missed. At round close, every feedback entry, issue, flow event, and screenshot gets fed into a single consolidated report synthesizer. Without an AI key configured, the same synthesizer still emits a deterministic report from the raw data so the admin always has something to read.

What ships in the box

Every card below points at a real code path in the repo. No vaporware, no roadmap checkboxes.

Persistent test session

In-shade walkthrough polls

Foreground service surfaces each walkthrough question as a notification action. Testers answer without leaving the target app. Answers sync bidirectionally with the in-app panel.

4
Actions per question
Shade ⇄ panel state
0
Round-trips to unlock
Idle-aware clock

Active time via heartbeat

5 min of no input and the client stops beating. Every beat is clamped server-side so a stale or hostile client can't inflate the counter.

5min
Client idle window
60s
Server beat cap
Submission gate

Required-answer + min-duration enforcement

The server refuses to advance a tester until every required question has an answer. On the final step it also refuses if active_seconds < min_test_duration_seconds.

HTTP 422 { "error": "Minimum active test time not met", "remaining_seconds": 137 }
Question model

Global + per-submission question streams

Globals run in every round by default. Customs attach to one submission. The round detail endpoint unions both based on include_global_questions / include_custom_questions, so admins can turn either stream off per round.

Globals
Seed questions shared across every submission. Versioned at the application layer.
Customs
Developer-authored questions scoped to one round. Toggled independently of globals.
Solana Pay

Custody-free USDC reward payouts

$0
Backend-held funds

Admin drafts a per-tester payout plan, signs each transfer from their connected wallet, and posts the confirmed signature back. The backend records plan + signature. Sent rows are immutable.

Analytics SDK

Round-correlated crash telemetry

Drop-in Android library. Events land next to tester notes in the admin dashboard, so you see crashes and feedback in one place.

Uncaught-exception handler, auto crash capture
Lifecycle-hooked screen view tracking
Choreographer frame-timing for slow/frozen detection
Batched ingest with back-off retries
Auth

Wallet-first sign-in

Testers and admins sign in by signing a SIWS message with their Solana wallet. The developer portal supports the same wallet flow with an email fallback for first-time onboarding. Your wallet is your identity across app and web.

Reports

Deterministic synthesizer fallback

With an AI key, the synthesizer writes a narrative consolidated report. Without one, the same code path emits a deterministic report from raw issues, feedback, flow events, and poll distributions.

AI on + AI off → same shape
Installed apps

Round highlighting + ad-hoc sessions

The tester app cross-references installed packages against active rounds and routes taps into the real flow. Taps on non-requested apps create an ad-hoc session tracked separately and excluded from aggregated reports.

SagaDAO Website
app.sagadao.xyz
● IN ROUND

Earn your spot.

Not every tester is equal. The pipeline filters through effort and proof. Each stage demands more. The testers who make it through are the ones worth building with long-term.

For Builders

Your app goes in. You define the criteria. Verified hardware owners deliver structured reports back.

  • Upload APK or web URL with test briefing
  • Custom completion criteria and proof requirements
  • Aggregated reports in Markdown and CSV
  • UX scores, friction analysis, and annotated bugs
Genesis Token
Gated via Genesis SBTs

Every tester is gated by Saga & Seeker Genesis SBTs. One wallet per profile. Daily snapshots. Fully auditable.

  • Saga & Seeker Genesis Token holders only
  • One wallet per tester profile
  • On-chain verification via Helius DAS
  • Snapshot fallback for reliability
Super Testers

Full round completions. Usable feedback. Real in-app actions. Consistent reliability. That's a super tester.

  • Prioritized for future test rounds
  • Matched to complex test requirements
  • Higher-value testing opportunities
  • Persistent badges and role progression

U$ER Analytics SDK

Drop-in Android telemetry. One init() call. Automatic crash capture, UI load timings, dropped frames, screen views, rate-limited ingest, correlated with live test rounds in the admin dashboard.

Crashes + frames + screens

Unhandled crashes go out as level=fatal event_type=crash. Opt in to captureScreenViews, capturePerformance, and captureSlowFrames for activity load times and Choreographer frame budgets.

📦

Batched ingest

Client-side queue flushes every 15s or every 20 events (configurable). Backend rate-limits per API key with per-minute and per-month quotas.

🔍

Spike alerting

Five or more occurrences of the same crash fingerprint inside a 1-hour window automatically open an alert in the admin dashboard, routed to the owner email on the key.

👥

User + screen attribution

Call UserTrack.setUserId(id) and every subsequent event carries user_id, screen_name, and duration_ms as first-class columns the admin SDK panel can filter and sort on.

🔗

Test-round correlation

SDK events from your app surface alongside tester notes and screenshots in the same admin view, so crashes line up with the feedback that caused them.

Free tier
300 /min
200K events / month
Starter · 49 USDC/mo
1K /min
1M events / month
Growth · 199 USDC/mo
5K /min
10M events / month
Enterprise · 999 USDC/mo
25K /min
100M events / month
Developer Login → Read the integration docs Source on GitHub

Built with

Kotlin Jetpack Compose Material 3 PostgreSQL Solana MWA Genesis SBTs Ktor Coil FileProvider AI Sentinel

Drop your app in

Tell us what you're building. Saga & Seeker owners run your app through a 5-step walkthrough with global + custom questions. You get the raw submissions plus the AI-assisted summary.

  • Real-device test runs gated by Saga / Seeker Genesis verification
  • Global + your own custom walkthrough questions once approved
  • Annotated screenshots and bug reports with severity flags
  • Thumbs up / down ratings from testers after 30+ minutes of use
  • Developer portal to track IN REVIEW → APPROVED → IN TESTING and edit custom questions

Your submission goes to IN REVIEW. Sign in with this same wallet at the developer portal to check approval status and set up custom test questions once approved. All logins are verified on chain — no passwords.

Received. Your submission is now IN REVIEW. Sign in at the developer portal with this same wallet to track status and configure questions once approved.
Something went wrong. Please try again or reach out directly.
READY to SHIP?

Drop your app in. Verified testers will run it, break it, and tell you exactly what to fix. Backed by proof.

Submit Your App
Platform Pipeline AI Submit