Read tags. Write records. Build NFC flows.
An open-source NFC workbench for iOS and Android, built with React Native.
Read and write NFC tags, inspect readable Type 2 memory, and build response-driven command flows.
Download for iOS · Download for Android · Project website · Discuss an NFC project
Development preview: This README describes the current source. Screenshots and newer features, including Flow Script, Type 2 Memory Scan, and the English / 繁體中文 / 日本語 interface, may differ from the versions currently available in the stores.
- Read, write, and reuse. Inspect tag identity, technologies, and NDEF data. Write text, links, phone / SMS / email shortcuts, Wi-Fi records, and vCards. Save records to open, copy, and share later.
- Let tag responses shape the next command. Build NFC-A or ISO-DEP flows with captured response variables, dynamic command bytes, conditions, delays, and bounded repeats. Review commands, responses, variables, and branch decisions in the trace.
- Look beneath the record. Inspect readable Type 2 memory pages with raw bytes and annotations, including model-specific layouts for NTAG213, NTAG215, and NTAG216.
- Extend the source. Explore an MIT-licensed React Native app powered by react-native-nfc-manager, or talk to the team about integration and custom development.
The screenshots below show the development build in English. Click a screenshot to view the full image.
All screenshots use the app’s UI with demo tag data in an iOS simulator. They illustrate the interface and do not represent a new hardware test. Image provenance is recorded in screenshot-sources.json.
| Area | Capabilities |
|---|---|
| Read | Tag UID, available technologies, and NDEF messages |
| Write NDEF | Text, URI / custom schemes, telephone, SMS, email, Wi-Fi Simple Record, and vCard |
| Saved records | Save, open, copy, and share NDEF records, custom commands, and flow scripts |
| Custom commands | NFC-A and NFC-V transceive, and ISO-DEP APDU commands, subject to platform and tag support |
| Flow Script | One NFC-A or ISO-DEP technology per run; variables, response capture, dynamic commands, conditions, bounded repeats, delays, and per-step trace |
| Type 2 Memory Scan | Model-specific page ranges for identified NTAG213 / 215 / 216; bounded CC-declared data-area scans for other compatible Type 2 tags |
| Tag utilities | Formatting, erase, and read-only operations where supported; NTAG213 / 215 password protection; NTAG2xx signature verification; NTAG424 DNA signature commands and tamper detection; SIC43NT rolling-code verification |
| Interface | English, Traditional Chinese, and Japanese; system language or manual selection; light and dark appearance |
An NFC-capable device and a compatible tag are required. Available technologies and operations depend on the platform, device, and tag.
How a written record is opened depends on the receiving device. iOS does not natively open NFC vCard records. Generic Type 2 scans are not complete physical-memory dumps: unreadable or unverified pages remain unavailable, and incomplete results do not establish the reason for a read failure. Memory scanning sends identification and read commands only; tag-side read counters may still advance.
Have an NFC product or an existing app that needs NFC? Talk to the team about prototyping, React Native integration, and custom mobile development.
Discuss an NFC project · NFC To GO · Revteltech
Tell us your target platform, tag or hardware, and what you want to build. You can also email nfctogo@gmail.com directly.
Use Node.js 22.11 or newer and npm 10.9.7. package-lock.json is the
project's only dependency lockfile; install with npm ci.
The postinstall script repairs the Node-only React DevTools standalone bundle
to load the patched npm versions of ws and shell-quote. The React Native
backend stays on 6.1.5. Source and output hashes guard this compatibility patch;
review or remove it when upgrading react-devtools-core. Do not skip install
scripts when using standalone DevTools.
The dependency fixes follow the upstream shell-quote advisory and ws advisory.
Run npm test for unit tests and npm start for Metro. Use npm run ios or
npm run android to build and launch the app locally.
Run npm run test:dependency-security after changing the DevTools compatibility
patch or its dependencies. It checks shell escaping and bounded WebSocket input
using the dependency exports from the patched standalone bundle.
The project website lives in docs/. See website maintenance and GitHub Pages setup for local preview and publishing instructions.
Made by whitedogg13 and Revteltech. Original project credits also include Washow.
Built with React Native and react-native-nfc-manager.
MIT license — Copyright Richie Hsieh and Revteltech.





