1 of 51

Rapidly adding Web3 capabilities to your

mobile products

Alex Komarov Director of Mobile

Misha Nikanorov Head of Mobile Development

MyEtherWallet

2 of 51

3 of 51

Problems with open source web3 libraries

  • ‘Super libraries’
  • Incompleteness and bugs
  • Web-native JS ports have non mobile-native semantics

4 of 51

MEW Mobile Web3 Toolkit

5 of 51

github.com/mewwallet

Demo

MEW Mobile Web3 Toolkit

6 of 51

github.com/mewwallet

Available libraries

  1. mew-wallet-ios-network-layer
  2. mew-wallet-ios-networking
  3. mew-wallet-ios-kit
  4. Mew-wallet-ios-keychain
  5. mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— injected ‘wallet’ for DApps

7 of 51

What can you build with these libraries?

What headaches can it save you

🏗

🤦‍♂️

  • Add crypto wallet features to your app. (i.e. store in-game assets, currency etc.)
  • Create apps that show accurate web3-related data in real time via lightweight node interaction.
  • Create hybrid apps that utilize some on-chain features. �(i.e. mint your photo as NFT on chain, pay using in-app purchase for gasless experience.)
  • Whatever else you can dream up �(Our imagination is pretty limited)
  • Easy message/transactions signing capabilities to your app.
  • Simple message/transaction validation.
  • Easy key generation.
  • Not having to manage massive libraries with multiple dependencies and non-native semantics.
  • Battle-tested code used in product with 1M+ downloads.

8 of 51

MEW APP

9 of 51

MEW APP

ios-network-layer�ios-networking

10 of 51

ios-kit

11 of 51

MEW APP

web3provider

12 of 51

MEW APP

ios-keychain

13 of 51

ios-network-layer�ios-networking

ios-keychain

web3provider

ios-kit

14 of 51

Why did we build this?

Was it worth it?

Because libraries we needed either didn’t exist, or caused us headaches.

  • Our product doesn’t blow up when we add a new feature to it.
  • Adding new flows (i.e. BUIDLbux) to product became faster.
  • Our technical debt is more than manageable.
  • Onboarding new team members is much easier.
  • We get to contribute to the community.

15 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— DApp injected ‘wallet’

16 of 51

ios-network-layer

ios-networking

Libraries

17 of 51

ios-network-layer

ios-networking

Libraries

18 of 51

ios-network-layer

ios-networking

Libraries

19 of 51

ios-network-layer

ios-networking

Libraries

20 of 51

ios-network-layer

ios-networking

Libraries

21 of 51

ios-network-layer

ios-networking

Libraries

22 of 51

ios-network-layer

ios-networking

Libraries

23 of 51

ios-network-layer

ios-networking

Libraries

24 of 51

Your app can crash here. Oops.

25 of 51

Same thing using ios-network-layer

26 of 51

ios-network-layer

ios-networking

Libraries

27 of 51

ios-network-layer

ios-networking

Libraries

28 of 51

ios-network-layer

ios-networking

Libraries

29 of 51

ios-network-layer

ios-networking

Libraries

30 of 51

ios-network-layer

ios-networking

Libraries

31 of 51

ios-network-layer

ios-networking

Libraries

32 of 51

ios-network-layer

ios-networking

Libraries

33 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— DApp injected ‘wallet’

34 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • Mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— DApp injected ‘wallet’

35 of 51

ios-kit

Library

36 of 51

ios-kit

Library

37 of 51

github.com/mewwallet

  • mew-wallet-ios-kit

Supported standards:

  • BIP-39
  • EIP-55
  • EIP-67 + EIP-681
  • EIP-155
  • EIP-1559
  • EIP-2930
  • EIP-712 (+zkSync support)
  • EIP-1024
  • BLS digital signature
  • RLP encoding
  • ABI coding
  • BIP-32
  • BIP-44

and more…

38 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— DApp injected ‘wallet’

39 of 51

ios-keychain

Library

40 of 51

ios-keychain

Library

41 of 51

ios-keychain

Library

42 of 51

ios-keychain

Library

43 of 51

ios-keychain

Library

44 of 51

ios-keychain

Library

45 of 51

ios-keychain

Library

46 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— DApp injected ‘wallet’

47 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— DApp injected ‘wallet’

48 of 51

ios-network-layer�ios-networking

ios-keychain

web3provider

ios-kit

49 of 51

github.com/mewwallet

Available libraries

  • mew-wallet-ios-network-layer
  • mew-wallet-ios-networking
  • mew-wallet-ios-kit
  • mew-wallet-ios-keychain
  • mew-wallet-web3provider

— All network request descriptions

— All network requests

— EVM node interaction

— injected ‘wallet’ for DApps

50 of 51

Community use examples

built Safari extension using EIP1559Transaction and TransactionSignature from mew-wallet-ios-kit.

Ledger

“Blue checkmarks for email”�Moonfish validates and authenticates emails so you can be sure the email is legitimate.

Moonfish

@moonfishapp | https://moonfish.app

51 of 51

What would you build?

github.com/mewwallet

mewwallet.com

alexk@myetherwallet.com

@akomarov

mishan@myetherwallet.com

Alex KomarovDirector of Mobile

Misha Nikanorov Head of Mobile Development