project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Maho Wallet

A telegram wallet to port dapps into mini-apps powered by intents

Maho Wallet

Created At

ETHGlobal Brussels

Winner of

Blockscout - Best use of Blockscout Block Explorer

Prize Pool

Project Description

Current crypto UX makes onboarding difficult. Users don't know what to do, how to do it, or even where to go. This is why like telegram's app store for mini-apps is a great solution for unifying crypto users. This solution brings the crypto ecosystem to one place, creating more visibility for dapps. This is especially useful for onboarding Telegram's 900M user base. Currently there is no dedicated EVM wallet as a telegram mini-app which is where Maho comes in. With Maho Wallet you never leave Telegram to use crypto, whether its sending tokens to your family & friends, playing games or just trading on DeFi apps. We open a gateway for the migration of dapps into mini-apps. We leverage the UX from Telegram to make onboarding as simple as a DM. Not only that but we use intents to make sure that all user transactions are successful, abstracting away chains and different tokens.

How it's Made

Maho Wallet uses Safe's ERC4337 Passkey smart accounts as the first wallet you create when you open the app. This allows for a very seamless and simple onboarding since it simply asks the user to use their device's authentication methods. This makes sure that the user doesn't have to store the seed phrase, hiding a away a layer of complexity from the user. As a multichain wallet, we needed a onchain data provider to fetch relevant data to display for the user about their assets and the transactions through out as many chains available. For this reason we decided to use Blockscout's API which allowed us to get data from various chains. Blockscout also decodes transaction methods in the retrieved data object, this is super helpful for improving UX in our wallet. We also used Nouns DAO API just to add a touch of fun to the wallets where each wallet has an icon of a noun generated by their address. Another big UX issue we face currently is when a user doesn't have the correct balance for a specific transaction, there is nothing they can do other than going to another dapp to bridge then possibly to another one to swap and only then can they execute the transaction they intended to originally. This is where cross-chain intents comes in play, where if a user is placed in a situation like the one I just mentioned, they can simply post an intent and a solver can pick that up and fulfill their request, providing them with the necessary balance for a specific transaction. This makes sure that all transactions made by the user will always be successful. For Maho we used Hyperlane's mailbox contracts for sending cross-chain messages between our settlement contracts. Our contracts follow the EIP7683 standard where an intent is initiated by the solver on the origin contract, then the solver calls fill on the destination contract which then uses the mailbox to send a message back to the origin contract to confirm that the order was indeed fulfilled. After all that, the solver is allowed to claim the input tokens on the origin contract.

background image mobile

Join the mailing list

Get the latest news and updates