In my Dapp, I want to give option to user to create tezo wallet if not already created using ConseilJS, I have few questions

  1. Is this the right way or we can achieve this in another way?
  2. Wallets created using above mentioned methods are valid for all networks?
  3. Do we need revelation in any case.
  4. Is there any issue in saving publicKey, secretKey, seed on keychain or only secret key is fine?

A reference Dapp would be the best thing to see how it works.

1 Answer 1

  1. There are many ways and many tools to create wallets. "The right way" is an opinion based question. People can only give guidance based on your usecases, but you've not described your tech stack, the types of things you hope to accomplish etc. If you plan to use the conseil backend, makes sense to use the JS library for interacting with it, and creating wallets. I've tried conseil, but preferred TzKT + BCD
  2. Explain "all networks". Do you mean Tezos mainnet, and all testnets? if so yes, the same seed can be used to create the same TZ1 or TZ2 address on any of them. But a different network means a different instance of the wallet. Funds on mainnet are not applied to testnet and vice versa. If you mean will it work with other blockchains, the same seed can be used, but different derivation path needs to be used.
  3. There is no situation where you can avoid a REVEAL operation. Its a fundamental aspect of the blockchain
  4. Again down to usecase, but most likely will need both. You only need the secretkey in order to sign operations. Some apps allow users to see their mnemonics again, which can't be reverse engineered. This is something that you can simply experiment with on your side and decide whats needed. You've mentioned "keychain" are you referring to the keychain on iPhone? If you are writing a mobile app, then I would personally be avoiding as much JS as possible and look for native solutions. What ones to use, again, what your usecase is

You might want to do more research and also look into: https://www.walletbeacon.io/ to avoid having to create your own wallet

  • Thanks for reply @simon-mcl. use case is simple, we want to give option in apps(iso, android, react native) to users to create their tezo wallet without interacting with any 3rd party wallet like temple etc and these wallets should be valid for TZ1 and Tz2. In app, we will sign transaction from secret key on behalf of user. Aug 24, 2021 at 17:48
  • @murtzagondal those aren't usecases, those are just the decisions you've made about them. Usecases are "I want users to login and be able to see the price of XXX on app YYY and ZZZ", or "I want to allow users to create NFT's from XXX", or "I want to provide loans in the form of XXX" etc. TzKT has good API's for discovering tokens, NFT's and metadata. Conseil is good at allowing you to make your own queries that might not fit inside a TzKT API. What it is that you want to do, decides what you need to use
    – Simon McLoughlin
    Aug 25, 2021 at 8:56
  • @murtzagondal personal opinion 1: I've been building mobile apps for ~10 years, i've used the vast majority of hybrid/cross-platform tools, some a little, others a lot. They are horrible tools/platforms, riddled with bugs and massive issues. I would avoid them all, at all costs and go native. You should read the tech blog article from AirBnb, Facebook messenger team, Udacity, Walmart etc, on why they all invested millions to get rid of them. Personal opinion 2: making and storing wallets securely is a massive task that takes teams months, choose to take this risk very carefully
    – Simon McLoughlin
    Aug 25, 2021 at 8:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.