MVP Specifications
This document defines the smallest set of features that validate AI Wallet's core value with developers. Objective: Specify scope, requirements, and acceptance criteria to ship a usable MVP quickly and learn.
Key Insights
- Core MVP modules (4–6 weeks solo):
- Auth & funding: "Login with AI Wallet" + OpenRouter OAuth PKCE; Stripe prepaid credits (optional USDC), non-custodial.
- Spend governance: per-user/app/org caps, velocity locks, anomaly kill switch; tamper-evident usage ledger.
- Consent & audit receipts: who/what/model/provider/region/purpose/retention/cost/time; export/revoke.
- SDKs:
<WalletProvider/>,useWallet(), and server middleware/policy-edge proxy to enforce caps without handing out long-lived keys. - Vercel compatibility: BYOK support so teams keep their infra and still get wallets/budgets/consent.
- Differentiation vs gateways/routers: cross-router identity, portable consent receipts, and multi-rail wallet — not routing.
- Scope boundaries: integrate OpenRouter/Vercel as rails; avoid building a router; keep one backend per request to reduce latency/complexity.
Sources
- archive/AI_Wallet_Topical_Threads/Competition-Narratives-MVPSpecs-04Nov25-ChatGPTPlus.pdf
- archive/AI_Wallet_Topical_Threads/MVPPlan-CloudCredits-Angels-01Nov25-ChatGPTPlus.pdf
Decisions/Implications
- Neutral layer above gateways; product value lives in identity, budgets, receipts, and distribution, not routing.
- Security stance: short-lived capabilities, audience binding/TTL, policy-edge proxy from Day 1.
- US-first; PKCE optional behind a flag if needed for early demos, but emphasize visible end-user value.
Goals and Success Criteria
Primary Goal
Validate AI Wallet's core value proposition by shipping a working MVP that demonstrates:
- Cross-app user authentication and wallet functionality
- Per-user/per-app budget controls with real-time enforcement
- Basic consent receipts and usage tracking
- Developer-friendly SDK integration
Success Criteria (MVP)
- [ ] 3-5 indie AI apps successfully integrated
- [ ] 50+ end users with active wallet accounts
- [ ] $1,000+ in wallet top-up volume
- [ ] Sub-100ms overhead for budget checks
- [ ] 99.5% uptime for core services
- [ ] Zero security incidents (key leakage, unauthorized access)
- [ ] Developer NPS score >7 for SDK experience
Key Metrics to Track
- Apps integrated per week
- Wallet users and retention
- Credits consumed vs top-up volume
- Average session time in wallet portal
- Developer integration time
- Budget enforcement accuracy
In-Scope and Out-of-Scope
In-Scope (MVP)
Core Infrastructure: - User authentication and account management - Wallet balance and Stripe integration - Budget creation and enforcement - Usage tracking and consent receipts - Developer SDK (React components) - Policy-edge proxy for single AI gateway - Basic dashboard for developers and users
User Experience: - Login with AI Wallet (OAuth) - Wallet top-up flow via Stripe - Per-app budget management - Usage history viewing - Simple consent interface
Developer Experience:
- Drop-in React components: <AIWalletLoginButton />, <AIWalletPaywall />, <AIWalletBudgetGate />
- Server SDK for budget checking and usage logging
- Dashboard for app configuration and metrics
- Documentation and integration examples
Out-of-Scope (MVP)
Advanced Features: - Multi-gateway support (focus on one: Vercel AI Gateway OR OpenRouter) - Enterprise SSO/SAML integration - Advanced policy templates and AI Act compliance - Web3 rails (USDC, on-chain identity) - Custom router or model intelligence - Complex marketplace features - Mobile native applications - API rate limiting beyond basic usage controls - Advanced analytics and ML-based budget optimization
Enterprise Features: - Multi-tenant admin controls - Role-based access management - Integration with existing IAM systems - Custom compliance reporting - Enterprise billing and procurement integration
User Stories and Flows
Developer Persona (Indie AI App Builder)
Story 1: Basic Integration "As a developer building an AI chatbot, I want to integrate AI Wallet so that users can pay for usage without me handling billing infrastructure."
Acceptance Criteria:
- [ ] Can add <AIWalletLoginButton /> to login flow
- [ ] Can wrap chat interface with <AIWalletBudgetGate />
- [ ] Users can authenticate and top up via Stripe
- [ ] Usage is tracked and budget limits enforced
Story 2: Usage Monitoring "As a developer, I want to see which models users are calling and how much they're spending."
Acceptance Criteria: - [ ] Dashboard shows total usage per user/app - [ ] Can view detailed call logs with timestamps - [ ] Can set basic per-user limits - [ ] Can export usage data as CSV
Story 3: Budget Controls
"As a developer, I want to prevent users from exceeding their budget limits."
Acceptance Criteria: - [ ] Can set monthly/weekly/daily budget limits - [ ] Requests are blocked when budget exceeded - [ ] Users receive clear error messages - [ ] Can implement grace period for limit breaches
End User Persona
Story 4: Wallet Setup "As an AI enthusiast, I want to create an AI Wallet so I can pay for multiple AI tools with one account."
Acceptance Criteria: - [ ] Can sign up with email or social login - [ ] Can add payment method via Stripe - [ ] Can view wallet balance and recent transactions - [ ] Can connect AI apps that support AI Wallet
Story 5: App Integration "As a user, I want to connect my AI Wallet to my favorite AI tools."
Acceptance Criteria: - [ ] Can authorize apps to use my wallet - [ ] Can see which apps are connected - [ ] Can set per-app spending limits - [ ] Can revoke app permissions
Story 6: Usage Control "As a user, I want to track and control my AI spending across apps."
Acceptance Criteria: - [ ] Can view usage history per app - [ ] Can set daily/monthly limits per app - [ ] Receive notifications when approaching limits - [ ] Can export usage data
Key User Flows
Developer Integration Flow: 1. Sign up as developer → Create app → Get API keys 2. Install AI Wallet SDK → Add login components 3. Configure budget policies → Deploy 4. Monitor usage in dashboard → Iterate
User Onboarding Flow: 1. Sign up/Login → Add payment method → Browse compatible apps 2. Connect app → Set budgets → Use app normally 3. Monitor spending → Adjust limits → Add/remove apps
Functional and Non-Functional Requirements
Functional Requirements
FR-001: Authentication - Support OAuth 2.0 with PKCE - Social login (Google, GitHub) + email/password - Session management with JWT (15-30 min expiry) - Refresh token support
FR-002: Wallet Management - Credit-based system (1 credit = $0.01) - Stripe integration for top-ups ($10, $20, $50) - Transaction history and balance tracking - Basic refund capability
FR-003: Budget Controls - Per-user, per-app budget limits - Support for daily/weekly/monthly limits - Real-time budget checking - Grace period for limit breaches
FR-004: Usage Tracking - Log all API calls with user, app, model, cost - Store consent receipts for each authorization - Export usage data as CSV/JSON - Basic filtering and search
FR-005: SDK Components - React login component - Budget gate component for AI calls - Paywall component for top-ups - Server-side budget checking API
Non-Functional Requirements
NFR-001: Performance - Budget check response time <100ms - User login <2 seconds - Dashboard load time <3 seconds - API throughput: 1000 requests/minute
NFR-002: Security - HTTPS everywhere - Encrypt API keys at rest - JWT with short expiry and refresh tokens - Rate limiting on all endpoints - Input validation and sanitization
NFR-003: Reliability - 99.5% uptime for core services - Handle Stripe webhook failures gracefully - Database backup and recovery procedures - Error logging and monitoring
NFR-004: Scalability - Support 10,000+ registered users - Handle 1M+ API calls per day - Horizontal scaling for gateway proxy - CDN for static assets
Acceptance Criteria and Test Plan
Test Categories
Unit Tests (Required: 80% coverage) - Authentication service methods - Budget calculation logic - Usage tracking functions - Stripe payment webhooks - API validation and sanitization
Integration Tests - End-to-end user signup and login - Complete payment flow (top-up → usage → billing) - Budget enforcement during API calls - Consent receipt creation and export
API Testing - All REST endpoints with valid/invalid inputs - OAuth flow testing - Rate limiting verification - Error handling and edge cases
SDK Testing - React component rendering - State management and prop passing - Error boundary handling - Browser compatibility (Chrome, Firefox, Safari)
Acceptance Test Scenarios
Scenario 1: New User Onboarding
1. User signs up → Account created
2. User adds payment method → Stripe setup complete
3. User adds $20 to wallet → Balance updated
4. User connects app → Authorization recorded
5. User makes AI call → Budget checked, call successful
6. User views usage → Transaction logged correctly
Scenario 2: Budget Limit Enforcement 1. User sets $5 daily limit 2. User makes calls totaling $4.50 → All successful 3. User makes additional $0.75 call → Blocked, error returned 4. User attempts to exceed limit → Blocked with clear message 5. User reduces limit → Enforcement updated immediately
Scenario 3: Developer Integration 1. Developer creates account → App created 2. Developer installs SDK → Components available 3. Developer adds login to app → OAuth flow works 4. Developer configures budget policies → Policies active 5. Developer tests with real user → Full flow validated
Open Questions and Assumptions
Key Assumptions
- Users will prefer single wallet over managing API keys
- Developers will integrate if SDK is simple enough
- Stripe integration is sufficient for MVP (no crypto rails needed)
- Single AI gateway (Vercel or OpenRouter) is adequate
- Basic consent receipts meet initial compliance needs
Open Questions
-
Q1: Which AI gateway to prioritize for MVP? Vercel AI Gateway (strong developer ecosystem) vs OpenRouter (PKCE native) Decision needed: Week 1
-
Q2: What pricing model for developers? Freemium with usage limits vs. flat monthly fee vs. transaction percentage Recommendation: Freemium with 1000 free calls/month
-
Q3: How to handle failed payments? Suspend service vs. grace period vs. allow negative balance Recommendation: 3-day grace period
-
Q4: What level of consent complexity is needed? Simple app permission vs. model-specific consent vs. purpose-based consent Recommendation: Start simple (app-level) with basic model info
-
Q5: How to handle enterprise customers? Separate enterprise tier vs. scale up from individual accounts Recommendation: Individual-first, enterprise as later expansion
Risk Mitigation
- Risk: Low developer adoption Mitigation: Focus on 3-5 well-known indie developers as design partners
- Risk: Stripe integration complexity
Mitigation: Use Stripe Checkout for simplicity, upgrade to custom flows later - Risk: Competitive response from gateways Mitigation: Position as complementary, emphasize cross-router benefits
- Risk: Complex compliance requirements Mitigation: Start minimal, iterate based on actual customer feedback
Source Attribution
YC Demo Scope Constraints
YC-Specific MVP Requirements
For YC application demo (3-day build), prioritize these essential features:
Must-Have for YC Demo:
- Dashboard: /wallet route showing login, balance, activity history
- Chatbot App: /try route with Login with AI Wallet button
- Real-time Balance: Visible credit deduction per message
- Usage Receipts: Activity list showing model, cost, timestamp
- Cross-App Proof: Wallet usage reflects chatbot activity
Nice-to-Have (Cuttable for 3-Day Timeline): - Complex RAG: Replace with hardcoded FAQs if needed - Multiple External Apps: Single demo app sufficient - Real Stripe Billing: Demo credits acceptable for YC - Profile Management: Email + placeholder avatar only
Technical Constraints for YC Timeline:
- Single codebase (Next.js) with multiple routes
- Fake "SDK" component (LoginWithAIWalletButton)
- Minimal data model (users, apps, usage_events)
- Simple Google OAuth for authentication
- OpenRouter + Vercel AI SDK for LLM calls
Success Metrics for YC Demo: - Complete "wallet → app → wallet" flow - Clear balance movement and receipt generation - Professional enough UI to demonstrate concept - Working video of the full flow
YC Demo Architecture Overview
Two-Surface Demo Design:
1. AI Wallet Dashboard (/wallet): User's wallet interface showing balance and activity
2. Demo AI App (/try): External app integrating AI Wallet SDK
Loop Demonstration: - User starts in wallet dashboard ($5, no activity) - Navigate to demo app, login with AI Wallet - Use chatbot, watch credits decrease - Return to wallet, see usage activity from chatbot
Key Story: "One wallet, multiple apps, unified spend and consent"
Primary source: Competition-Narratives-MVPSpecs-04Nov25-ChatGPTPlus.pdf Supporting source: MVPPlan-CloudCredits-Angels-01Nov25-ChatGPTPlus.pdf YC Demo Requirements: yc-071125-chatgpt+.md lines 108-145, 264-299, 362-401 Related: YC Demo Strategy, YC Application Answers