Setting up a Fry miner
Flash the board, give it Wi-Fi, register its key. Fifteen minutes, no phone required, no licence or activation key.
Supported boards
Any of these will run the firmware:
- ESP32 (incl. ESP-WROOM-32)
- ESP32-S3
- ESP32-C3
- ESP8266
They differ in how you set them up: the ESP32 family is provisioned over Bluetooth or over USB from a browser, while the ESP8266 raises its own Wi-Fi network instead of Bluetooth.
Flash the firmware
Plug the board into a computer with a USB data cable — a charge-only cable will not enumerate a serial port — and open the flasher in Chrome or Edge on the desktop:
https://fry-networks.github.io/fry-firmware/flash/
Press Connect & Flash and pick the serial port. The flasher detects which chip you have and writes the matching build; there is no board to choose and nothing to download.
Updating a board that already works? Leave Erase unchecked. The update writes the bootloader, the partition table and the application, and never touches the area holding your miner key and Wi-Fi credentials, so the board keeps its identity.
Boards flashed before 2026-09-18 show IOT- and the same 32 hex characters. Firmware 0.3.2 rewrites the prefix to FEM- on first boot, keeping the hex, so the device keeps its identity.
Give it Wi-Fi
From the browser, with no phone
Straight after flashing, choose Connect to Wi-Fi in the same dialog, enter your 2.4 GHz network and its password, and the board joins it. Then press Visit Device, which opens the dashboard registration page with your miner key already in the address.
Improv Serial via the web flasher — Connect to Wi-Fi, then Visit Device. Once 0.3.2 ships, a Chrome/Edge desktop browser alone is enough; this answers the 2026-09-18 report from a user with no Android phone.
From the Android app
The app finds an ESP32 board over Bluetooth, advertising as FRY-<CHIP>-<last 6 MAC hex> (service
46525900-0001-4000-8000-4652594e4554). An ESP8266 has no Bluetooth: it raises an open Wi-Fi network
FRY-SETUP-XXXXXX (ESP8266 only, open, 192.168.4.1) instead — join it and the setup page opens by itself. The app asks for
your Wi-Fi and your Algorand wallet address in one step.
Find your miner key
The miner key is the board's identity: FEM- followed by 32 uppercase hex characters. It is generated once, on the board itself, and never changes — not on a factory reset, and not on a firmware update. There are four places to read it:
- The web flasher
- Press Visit Device after provisioning — it carries the key.
- A serial console
FRY boot v<version> chip=<chip> mac=<mac> minerkey=<key> at 115200 baud- The Android app
- shown on the provisioning screen and copyable from device detail
- The ESP8266 setup page
- http://192.168.4.1/info while the board serves FRY-SETUP-xxxxxx
Over Bluetooth it is also readable directly from characteristic
46525905-0001-4000-8000-4652594e4554 (read).
Register it on the dashboard
A board that is running and online still earns nothing until a wallet claims its key. Sign in
at https://dashboard.frynetworks.com, connect your wallet, open https://dashboard.frynetworks.com/new_registration and
enter the miner key. Visit Device in the flasher opens that page for you, with
the key in the URL fragment: https://dashboard.frynetworks.com/new_registration#key=<MINER_KEY>.
The prefilled link is not live yet — PENDING dashboard change (fragment, never a query string, so keys stay out of server logs and Referer). Until it lands, paste the key into the key field on that page.
Do not press “Generate Free FEM Key”. ESP32/ESP8266 owners must NOT use the dashboard's 'Generate Free FEM Key' button. It mints a placeholder key that exists only in main.devices; your board has its own key and can never match the generated one.
A board that self-registers appears in main.devices with is_registered:false and no owner. Until a wallet registers the key on the dashboard it earns nothing and is invisible in My Devices. Until then the dashboard shows it as an unregistered Fry Edge Miner.
What earning actually requires
| Reward token | fNODE (ASA 2485202024) |
|---|---|
| Miner code | IOTVPN |
| Base reward | 59.52 per slot |
| Slots per day | 144 (one every ten minutes) |
| Devices per network | 10 |
| Stake multipliers | unregistered = 0×, none = 1× |
| Payout schedule | Friday 00:00 UTC (FRYday), maturing 30 days later |
An ESP32 device earns at multiplier 1. The 1.5x/3x FRY 2.0 tiers exist for desktop FEM only — this is policy, not a defect.
So a board earns when it is registered to a wallet, online, and reporting. Nothing else is required: there is no licence, no activation key and no stake.
Watching it run
A board counts as active while it has been seen within the last 15 minutes. It reports on several schedules, all in seconds:
| Registration heartbeat | 3600 |
|---|---|
| Lease renewal | 900 |
| Proof of connectivity | 600 |
| Telemetry | 600 |
The statuses you will see against a device:
- Not registered — key exists but no wallet claimed it
- Active — seen within the last 15 minutes
- Inactive — no PoC document inside the window
- Not earning — reward_eligible is false, with a reason
When something is wrong
- “Key not found” when registering
- The key is not in any store yet. Either the board has never successfully registered (see 'registration failed' below) or the key was mistyped — keys are uppercase with no spaces.
- “Already registered”
- The key is registered. If it is not in your list, another wallet claimed it, or it self-registered and nobody has claimed it yet.
- Provisioning reports an error
- The board reported an error during provisioning. Error 4, shown as 'Device registration with hardwareapi failed', means the server refused the board's registration — Wi-Fi itself is fine.
- The board registers, then the dashboard never sees it
- Boards still holding a legacy-prefix key are refused at registration today. Re-flash 0.3.2 and the board converts its own key on first boot.
- The board is not discoverable any more
- It does not advertise while it is on a Wi-Fi network. Hold the BOOT button for ten seconds to factory reset it; it keeps its miner key and its identity, and comes back ready to be provisioned again.
Still stuck? Ask on Discord — include the miner key, the board type and what the serial console printed.