iPhone app · Fish & Media

An encrypted backup of a short secret, on an ordinary NFC tag.

TagVault encrypts a short secret, such as a password, recovery phrase or note, on your iPhone, then writes only the encrypted record to an NFC tag. The passphrase never goes on the tag.

It works offline. No account, no cloud, no server: nothing leaves your phone.

In development · not yet on the App Store

How it works

  1. Type the secret and choose a passphrase. A generated passphrase is recommended.
  2. TagVault encrypts it on the phone with ChaCha20-Poly1305, using a key derived from your passphrase (PBKDF2-HMAC-SHA256, 600,000 rounds, a fresh random salt for every record).
  3. Hold an NFC tag to the phone. The app checks the tag has room, asks before replacing anything already on it, writes the encrypted record, then reads it back and compares it in the same session.
  4. To read it, scan the tag and enter the passphrase. Decryption happens on the phone.

What it does

  • Encrypts one short text secret on your device.
  • Writes it to NTAG213, NTAG215, NTAG216 and other NDEF-compatible tags.
  • Reads back and compares every write before reporting success.
  • Uses an open, documented record format, with a published recovery script.
  • Works with no network connection.

What it does not do

  • It is not a FIDO2 security key, secure element, hardware wallet or password manager.
  • It does not stop a tag being copied. Anyone with a copy can try to guess the passphrase offline.
  • It cannot recover a lost passphrase. There is no recovery service.
  • It does not guarantee a tag will stay readable over time.

Never your only copy

Treat a TagVault tag as an encrypted backup copy. Keep an independent copy of both the secret and the passphrase, and keep the original until you have read the tag back and decrypted it yourself. This matters most for crypto-wallet recovery phrases: do not make an NFC tag the only place one exists.

Read the full safety notice before you use the app. The app shows the same text and asks you to acknowledge it again whenever it changes.

Not locked in

The record format is published, with a deterministic test vector and an offline Python recovery script. If the app ever disappears, a TagVault record can still be decrypted with the passphrase. See Record format & recovery.

The app and format have not yet had an independent security audit.