🇵🇱 🇬🇧
Back to login
For Content Creators

WATCH DOGS GO WARS

Real wardriving. Real hardware. Real world map. A cyberpunk field game connecting it all.

THE CONCEPT

You play as a hacker with a portable terminal. Your mission: discover, map, and earn points for exploring the digital world around you. Form teams with other players, cover cities together, compete on the leaderboard, earn badges.

On the map — in real-time — simulated cyberattacks inspired by Watch Dogs and actual news from cybersecurity portals appear. Each event at a real location on the map, in the local language.

Key point: The platform collects only publicly broadcast data — the same information every WiFi device broadcasts over the air. No cracking, no eavesdropping.

THE GEAR

The absolute foundation is the ESP32-C5 running projectZero firmware — it scans WiFi and BLE networks, captures handshakes, and collects data about the wireless infrastructure around you. Without it — no wardriving. This is the heart of the entire system, everything else is an add-on.

The main terminal is the ClockworkPi uConsole (EU shop) — a portable retro-cyberpunk computer with a 5" screen, keyboard, and battery. This is where the game runs, where you see what the ESP32 scans, where you manage your missions.

The next key component is the AIO v2 by Hacker Gadgets — an All-In-One module that extends the uConsole with: GPS for geolocation, LoRa for mesh communication (MeshCore), SDR for intercepting ADS-B aircraft signals. One device, three superpowers, plug & play.

Then there are accessories that extend capabilities:

The game is written almost entirely in Python — which means the barrier to entry for developers is low. We're counting on community growth and new plugins for additional accessories. Got an ESP32 with an antenna? A Raspberry Pi with a WiFi card? If you can generate a CSV with data — the platform will take it. And if you can write a Python plugin — the game will run it.

And thanks to an open REST API with documentation and examples in Python, C, Bash, and JavaScript — integrating your own apps, scripts, or firmware with Watch Dogs Go Wars is a matter of a few lines of code. Got your own project collecting data? Hook it up to our API and your data will appear on the global map alongside every other wardriver.

"You don't need expensive gear to start. You need curiosity and an ESP32. The rest comes after you're hooked."— wardriving principle

TEAM TERRITORY WARS

This is not a passive WiFi tracker. This is a war game for control over digital territory. Every Access Point on the map belongs to the team that last scanned it. Want to take enemy turf? Drive to their territory — physically, with your device — and scan the same networks. The system transfers ownership.

But it's not that simple. Teams can harden their AP with repeated scans. The more times your team scans the same point — the harder it is to capture. The enemy needs to attack multiple times to break through, while you can rebuild the defense with a single scan.

On the map, colored team zones grow and shrink in real-time. Captures are logged as events — you see who's attacking whom, how many AP were captured, where on the map the war is raging. Real strategy: who defends, who attacks, when to strike, when to retreat.

Fair play: The platform has a multi-layered anti-cheat system. Cheaters land in the public Hall of Shame on the leaderboard.

INTEGRATIONS

The platform keeps growing. The latest successful integration is Bruce Predatory Firmware — a popular ESP32 firmware used by the wardriving and security research community. Bruce scans WiFi/BLE networks, saves data in WiGLE CSV format, and can now upload directly to WDGoWars with one click — no computer, no cable, straight from the device.

Note: Early build — pending inclusion in official Bruce. But you can already play and test! Download firmware

How to set up WDGoWars upload in Bruce:

We're working on more integrations:

Everything is connected through an open REST API — two upload methods (simple CSV multipart for firmware, advanced JSON with HMAC-SHA256 for apps), badge sync, territory feed, map data. Full documentation with code examples in Python, C, Bash, and JavaScript is available in the Help section after logging in.

DEVELOPER API

REST API for uploading data from any wardriving device. Two methods available:

Method 1: CSV Upload (simple)

Send a raw CSV/LOG file (WiGLE/Bruce format) as multipart. The server parses it. Ideal for firmware (Bruce, Kismet, Marauder).

Accepted format — WigleWifi-1.6 (generated by Bruce, Kismet, WiGLE app):

WigleWifi-1.6,appRelease=...,model=...,device=...,board=...,brand=...
MAC,SSID,AuthMode,FirstSeen,Channel,Frequency,RSSI,CurrentLatitude,CurrentLongitude,AltitudeMeters,AccuracyMeters,RCOIs,MfgrId,Type
AA:BB:CC:DD:EE:FF,MyNetwork,[WPA2_PSK],2026-04-09 12:00:00,6,2437,-45,52.2297,21.0122,120,10,,0,WIFI
POST https://wdgwars.pl/api/upload-csv
Header: X-API-Key: <64-char-key-from-profile>
Body: multipart/form-data, field "file" = .csv or .log file
curl -X POST "https://wdgwars.pl/api/upload-csv" \
  -H "X-API-Key: YOUR_64_CHAR_HEX_KEY" \
  -F "file=@wardriving.csv"
