helium / maker-starter-app

Apache License 2.0
36 stars 39 forks source link

Allow Makers to deeplink to Helium to sign transactions #9

Closed cokes518 closed 2 years ago

cokes518 commented 2 years ago

For improved security best practices, we should remove the part of the onboarding flow where users enter their 12 words into a maker app, and instead, have the maker app request a helium wallet to sign transactions with the user's private key.

The onboarding flow for the maker app would start with linking a wallet address with the maker app with CTA to link from a supported Helium wallet app, or download a supported Helium wallet app.

Users will be asked to approve/link to the maker app from a Helium wallet app. The two apps are now linked together and can sign transactions on behalf of the maker app.

Transactions we'll support in this starter app: add_gateway transfer_hotspot_v2 assert_location

Example flow (once linked): user adds a Hotspot (maker app) > partial transaction deep linked to Helium app > user confirms transaction on Helium app > passes back partial transaction back to maker app > maker app submits transaction to the blockchain using the maker's desired API endpoint, hitting their desired onboarding server.

user updates a Hotspot location (maker app) > partial transaction deep linked to Helium app > user confirms transaction on Helium app > passes back partial transaction back to maker app > maker app submits transaction to the blockchain using the maker's desired API endpoint

User imitates transfer_hotspot_v2 transaction (maker app) > partial transaction deep linked to Helium app > user confirms transaction on Helium app > passes back partial transaction back to maker app > maker app submits transaction to the blockchain using the maker's desired API endpoint