How exactly should this be used? Just a private key (which formats) or part of an existing wallet struct? Trait based?