The device does exactly one job: your roll string is hashed with SHA-256, that hash
becomes the BIP-39 entropy, and the standard BIP-39 encoding turns it into words,
checksum included. Nothing else happens. Write your rolls on paper alongside your
words.
# your rolls, exactly as the screen showed them
$ echo -n "531462513624553164215532644135622145366142553..." \
| sha256sum
a3f1... (the hash of your rolls)
# feed that hex to any BIP-39 tool, in any language
$ python3 -c "from mnemonic import Mnemonic; \
print(Mnemonic('english').to_mnemonic(bytes.fromhex('a3f1...')))"
abandon ability able about ... # must match the screen
If the words do not match what the device showed you, it is lying, and you know inside
a minute. That is the entire pitch. We are not asking you to trust us. We are asking
you to check us, with tools we did not write, on a machine we have never touched.
One warning, because it matters more than anything else in this section: your
rolls are your seed. Anything that sees them can compute the words. So check
the device with a practice round first, on any machine you like, since throwaway rolls
guard nothing. When you verify the rolls behind real money, do it only on something you
would trust with the seed itself, and the obvious candidate is the offline wallet those
words are about to live in anyway. Two separate devices now have to agree, and a lie
requires both of them to be in on it.