creating a crypto wallet from scratch