Favilla KEY is a 55 × 55 mm signing device that keeps your nsec off your laptop and out of your browser. Your key is encrypted on a secure element, only decrypted into the device's own RAM during the milliseconds it takes to sign, then wiped. Pair it once, then post, zap, and message at the speed of a regular client. Sovereignty without the friction.
Encrypted at rest on a Microchip ATECC608B secure element, behind a PIN with brute-force lockout. Decrypted only into the device's RAM, only for the milliseconds it takes to sign, then wiped.
Schnorr signing on the ESP32-S3 with the key live in RAM only for the duration of the operation. Fast enough that signing feels instant — slow enough that you read what you're approving.
The KEY client isn't hosted on a server — it's served directly by the device. Connect to it on your local network and your browser fetches the whole app from the hardware in your hand. No third-party hosting. No DNS to hijack. No app store gatekeepers.
Camera-driven QR signing. Disconnect WiFi entirely and the device communicates only via light. The only attack surface is your eyes.
First boot offers three modes: Offline, Hotspot, Local Network. No twelve-step tutorial. No seed-phrase shame spiral. Pick. Go.
Glossy black injection-moulded standard. Brass side buttons. Optional anodised aluminium, stainless, copper, or solid brass enclosures.
fetches the app from your local network
serves the app · holds the key · signs the events
Full kind-1 support with link previews, video rendering, mentions, and replies.
Wallet of Satoshi by default, or point it at your own LN node. Zap any post, any user.
Encrypted messages decrypted on-device. Plaintext only ever appears in your local browser, never on a third-party server.
Image and video uploads with progress feedback. Bring your own server or use the default.
Manage your relay list on-device. localStorage caching for fast cold starts.
WiFi off? Sign anything via QR. The device still works as a pure offline signer.
Most "hardware wallet" marketing claims keys never leave the secure element. That's true on chips like the SE050 that do native Schnorr — but the ATECC608B we ship today doesn't sign Schnorr. So we'll tell you exactly what happens.
Your nsec is generated on the device and stored encrypted on a Microchip ATECC608B, behind a PIN with brute-force lockout. When you approve a signature, the ATECC unwraps the key into the ESP32's RAM. The ESP32 performs the Schnorr signing operation. Then it zeroes the memory.
The key is never written to flash. It never touches a network. It never enters a browser. It exists in volatile memory for milliseconds at a time, on a device that does nothing else.
Is this as strong as a chip that signs natively? No. Is it dramatically stronger than your nsec sitting in localStorage on every site you've ever pasted it into? Yes — by an enormous margin. The SE050 with native Schnorr is on the v2 roadmap.
| Browser extension |
Web client + paste nsec |
Mobile signer (Amber, nsec.app) |
Bunker on a server |
Favilla KEY |
|
|---|---|---|---|---|---|
| Key on a dedicated device | your phone | ||||
| Key encrypted at rest in a secure element | OS keychain | server-side | ATECC608B · JIL High | ||
| Survives compromised laptop or phone OS | |||||
| Survives malicious browser extension | |||||
| Visible signing approval before signature | popup only | on hardware screen | |||
| Works fully offline | airgap mode | ||||
| No third party holds your key | |||||
| Open source & reproducibly built | varies | varies | varies | varies |
| Browser ext + web client |
Mobile app w/ keychain |
Bunker on a server |
Favilla KEY |
|
|---|---|---|---|---|
| Decryption key isolated from network apps | same OS | on server | ||
| Plaintext stays in your local network | in your browser | decrypted on server | ||
| You hold the decryption key — not a server | ||||
| Survives compromised host (laptop, phone) | ||||
| Resists relay snooping | if NIP-44 | if NIP-44 | if NIP-44 | NIP-44 |
| Forward-secret message history | NIP-44 limit |
Every byte of code that runs on the device is published. Reproducible builds. Audit it yourself.
The ATECC608B holds JIL High rating — a certified lab couldn't extract a key after three person-months of trying.
Updates are cryptographically signed and only flashable over USB. No silent OTA. No remote attack surface.
Designed and assembled in Western Australia. Small batches. Direct from us to you.
CIPHER is a hash-mining game built into the device. You play it, you might win real sats. No subscription, no microtransactions, no in-app purchases — just you, the device, and a chance.
Each round generates a candidate hash on-device. Land in the target zone and the firmware sends a payout from the CIPHER pool to your Lightning address. Miss and you try again. The game is the mining; the mining is the game.
It runs on the same hardware that signs your Nostr events. It uses the same secure element, the same screen, the same buttons. The only difference is what it's doing in idle moments — which is now, for the first time on a hardware wallet, something.
The KEY client connects directly to the device over your local network. Read your feed. Post. Zap. The fastest path from idea to signed event.
Pair Favilla KEY as a remote signer for any NIP-46 client. Damus, Amethyst, Coracle — same key, same security model, different surface.
Disconnect WiFi entirely. Sign events over QR using the KEY client. The device communicates only via light. The only attack surface is your eyes.
| MCU | ESP32-S3 N16R8 — dual-core Xtensa LX7 @ 240 MHz · 16 MB flash · 8 MB PSRAM |
|---|---|
| Secure Element | Microchip ATECC608B — JIL High rated key storage with PIN-gated access and brute-force lockout. SE050 with native Schnorr planned for v2. |
| Display | 1.5" colour TFT · 240 × 240 · ST7789 driver — amber and lime UI on absolute black |
| Camera | OV5640 with autofocus and hardware QR decoding for airgap signing flows |
| Connectivity | USB-C (data + power) · 2.4 GHz WiFi b/g/n with WPA3 · BLE 5.0 |
| Power | 500 mAh LiPo · TP4054 charging · AP2112K LDO · ~12h active signing |
| Haptics | DRV2605L driver with linear resonant actuator — tactile confirmation feedback |
| Audio | Piezo buzzer for confirmation beeps and CIPHER game feedback |
| Controls | Two side buttons in brushed brass — scroll and select |
| Enclosure | Glossy black injection-moulded standard. Optional anodised aluminium, stainless, copper, or solid brass |
| Footprint | 55 × 55 × 9 mm — 32 grams |
| Firmware | Open source · Reproducible builds · Signed updates over USB only |
NIP-46 as a remote signer. Any Nostr client that supports NIP-46 can in principle use Favilla KEY as its signer — you scan a pairing QR on the device, and from then on signing requests bounce to your Favilla KEY for approval. NIP-46 support varies between clients and our compatibility list will grow as we test against each one.
Limited production from Perth, Australia. Drop your email and we'll let you know the moment reservations open. No deposit yet — just a heads-up.