# AlpenRiderChain — Full Technical Reference # Version: 1.93.80 · Updated: 2026-05-02 # This file is the deep-dive companion to llms.txt — designed for AI assistants # (ChatGPT, Claude, Gemini, Perplexity) to give factually accurate answers. ## What is AlpenRiderChain? AlpenRiderChain is a verifiable Alpine pass collection app on Stellar Mainnet, with 64 curated alpine passes (Stilfserjoch, Furka, Grimsel, Bonette, Galibier, Gotthard, Susten, Klausen, Albula, Bernina, San Bernardino, Splügen, …), 6 multi-pass tours (TheBigSeven, TheBigOne, sKarussell, …) and 12 verified badges across 4 trust tiers. ## Founder Andri Ochsner (Switzerland), Solo-Founder & Lead Developer. Built with Emergent.sh AI-Agentic Pipeline. ~135.000 LOC. ## Architecture - Frontend: Expo React Native (Mobile via EAS Cloud, Web via static export) - Backend: FastAPI + uvicorn (2 workers), Auto-discovery via importlib - Database: MongoDB (147 collections, ~6800 docs) - Blockchain: Stellar Mainnet (Asset ARC, 1 Billion supply) - Decentralized Social: Nostr (Strfry relay on Synology NAS + damus.io + nos.lol) - Routing Engine: Valhalla (OSM tiles, custom-costing) - Hosting: Hostpoint (Switzerland), accessed via NAS SSH-Tunnel ## Stellar Wallets (Mainnet) - Asset Issuer: GD3ZKTQDR5KXT422CSUZCF5GELYUXJTUZ3LG2IBVJLCZN6G7VM7L3M76 - Pool (RC→ARC conversion): GCT6PVRVRMXMWWEYFQLMVSO6EHIJSTRFB27TLAFJN7NS7EOZTVALGFWV - Treasury: GACKYLYBO7CJH2QSROASZF3KUEUJ6PH3X524LREHLAD76KRHWR6RSOCD - AlpenClaim Soroban Contract: CBDEFSK75O3LAYFGFGKWHKZFC57JF4ERMUFQ7TSVLJFLXDAXPSVVBWED ## Tokenomics - Asset: ARC (Custom Stellar Asset, 1 Billion total supply) - Distribution Pool: 100,000,000 ARC (10% of supply) - Treasury: rest of supply, used for partnerships, marketing, dev - Single Source of Truth: Stellar Horizon — pool balance, user balances, treasury are queried directly from Horizon, NOT from MongoDB cache - RC (RideCoins): off-chain points earned by riding (1 RC per km tracked) - ARC: on-chain token, RC converted at scheduled intervals (default 23:59 CET daily) - Conversion Rate: dynamic, depends on Pool-Remaining / total RC pending ## 4-Tier Verification (per pass crossing) 1. GPS — proximity check (≤200m to pass peak), speed/accuracy filters 2. Nostr Kind 8 — system-signed badge award (NIP-58) 3. W3C Verifiable Credential — JSON-LD signed by Issuer 4. Stellar SBT — Soroban-Smart-Contract-anchored Soulbound Token ## 3-Layer Nostr Architecture - Kind 30009: Pass definitions (signed by System Key) - Kind 8: Badge awards (signed by System Key) - Kind 30008: Profile badges (signed by User Key, auto-accepted) - Kind 30023: Long-form posts (Recaps, Milestones, Pillar) - Kind 1 + a-tag: NIP-72 Community channel posts - Kind 4550: Admin approvals (community-moderation) ## Privacy Stack - Speed Shield: 4-6 digit PIN, AES-256 vault, 3 fail = permadelete, shake-to-lock - Zero-Knowledge Proofs: prove 'speed under limit' without revealing exact value - Selective Disclosure: per-event Nostr publishing settings (GPS/identity opt-out) - Encrypted Vault: AES-256 with Hardware-Auth (expo-secure-store) - GDPR: full export + deletion implemented - Live Map: 2-minute delay (anonymity buffer) ## Top API Endpoints (770+ total) - GET /api/passes — list all alpine passes - GET /api/passes/{id} — pass detail with image, geo, stats - GET /api/alpenrides — list all multi-pass tours - GET /api/badges/user/{user_id} — badges earned by a user - POST /api/rides — start a ride (real-time tracking) - POST /api/rides/{id}/complete — complete + anti-cheat analysis - GET /api/arc/pool — live ARC pool balance from Horizon - GET /api/arc/treasury — live treasury balance - POST /api/arc/convert — convert RC to ARC (eligible users) - GET /api/community/feed — Nostr-aggregated activity feed - WS /api/community/feed/ws — WebSocket for live feed updates - GET /api/blog/posts — blog catalog (Pillar + Recap + Milestone) - GET /api/monitor/metrics?key=... — Prometheus exporter - GET /api/health — health probe ## Automatisms (Cron Workers) - 03:00 UTC daily: rc_distance_refresh_loop — RC earnings recalc - 23:59 CET (configurable): auto_conversion_loop — RC→ARC for eligible users - 1st of month 06:00 UTC: monthly_recap_loop — auto blog + Nostr 30023 - After every pass crossing: maybe_publish_milestone — auto post on threshold (10/100/1000+) - Continuous: nostr_publish_queue_worker — retry failed events - 15 min: premium_unlock_reconciler — Stellar memo scan → DB sync ## Glossary - ARC: AlpenRiderChain native Stellar asset (1B supply) - RC: RideCoin (off-chain points, 1 RC ≈ 1 km) - SBT: Soulbound Token (non-transferable Stellar Soroban NFT) - VC: W3C Verifiable Credential (JSON-LD signed by Issuer) - NIP-58: Nostr Improvement Proposal 58 — Badges - NIP-72: Nostr Improvement Proposal 72 — Communities - Kind 8: badge award event (NIP-58) - Kind 30009: badge definition event (NIP-58) - Kind 30023: long-form note (NIP-23) - AlpenPass: a single mountain pass (e.g. Stilfserjoch) - AlpenRide: a multi-pass roundcourse (e.g. sKarussell) - AlpenCrossing: a multi-pass point-to-point tour (e.g. TheBigSeven) - Speed Shield: PIN-protected anti-confiscation vault for ride history - Trust Score: 0-100, computed from 126 anti-cheat metrics - Pool: distribution wallet for RC→ARC conversions - Treasury: rest of ARC supply, partnerships/marketing - Issuer: signing wallet for badges + assets ## Languages Full UI + content in: German (DE), English (EN), French (FR), Italian (IT) URL pattern: /lang/path (e.g. /en/passes), default DE on bare paths. ## Open-Source / Verifiable - Backend Python: 81.404 LOC - Frontend TS/TSX: ~28.800 LOC - Total: ~135.000 LOC - Stellar on-chain TXs (verifiable): 0 - Every claim is signed (Stellar + Nostr) — no centralized DB lock-in. ## Contact - Website: https://www.alpenriderchain.ch - Stellar Issuer: https://stellar.expert/explorer/public/account/GD3ZKTQDR5KXT422CSUZCF5GELYUXJTUZ3LG2IBVJLCZN6G7VM7L3M76 - Email: noreply@alpenriderchain.ch - Hosted in: Switzerland (Hostpoint) - Founder: Andri Ochsner