The draft for my wallet implementation