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.
First, the rule that outranks everything else here: your rolls are your
seed. Anything that sees them can compute the words. Check the device with a
practice round first, on any machine you like, since throwaway rolls guard nothing.
Verify the rolls behind real money 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. That wallet has to see the seed regardless, or it could never sign, so
checking with it hands the seed to nobody new. What changes is this: two unrelated
codebases must now derive the same words from your rolls, and a wrong seed requires
both to fail identically. One box you must blindly trust becomes two boxes that must
agree.
# practice rolls: check the machinery on any computer.
# real rolls: OFFLINE ONLY. the rolls are the seed.
# enter them 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.
And the whole thing is open source: firmware, hardware design, and the exact encoding
of rolls into words, published before any device exists. The code that does the one
job is public, so "what does it actually run" is a question anyone can answer without
asking us.