Overview
The AI Service provides intelligent, context-aware DeFi strategy generation using Google’s Gemini 1.5 Flash model. It analyzes user portfolios, risk profiles, and available protocols to deliver personalized recommendations. Source:src/services/aiService.js
getAIStrategy
Generate a personalized DeFi strategy based on user portfolio and preferences.Function Signature
Parameters
User’s Stacks wallet address (used for context in AI prompt)
User’s STX token balance (e.g., “100.5000”)
User’s sBTC token balance (e.g., “0.00500000”)
Total portfolio value in USD (e.g., “285.50”)
User’s risk tolerance:
"Conservative", "Balanced", or "Aggressive"Array of available DeFi protocols. Each protocol should have:
name(string): Protocol nametype(string): Protocol type (Lending, DEX, Yield, Stacking)apy(string): Annual percentage yieldrisk(string): Risk level (Low, Medium, High)asset(string): Accepted assets (STX, sBTC, etc.)tvl(string): Total value locked
Number of strategies previously generated for this user. Used to personalize recommendations for new vs. experienced users.
User’s transaction count. Helps identify DeFi experience level.
Return Value
Formatted markdown strategy text with personalized recommendations. Includes:
- Welcome message (for new users) or strategy overview
- Specific protocol recommendations
- Allocation percentages
- Projected returns
- Risk assessment
- Step-by-step execution instructions
User Experience Personalization
The AI adapts its response based on user experience:- New User
- Experienced User
- Intermediate User
Criteria:
strategyCount === 0 && txCount < 3Strategy Format:- Warm welcome to Bitcoin DeFi
- Single, simple starting protocol
- Plain English explanations
- Basic concepts and analogies
- Conservative recommendations
- Detailed step-by-step guide
Usage Example
API Configuration
Google Gemini API key. Set this in your
.env file:- Direct API access in production (Vercel)
- Localhost proxy in development (optional)
AI Model Configuration
Controls randomness in AI responses (0.0 = deterministic, 1.0 = creative)
Maximum length of generated strategy text
Error Handling
The service throws errors with descriptive messages:Protocol Data Format
Theprotocols parameter expects this structure:
Prompt Engineering
The AI uses a sophisticated prompt that includes:Performance Optimization
Fast Model
Uses Gemini 1.5 Flash for sub-second response times
Direct API
Bypasses proxies in production for minimal latency
Efficient Prompts
Optimized token usage with concise protocol summaries
Error Recovery
Graceful fallbacks with descriptive error messages
Best Practices
- Always provide up-to-date protocol data to ensure accurate recommendations
- Include transaction history for better user experience personalization
- Handle loading states to inform users the AI is working (can take 2-5 seconds)
- Cache strategies if user re-requests without changing parameters
- Sanitize strategy output before rendering (remove potentially unsafe markdown)
Related Resources
- useAIAdvisor Hook - React hook wrapper for AI service
- Protocol Data - Protocol configuration reference
- Contract Service - Save strategies on-chain