For firmware (Bruce, Kismet, Marauder): CSV method is recommended — just swap the URL and auth header. No need to parse CSV on-device.

Bruce Predatory Firmware

WDGoWars integration is already available — early build, pending inclusion in official Bruce. Upload directly from ESP32 — no computer needed. Download firmware

  1. Generate an API key in your WDGoWars profile
  2. In Bruce: WiFi → Settings — connect to WiFi
  3. In Bruce: GPS → Wardriving — scan WiFi/BLE networks
  4. In Bruce: Files → SD → BruceWardriving — select a CSV file
  5. Select WDGoWars Upload — enter your API key and done!

Method 2: JSON Upload (advanced)

Full control — build JSON payload, sign with HMAC-SHA256. Ideal for games and desktop apps.

POST https://wdgwars.pl/api/upload

Code examples

import json, base64, hmac, hashlib, secrets, urllib.request

API_KEY = "your-64-char-hex-key-here"
URL = "https://wdgwars.pl/api/upload"

payload = {"networks": [{"bssid":"AA:BB:CC:DD:EE:FF","ssid":"MyWiFi",
  "auth":"WPA2","channel":6,"rssi":-45,"lat":52.23,"lon":21.01,
  "type":"WIFI","first_seen":"2026-04-05 12:00:00"}]}

data_b64 = base64.b64encode(json.dumps(payload).encode()).decode()
nonce = secrets.token_hex(8)
sig = hmac.new(API_KEY.encode(), (nonce + data_b64).encode(),
               hashlib.sha256).hexdigest()

body = json.dumps({"data": data_b64, "nonce": nonce, "sig": sig}).encode()
req = urllib.request.Request(URL, data=body, headers={
    "X-API-Key": API_KEY, "Content-Type": "application/json"})
resp = urllib.request.urlopen(req)
print(json.loads(resp.read()))

Method 3: User Info (for integrations)

Lightweight endpoint returning the logged-in user's stats. Used by third-party apps (e.g. Biscuit) to validate API keys and display user dashboards.

GET https://wdgwars.pl/api/me
Header: X-API-Key: <64-char-key>

Response (JSON):

{
  "ok": true,
  "username": "locosp",
  "wifi": 37469,
  "ble": 2109,
  "aircraft": 22,
  "mesh": 93,
  "total": 39619,
  "badges": ["first_blood", "wifi_10k", "gang_leader", ...],
  "gang": "Watch Dogs OG's"
}

Invalid or revoked key → 401 {"ok":false,"error":"Invalid API key"}. Use this to validate the key when a user pastes it into your app.

Notes on duplicates & limits

WHAT'S ON THE MAP

WiFi / BLEWireless networks color-coded
ADS-BAircraft in airspace
MeshCoreLoRa mesh network nodes
BadgesAchievements to earn
TeamsPlayer teams
Live NewsReal cybersec news on map

FOR CONTENT CREATORS

If you create content about cybersecurity, hardware hacking, wardriving, retro computing, or hacking:

BRANDING

Full name: WDGoWars (one word) — sometimes: Watch Dogs Go Wars, WDG, wdgwars. DO NOT use: WDGWars, Watch Dogs: Go Wars, WatchDogWars.

WDGoWars logo
Official logo (PNG, transparent background)
Download logo
Palette (dark)
#f0abfc#00e5ff#a855f7#c4b5fd#0d1117

Usage rules:

Hashtags: #wdgwars #wardriving #watchdogsgo

LINKS

COMMUNITY VIDEOS

Videos created by the community with the #wdgwars hashtag.

FOR YOUTUBERS — HOW TO GET FEATURED 📡

We auto-feature wardriving videos on the main map and here in the Community videos section above, pulled straight from YouTube channels added to our tracker. To make sure your video gets picked up, include one of these hashtags in the title or description:

#wdgwars #WDGoWars #WatchDogsGoWars #WatchDogsGo

Case doesn't matter. Title OR description both work — but the title is better because it's more visible. For shorts especially, drop a hashtag in the description too, since most viewers scroll past without reading.

Where will it show?

  • Main map — as a big center overlay. Once per user (with a close button, so nobody gets spammed).
  • /press page — in the Community videos section as a thumbnail grid.

How it works under the hood

  • Auto-refreshes every ~30 minutes (RSS polling)
  • No approval, no API keys, no oAuth — just the hashtag
  • If a user closes an overlay with your video, they won't see it again (but everyone else still will)
  • Only channels added to the tracker by the admin are scanned (for now)

To add your channel to the tracker — DM the admin (@locosp on Discord / GitHub). After that, just tag your videos and all your wardriving content will automatically reach the players 🙏

Happy wardriving 📡