Frequently Asked Questions

General

1What is Firefly?
Firefly is an open-source hardware device designed for Ethereum. All firmware for Firefly is open-source. Firefly can be used as a hardware wallet, a security key, and a gaming device.
2Who is Firefly for?
Firefly is built for Ethereum developers, security researchers, and experimenters who want full control of their crypto hardware.

Firefly can also be utilised by companies with protocols and dapps who are looking to improve and/or customise the crypto experience for their users or team.
3Is Firefly open source?
Yes — hardware designs, firmware, and tooling are all open source and fully customizable. You can find everything on Github at github.com/firefly
4Where can I get a Firefly?
Firefly is not currently ready for retail distribution. Our Firefly DevKit is distributed in real life at Ethereum conferences and hackathons. We are working on additional channels to distribute Firefly Devkits, sign up here for more info.
5Does Firefly store my keys?
The current firmware generates private keys on the device, upcoming firmware will simplify importing your own keys. The Firefly team does not have access to your private keys at any point.

Firmware

1How do I flash Firefly?
Use the Firefly Flasher at https://firefly.box/flash in your browser to install or update firmware via USB-C.
2Can I write my own firmware?
Yes! Firefly is fully programmable — you can build your own apps or modify existing firmware. We are working on developer tooling to improve the developer experience and will post updated on Github when they're available.
3What languages are supported?
Most firmware is written in C, but you can compile to the supported MCU toolchain. Soon you will be able to build with our SDK.
4What is the default firmware?
The default firmware supports Ethereum transaction signing, basic crypto utilities, and experimental mini-apps.
5Is firmware secure?
Firefly firmware is auditable and customizable. You can inspect, build, and verify your firmware before flashing it.

Hardware

1What kind of chip does Firefly use?
Firefly uses an ESP32-C3, a 32-bit RISC-V microcontroller chip. It runs at 160 MHz, with 400 KB of RAM and 16 MB of flash memory. This chip supports USB-C for power and data (JTAG and CDC-ACM) and includes Bluetooth Low Energy (BLE) connectivity.
2Is Firefly secure hardware?
The Firefly DevKit does currently include secure boot, so that it's easier for developers to play with. Future devices will have a secure boot option.

Firefly does not currently have a secure enclave because in most cases this requires a secure element, which are generally not open-source and rely on secure through obscurity. We are currently working on secure enclave equivalent solutions that would provide the same benefits of a secure element while being open-source and transparent.
3Can I customize the hardware?
Yes — the hardware schematics are open source and modifiable. You can 3D print your own case or modify the board.

The PCB also has GPIO pins 20 and 21 broken out to simplify attaching your own hardware.
4What’s the display and button setup?
Firefly has a small 240x240 pixel screen (16-bit color) and four programmable buttons for interactive input, navigation, or gameplay.
5How is it powered?
Firefly is USB-C powered, you can plug it into any computer, mobile device, or portable battery that supports USB-C.