Decentralized GPS mapping powered by the XYO Network — a community-driven, trustless alternative to centralized map platforms.
MapperXYO is an open-source, decentralized mapping platform that leverages the XYO Network for trustless, community-verified location data. Instead of relying on a centralized server to store and validate GPS data, MapperXYO uses XYO's proof-of-location protocol to verify real-world location events on-chain.
Think Google Maps — but decentralized, community-owned, and privacy-respecting.
- 📍 Decentralized Location Verification — GPS data anchored via XYO Sentinels & Archivists
- 🗺️ Interactive Map Interface — Full-featured map with custom layers and pins
- 📱 Cross-Platform — iOS, Android, and Web from a single codebase
- 🔗 XYO Chain Integration — Location heuristics stored on-chain
- 👥 Community Contributions — Users earn XYO tokens for contributing verified location data
- 🔒 Privacy First — No personal data stored; cryptographic proofs only
- 🌍 Offline Support — Cached tile maps for offline use
MapperXYO (Turborepo Monorepo)
│
├── apps/
│ ├── web/ # Next.js 14 — dashboard, explore, embed
│ └── mobile/ # Expo (React Native) — iOS & Android
│
├── packages/
│ ├── xyo-client/ # XYO SDK wrapper & hooks
│ ├── maps/ # Shared map logic (Mapbox/Leaflet)
│ ├── ui/ # Shared component library
│ └── config/ # Shared TS, ESLint, Tailwind configs
│
└── contracts/ # Smart contracts (future)
| XYO Component | Role in MapperXYO |
|---|---|
| Sentinel | Mobile device that witnesses location events |
| Bridge | Relays signed location packets to Archivists |
| Archivist | Stores signed location heuristics |
| Diviner | Answers location queries from the chain |
- Node.js 18+
- pnpm 8+ (recommended)
- Expo CLI
- XYO API Key (free tier available)
- Mapbox Access Token (free tier available)
# Clone the repository
git clone https://github.com/Brycewetzel/MapperXYO.git
cd MapperXYO
# Install dependencies
pnpm install
# Copy environment variables
cp .env.example .env.localCreate a .env.local file in the root:
# XYO Network
XYO_API_KEY=your_xyo_api_key
XYO_ARCHIVIST_URL=https://beta.api.archivist.xyo.network
XYO_NODE_URL=https://xyo.network/node
# Mapbox
MAPBOX_ACCESS_TOKEN=your_mapbox_token
# App Config
NEXT_PUBLIC_APP_URL=http://localhost:3000# Run web app (Next.js)
pnpm --filter web dev
# Run mobile app (Expo)
pnpm --filter mobile start
# Run both simultaneously
pnpm dev| Layer | Technology |
|---|---|
| Language | TypeScript |
| Web Framework | Next.js 14 (App Router) |
| Mobile Framework | Expo SDK + React Native |
| Monorepo | Turborepo + pnpm workspaces |
| Mapping | Mapbox GL JS / React Native Maps |
| XYO Integration | @xyo-network/sdk-xyo-client-js |
| Styling | Tailwind CSS + NativeWind |
| State Management | Zustand + React Query |
| Testing | Vitest + Detox (E2E) |
- v0.1 — Repo scaffold, monorepo setup, CI/CD
- v0.2 — Basic map display (web + mobile)
- v0.3 — XYO Sentinel integration (mobile GPS witness)
- v0.4 — Location pin submission to XYO Archivist
- v0.5 — Diviner queries (read location history from chain)
- v0.6 — Token rewards for verified contributions
- v1.0 — Public beta launch
Contributions are welcome! Please read CONTRIBUTING.md before opening a PR.
# Fork the repo, then:
git checkout -b feature/your-feature-name
git commit -m "feat: add your feature"
git push origin feature/your-feature-name
# Open a Pull RequestMIT © Brycewetzel — See LICENSE for details.