Cloud Challenges
Engage with coding challenges, earn credits, track achievements, and compete on leaderboards in Flow Nexus.
Quick Start
// Browse available challenges
const challenges = await mcp__flow-nexus__challenges_list({
difficulty: "intermediate",
category: "algorithms",
status: "active"
});
// Get challenge details
const challenge = await mcp__flow-nexus__challenge_get({
challenge_id: "challenge_id"
});
// Submit solution
await mcp__flow-nexus__challenge_submit({
challenge_id: "challenge_id",
user_id: "user_id",
solution_code: "function solve(input) { return input.sort(); }",
language: "javascript"
});
// Check leaderboard
const leaderboard = await mcp__flow-nexus__leaderboard_get({
type: "global",
limit: 10
});
When to Use
- Finding coding challenges to improve skills
- Submitting solutions for validation and scoring
- Tracking personal achievements and badges
- Competing on global and challenge-specific leaderboards
- Earning rUv credits through challenge completion
- Following learning paths for skill development
Prerequisites
- Flow Nexus account with active session
- Basic programming knowledge
- Sandbox access for testing solutions
Core Concepts
Difficulty Levels
| Level |
Description |
Credits |
| Beginner |
Basic concepts, simple algorithms |
10-50 |
| Intermediate |
Data structures, moderate complexity |
50-100 |
| Advanced |
Complex algorithms, optimization |
100-250 |
| Expert |
System design, cutting-edge problems |
250-500 |
Challenge Categories
| Category |
Focus |
| Algorithms |
Classic algorithm problems |
| Data Structures |
Implementation and optimization |
| System Design |
Scalable architecture |
| Optimization |
Performance-focused problems |
| Security |
Cryptography, vulnerability analysis |
| ML Basics |
Machine learning fundamentals |
Gamification Features
- Dynamic Scoring: Based on code quality, efficiency, creativity
- Achievement Badges: Progressive unlocks for accomplishments
- Learning Streaks: Rewards for consistent engagement
- Leaderboards: Global, weekly, monthly, per-challenge
MCP Tools Reference
Challenge Discovery
// List challenges
mcp__flow-nexus__challenges_list({
difficulty: "intermediate", // beginner, intermediate, advanced, expert
category: "algorithms", // algorithms, data_structures, system_design, etc.
status: "active", // active, completed, locked
limit: 20 // Max results (1-100)
})
// Returns: { challenges: [{ id, title, difficulty, category, credits }] }
// Get challenge details
mcp__flow-nexus__challenge_get({
challenge_id: "challenge_id"
})
// Returns: { id, title, description, examples, constraints, credits, time_limit }
Solution Submission
mcp__flow-nexus__challenge_submit({
challenge_id: "challenge_id",
user_id: "user_id",
solution_code: "function solve(input) { /* solution */ }",
language: "javascript", // javascript, python, go, rust, etc.
execution_time: 45 // Optional: time taken in ms
})
// Returns: { passed, score, test_results, credits_earned, feedback }
Challenge Completion
mcp__flow-nexus__app_store_complete_challenge({
challenge_id: "challenge_id",
user_id: "user_id",
submission_data: {
solution_code: "...",
time_taken: 120,
attempts: 2
}
})
// Returns: { completed, credits_awarded, achievements_unlocked }
Achievements
mcp__flow-nexus__achievements_list({
user_id: "user_id",
category: "speed_demon" // Optional category filter
})
// Returns: { achievements: [{ id, name, description, earned_at }] }
Leaderboards
mcp__flow-nexus__leaderboard_get({
type: "global", // global, weekly, monthly, challenge
challenge_id: "id", // Required for type="challenge"
limit: 10 // Max entries (1-100)
})
// Returns: { rankings: [{ rank, user, score, challenges_completed }] }
Earning Credits
mcp__flow-nexus__app_store_earn_ruv({
user_id: "user_id",
amount: 100,
reason: "Challenge completion: Binary Search Tree",
source: "challenge"
})
// Returns: { new_balance, credits_earned }
Usage Examples
Example 1: Finding and Solving a Challenge
// Browse available challenges for your skill level
const challenges = await mcp__flow-nexus__challenges_list({
difficulty: "intermediate",
category: "algorithms",
status: "active",
limit: 10
});
console.log("Available Challenges:");
for (const c of challenges.challenges) {
console.log(`- ${c.title} (${c.difficulty}): ${c.credits} credits`);
}
// Get details for a specific challenge
const challenge = await mcp__flow-nexus__challenge_get({
challenge_id: challenges.challenges[0].id
});
console.log(`
Challenge: ${challenge.title}
--------------------------
${challenge.description}
Examples:
${challenge.examples.map(e => `Input: ${e.input} ā Output: ${e.output}`).join('\n')}
Constraints:
${challenge.constraints.join('\n')}
Time Limit: ${challenge.time_limit}ms
Credits: ${challenge.credits}
`);
// Test solution in sandbox first (recommended)
const sandbox = await mcp__flow-nexus__sandbox_create({
template: "node"
});
const testResult = await mcp__flow-nexus__sandbox_execute({
sandbox_id: sandbox.sandbox_id,
code: `
function solve(input) {
// Your solution here
return input.sort((a, b) => a - b);
}
console.log(solve([3, 1, 4, 1, 5, 9]));
`,
language: "javascript"
});
// Submit solution
const submission = await mcp__flow-nexus__challenge_submit({
challenge_id: challenge.id,
user_id: "your_user_id",
solution_code: "function solve(input) { return input.sort((a, b) => a - b); }",
language: "javascript"
});
if (submission.passed) {
console.log(`\nChallenge Passed! Score: ${submission.score}`);
console.log(`Credits Earned: ${submission.credits_earned}`);
} else {
console.log("\nSome tests failed:");
for (const result of submission.test_results) {
if (!result.passed) {
console.log(`- Test ${result.id}: ${result.feedback}`);
}
}
}
Example 2: Tracking Progress and Achievements
// Get your achievements
const achievements = await mcp__flow-nexus__achievements_list({
user_id: "your_user_id"
});
console.log("Your Achievements:");
for (const a of achievements.achievements) {
console.log(`š ${a.name} - ${a.description}`);
console.log(` Earned: ${a.earned_at}`);
}
// Achievement categories
const categories = ["speed_demon", "problem_solver", "streak_master", "explorer"];
for (const category of categories) {
const catAchievements = await mcp__flow-nexus__achievements_list({
user_id: "your_user_id",
category: category
});
console.log(`\n${category.replace('_', ' ').toUpperCase()}:`);
console.log(`- Earned: ${catAchievements.achievements.length} achievements`);
}
Example 3: Competing on Leaderboards
// Global leaderboard
const globalBoard = await mcp__flow-nexus__leaderboard_get({
type: "global",
limit: 10
});
console.log("š Global Leaderboard:");
for (const entry of globalBoard.rankings) {
console.log(`#${entry.rank} ${entry.user} - ${entry.score} pts (${entry.challenges_completed} challenges)`);
}
// Weekly leaderboard
const weeklyBoard = await mcp__flow-nexus__leaderboard_get({
type: "weekly",
limit: 10
});
console.log("\nš
This Week's Top Performers:");
for (const entry of weeklyBoard.rankings) {
console.log(`#${entry.rank} ${entry.user} - ${entry.score} pts`);
}
// Challenge-specific leaderboard
const challengeBoard = await mcp__flow-nexus__leaderboard_get({
type: "challenge",
challenge_id: "specific_challenge_id",
limit: 10
});
console.log("\nšÆ Challenge Leaderboard:");
for (const entry of challengeBoard.rankings) {
console.log(`#${entry.rank} ${entry.user} - ${entry.score} pts (${entry.execution_time}ms)`);
}
Example 4: Learning Path Progression
// Start with beginner challenges
const beginnerChallenges = await mcp__flow-nexus__challenges_list({
difficulty: "beginner",
category: "algorithms"
});
console.log("š Learning Path: Algorithms");
console.log("Step 1: Beginner Challenges");
let completedCount = 0;
for (const challenge of beginnerChallenges.challenges.slice(0, 5)) {
console.log(`- ${challenge.title} (${challenge.credits} credits)`);
}
// Progress to intermediate after completing beginner
if (completedCount >= 5) {
const intermediateChallenges = await mcp__flow-nexus__challenges_list({
difficulty: "intermediate",
category: "algorithms"
});
console.log("\nšÆ Step 2: Intermediate Challenges Unlocked!");
for (const challenge of intermediateChallenges.challenges.slice(0, 5)) {
console.log(`- ${challenge.title} (${challenge.credits} credits)`);
}
}
Execution Checklist
Best Practices
- Start at Your Level: Begin with beginner challenges, progress gradually
- Understand First: Read problem statement completely before coding
- Test Locally: Use sandbox to test before submitting
- Optimize After: Get it working first, then optimize
- Learn from Failures: Use feedback to improve solutions
- Maintain Streaks: Consistent daily practice builds skills
Scoring Criteria
| Criterion |
Weight |
Description |
| Correctness |
50% |
All test cases pass |
| Efficiency |
25% |
Time and space complexity |
| Code Quality |
15% |
Clean, readable code |
| Creativity |
10% |
Novel approaches |
Error Handling
| Error |
Cause |
Solution |
challenge_not_found |
Invalid challenge_id |
Use challenges_list to find valid IDs |
submission_failed |
Runtime error or timeout |
Check code syntax and efficiency |
time_limit_exceeded |
Solution too slow |
Optimize algorithm complexity |
wrong_answer |
Incorrect output |
Review logic and edge cases |
compilation_error |
Invalid syntax |
Fix syntax errors |
Metrics & Success Criteria
- Completion Rate: Target >70% first-attempt success
- Average Score: Target >80/100 on solved challenges
- Streak Days: Maintain 7+ day streaks
- Rank Progress: Improve leaderboard position weekly
Integration Points
With Sandboxes
// Test solution in isolated environment
const sandbox = await mcp__flow-nexus__sandbox_create({
template: "node"
});
await mcp__flow-nexus__sandbox_execute({
sandbox_id: sandbox.sandbox_id,
code: solutionCode
});
With Payments
// Credits earned from challenges
const balance = await mcp__flow-nexus__check_balance();
console.log(`Total credits from challenges: ${balance.challenge_earnings}`);
Related Skills
References
Version History
- 1.0.0 (2026-01-02): Initial release - converted from flow-nexus-challenges agent