NTAG21x - lock the lock bytes

hi guys. new here. apologize in advanced if I posted in wrong forum

with NTAG21x, I am able to set read/write password protection. so far so good

but is there a way to lock the static and dynamic lock bytes ? I do not ever want to enable it, or have anyone else enable it

any help is greatly appreaciated

(I’m using react-native-nfc-manager if it matters)

If you are using android, lock prevention via tag writer app (which is an NXP manufacturer app) should work seamlessly now and is compliant with the format memory function. Otherwise the dt app lock prevention will work as well but you will have to use nfc tools to format the memory.

I dont have access to windows at the moment but the android version of the app for react-native-nfc-manager doesn’t appear to have the option to lock the dynamic lock bytes.

Saying that i dont really like their app. Another developer trying to reinvent the wheel just because learning about RFID suddenly became the new trend. Stick with the masters such as RRG, Wilson, WilkDev.


These are my notes on setting the lock & block bits on an ntag216:

Set the static lock bits and block bits (locks 0x03 RO, locks all other pages from 0x04 to 0x0F as RW)
hf mfu wrbl -b 2 -d 00000F00

Set the dynamic lock bits and block bits (all pages unlocked, all lock bits blocked):
hf mfu wrbl -b 226 -d 00007F00

Those are proxmark commands, but the -b value is the address and -d is the data, so it should be easy to adapt to any other software. You want to lock address 3 because it’s OTP.

Obviously, you are making permanent changes to the tag, you should read the datasheet and test on a disposable tag before making changes to something important, but It Worked For Me ™.

1 Like

thanks so much for your help. I am very grateful

much clearer now from your example

0F 00 (byte 3 and 4) refers to


page 7,6,5,4,CC, and Block 15-10, 9-4, CC


page 15,14,13,12,11,10,9,8

first step set Lock (0 to open), then set Block (permanently block any change)

thanks again !

1 Like