NXTKey v2 singapore
Please login or register.

Login with username, password and session length
Advanced search  


Latest Stable Nxt Client: Nxt 1.12.2

Author Topic: NXTKey v2  (Read 5060 times)


  • Jr. Member
  • **
  • Karma: +6/-0
  • Offline Offline
  • Posts: 38
    • View Profile
    • Everyday Crypto
NXTKey v2
« on: July 09, 2014, 03:54:43 am »


Awesome project!  I love the nice PCB layout.  I tried to look at the schematic and layout etc. but none of the links seem to work anymore. 

So, I know you are probably kind of bummed about having to respin your board.  I'm not sure what kind of micro is on there.  However,  I once bit banged USB from an arduino to translate from a PCM joystick to a USB joystick HID device.   So this should be a walk in the park i would think.  Maybe, the software stack/ rtos is the issue here rather than the actual tasks at hand.  I've not developed for arm, my only micro experience is around old motorola, 8051s and atmega.   So, possibly I could help salvage the current board.

However, I'd also like to brainstorm about possible improvements:

1.  As I understand it the current project is to type in the master key directly via HID into the wallet.  What if we were able to encrypt this data as well.  Have the wallet pass a public key into the hardware first, then with a touch on the hardware wallet it would send the key encrypted with the public key to the wallet software.  This would allow us to bypass any type of keylogger. The trezor guys have already developed a web based plugin to allow for 2-way communication between the browser and the USB hardware devices.  We could leverage that same code to achieve our 2-way communication as well.

2.  Also, it seems as if we could potentially make a network connected device, either using USB or potentially wifi (via electric imp)  connected device where the wallet software is ran directly from the device via webserver.  So, essentially our embedded device is running a webserver. 

It seems like all the transactions signing is done on the NRS side via public static byte[] sign(byte[] message, String secretPhrase), so if we were running the NRS on the embedded device we could replace secretePrhrase for what is stored locally.

Although, the right path may just be to take the Trezor hardware and modify our wallet and their code to allow for this sign function to be offloaded.  Mynxt.info pulled the sign function into the js side, we may be able to utilize that work to make integration with Trezor easier.

So, I've rambled a bit here, hopefully this makes sense to at least 1 other person besides myself...


  • Sr. Member
  • ****
  • Karma: +74/-4
  • Offline Offline
  • Posts: 454
    • View Profile
Re: NXTKey v2
« Reply #1 on: August 13, 2014, 03:31:15 am »

Although, the right path may just be to take the Trezor hardware and modify our wallet and their code to allow for this sign function to be offloaded.

Yup, Trezor firmware is here https://github.com/trezor/trezor-mcu

Looks like someone fluent with C/C++ should be able to shoehorn NXT signing ability into the firmware.. Probably can just use the same private key that it uses for bitcoin, just make the signing Nxt compatible.  Or even better modify the API so you can ask for BTC or NXT signature then get it merged upstream to make Nxt support official :)

Bounty anyone?