Mobile Wallets – Sign Transactions for Another App Like Metamask

metamaskmobile-walletsignaturewallets

I am looking at an architecture of a native (this is given!) iOS app which I want to integrate with an external wallet. For web apps we have the beloved Metamask which takes care of signing txs. Since there doesn't seem to be a proper mobile Ethereum library yet, I was wondering if I could use an external wallet (e.g. status) for signing transactions. Ideally I imagine this as follows:

  1. my native app provides UI and at some point needs to send transaction to invoke non-constant smart contract function call.

  2. my native app formats the raw transaction (that's already a pain that I'd not want to have to bother with)

  3. my native app asks some wallet to please sign the transaction

  4. similar to Metamask in browser, the wallet app pops up, asks for confirmation of the user and sends the signed tx back and/or already broadcasts it.

Is status/jaxx or any other mobile wallet already able to do the above? If not, what's the closest I could get to (today)?

Best Answer

uPort has plans to support some deep-linking transaction signing like this, and it might make sense to port MetaMask to mobile and support app deep linking of this sort in the meanwhile. MetaMask does not currently have a dedicated mobile developer, but a community member had good success with an effort to start porting to mobile, which could absolutely allow for a mobile MetaMask to sign deep-linked transactions from other apps:

https://github.com/petejkim/metamask-mobile

He hasn't been able to continue efforts on the app lately, but it's close enough to warrant serious consideration about getting it running.

Related Topic