The main value that LimePay delivers is the ability to abstract and hide away all the complex processes that your users must be aware of in order to use a dApp, while providing a familiar UX. However in order to preserve the intrinsic properties of the blockchain, the transactions need to be executed by your users, meaning that your users must have wallets through which they can sign the required transactions.
We believe that in-dApp wallets are the best approach when it comes to User wallet management and that is why we are providing Wallets solution that you can use out-of-the-box.
As a prerequisite you need to create a shopper and specify that he will be using LimePay Wallets.
Your server, through the LimePay SDK, requests a wallet token.
You send the wallet token to your client.
Your client, using the wallet token and the Web-Library, creates the wallet of the user (once the user provides a password). The library encrypts the newly created wallet with the provided password and sends it to LimePay.
The mnemonic of the wallet is returned to the user, where he is requested to safely store it.
Your server creates new payment at LimePay through the SDK
Your server sends the generated limeToken to your web front-end.
Using the Client Library and the limeToken, the user signs the Ethereum transactions by providing his password. (his wallet is being served and decrypted client-side).
In-dApp wallets combine client-side encryption and keystore in order to provide superior UX. The user's wallet is being stored encrypted, server side and once requested, it is being served into the client, where it is decrypted by the user (through password) and used for signing transactions.
The result is that users sign transactions just by typing a password (familiar to the average user) and the private key never leaves the client!
Yes! Users can backup or export their LimePay wallets by saving/storing the mnemonic.
Only the users can decrypt their LimePay Wallets using their password, however when a user forgets his password, no-one can decrypt the wallet. Using the mnemonic, the user can provide a new password, effectively providing him with a "forgotten password" feature.