package icon

tagdrop

Decode data URIs in QR codes
New in version 2.6.2
- Wire format: QDEF redefined Split's group_id as an opaque grouping token rather than a verified hash. This app adds its own payload_hash field to keep the same reassembly-integrity check (SPEC.md version 18). Multi-code QR/NFC drops (content or paper spanning more than one code) made before this update won't reassemble correctly, and vice versa — regenerate and reprint/rewrite any of those after updating. Single-code drops are unaffected.
- Security: a scanned file's declared name is now rejec
TagDrop turns small files — text, HTML pages, images, audio, SVGs — into self-contained QR codes that work completely offline. Print one on a sticker or sheet of paper and leave it somewhere; anyone with the TagDrop app (or any QR scanner that follows tagdrop: links) can scan it and view the content immediately, with no internet connection, server, or account required.

Think of it as a digital geocache: instead of a logbook in a box, the "cache" is the QR code itself.

What you can do with it


  • Drop a single page — encode text, an HTML page, an SVG image, or JSON into one QR code, either in-app (Create Cache) or with the web generator.

  • Drop a whole "paper" — a printable sheet with a directory QR code (a paper manifest) plus one QR per file, built in-app (Create Paper) or with the web generator. Pages can link to each other with ordinary relative links, so a small static site survives being printed and scanned back in.

  • Spread large content across multiple codes — split a payload too big for one QR into multiple sector codes placed along a trail. The app collects sectors in any order, reassembles and verifies them, and can recover a single missing sector from an optional parity code.

  • Build trails, collections, and replies — link papers together with location hints, tag a loose set of stickers with a shared collection so they group into one card on the home screen and map, or mark a code as a reply to another to thread a conversation across drops.

  • Browse offline — scanned pages render in an in-app viewer, with search and #hashtag filtering, and a hex/CBOR inspector for the curious. The Collections, History, and Map tabs let you revisit, locate, and manage everything you've found, and a single file can back up or restore it all.

  • Tap instead of scan — write any TagDrop code to a blank or rewritable NFC tag, then read it back with a tap instead of the camera.

  • Sign your drops — post-quantum (ML-DSA-44) Verified Authorship signing lets anyone who scans your codes recognise them as genuinely yours after the first scan (trust-on-first-use), with a ✅/⚠️/🔏 badge shown on every signed item. Back up your signing identity to a passphrase-protected file to keep the same recognisable signer across devices.



How it works

Every code carries a tagdrop: URI — a QDEF container of CBOR Records, Base41-encoded so it packs efficiently into a QR code's alphanumeric mode. Content can optionally be DEFLATE-compressed and split across multiple codes with parity recovery. IDs are content-addressed (SHA-256 based), so identical content always gets the same ID regardless of who created it. The full wire-format spec is browsable in-app, no internet connection required.

Status

V2.5 — QDEF-based wire container encoding with content split into codes plus optional parity recovery, post-quantum (ML-DSA-44) content signing with trust-on-first-use verification, paper manifests with multi-file directories and relative-link navigation, geographic trails via "related" hints, ad-hoc collections, reply threading, an in-app scanner with a live scan board, NFC tag read/write, search and #hashtag filtering, full backup/restore, a Map tab for located finds, and remote drop-source feeds that pre-populate the map with community drops before you scan them.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 2.6.2 (14) suggested Added on Aug 10, 2026

    This version requires Android 6.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • control Near Field Communication
      Allows the app to communicate with Near Field Communication (NFC) tags, cards, and readers.
    • com.github.mofosyne.tagdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 10 MiB PGP Signature | Build Log

  • New in version 2.6.0
    - Wire format: codes now follow the current QDEF specification's rules for declaring namespace and laying out fields. QR codes, NFC tags, and codes made with the web generator before this update will no longer scan correctly with this version, and codes made with this version won't scan with an older one — regenerate any QR codes and rewrite any NFC tags after updating.
    - Fixed: reading the raw binary form of a QR code is now more resilient across different Android camera-library versions.
  • Version 2.6.0 (12) - Added on Aug 01, 2026

    This version requires Android 6.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • control Near Field Communication
      Allows the app to communicate with Near Field Communication (NFC) tags, cards, and readers.
    • com.github.mofosyne.tagdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 10 MiB PGP Signature | Build Log

  • New in version 2.5.1
    - Fixed: byte-mode QR/JABCode codes now match the current QDEF wire format (the container's leading namespace declaration moved into the root array itself). Older QDEF-framed codes generated by this app's own web tools before this fix could fail to scan; tagdrop: URI and NFC tags were never affected.
  • Version 2.5.1 (11) - Added on Jul 29, 2026

    This version requires Android 6.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • control Near Field Communication
      Allows the app to communicate with Near Field Communication (NFC) tags, cards, and readers.
    • com.github.mofosyne.tagdrop.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 10 MiB PGP Signature | Build Log