Skip to content

CCTools 159 Milestone 3: Public API, Asset Tracker & Mobile

OPENIssue
by hythloda15-04-2026
125K CC requested
References:CIP-0056

Milestone 3: Public API, Asset Tracker & Mobile

| Detail | Description | |--------|-------------| | Estimated Delivery | Month 4-5 from grant approval | | Focus | Public API with validator access, asset tracking, mobile experience, developer documentation | | Funding | 125,000 CC |

Deliverables:

  • Public API v1: REST endpoints documented with OpenAPI specification. Versioned (v1) for stability.
  • API Tiers:

- Free tier: rate-limited (100 requests/min), API key required - Validator tier: free for 12 months, no rate limits, available to all Canton validators - Paid tier: higher volume, priority support, additional endpoints

API Endpoints (detailed specification):

Ecosystem Directory

  • GET /api/v1/ecosystem/projects — List all projects with pagination, search, category/status filters

- Response: { projects: [{ slug, name, category, tagline, score, likes, views, status, tags, logo_url }], total, page }

  • GET /api/v1/ecosystem/projects/:slug — Project detail with full metadata

- Response: { slug, name, description, category, score, likes, views, team, faq, social_links, badges, campaigns, metrics }

  • GET /api/v1/ecosystem/trending — Top 20 projects by score + engagement
  • GET /api/v1/ecosystem/categories — List of all categories with project counts

Project Scores & Rankings

  • GET /api/v1/ecosystem/rankings — All projects ranked by algorithmic score

- Parameters: sort_by (score, likes, views), category, limit, offset

  • GET /api/v1/ecosystem/projects/:slug/analytics — Project engagement data

- Response: { views_7d, views_30d, likes_total, clicks_total, trend }

Public Profiles

  • GET /api/v1/users/:username — Public user profile with level, XP, reputation, streak, badge count

- Response: { username, level, xp, reputation, streak, badges_count, rank, joined_at, contributions_count }

  • GET /api/v1/users/:username/badges — All badges earned by user with rarity and category

- Response: { badges: [{ slug, name, description, rarity, category, icon, earned_at }] }

  • GET /api/v1/users/:username/contributions — User submissions, edits, and curation activity

- Response: { submissions: [...], edits: [...], total_upvotes, total_contributions }

  • GET /api/v1/users/:username/activity — Recent activity feed (views, upvotes, earn interests)

- Parameters: limit, offset

Earn Opportunities

  • GET /api/v1/earn — Active earn opportunities with filters

- Parameters: type, difficulty, status, limit, offset

  • GET /api/v1/earn/:slug — Opportunity detail with engagement metrics

Leaderboard

  • GET /api/v1/leaderboard — Top users by XP

- Parameters: period (weekly, monthly, all-time), limit

Additional Deliverables:

  • Asset Tracker: Supply, circulation, holder distribution for CC, CBTC, and future CIP-56 tokens. Visual dashboard showing token ecosystem health.
  • Mobile PWA: Progressive Web App optimized for mobile with push notifications (daily check-in reminders, price alerts, new earn opportunities). Full feature parity with desktop, optimized touch interactions.
  • API Documentation Portal: Interactive documentation with endpoint explorer, code examples (JavaScript, Python, cURL), authentication guide, and rate limit documentation.
  • Developer SDK: Lightweight JavaScript/TypeScript SDK for consuming the CCTools API. Published to npm for easy integration.

Acceptance Criteria:

  • Public API documented and accessible with all specified endpoints
  • Validator free tier active with at least 5 validators using the API
  • Asset tracker showing data for CC and CBTC
  • PWA installable on mobile with working push notifications
  • API documentation portal live with interactive endpoint explorer
  • At least one third-party integration consuming the API

---

_Originally posted by @hythloda in https://github.com/canton-foundation/canton-dev-fund/issues/159#issuecomment-4254848136_