Pocket Moloch UX Whiteboarding

Peter ‘pet3rpan’
MetaCartel DAO
Published in
7 min readAug 16, 2019

Pocket Moloch is a re-designed user experience of the Moloch DAO contract that is created and currently being developed by the Odyssy, within the MetaCartel DAO. It was originally intended to iterate and improve upon the previous Moloch DAO UX — with a new focus on mobile usability and enabling people to use as well as join the DAO without having any crypto.

Pocket Moloch uses a range of new UX technologies in combination for the first time in a user-facing product environment to achieve this. They include…

  • 📦 Application-specific user contract wallets
  • 🎣 Counterfactual deployment of smart contracts
  • ⛽ ️Meta transactions

Pocket Moloch is still in beta & version 0.5 can currently be seen deployed on both MetaCartel DAO (dao.metacartel.org) + Yang DAO (dao.yangdao.org)

Whiteboarding session

With Pocket Moloch having nearly a month of uptime and usage — me and Ken (coordinator of Yang DAO) had a call to reflect upon the UX challenges of onboarding DAO members, we founded it extremely valuable and hence Ameen suggested we spent some time doing a round of feedback for the Pocket Moloch. Being both in Berlin, we spent half a day at a whiteboard just scribbling down feedback, experiences, and suggestions around the Pocket Moloch. This document is the output of this half-day.

Most of this is just categorized notes diving into…

  • Recounted experiences of using Pocket Moloch
  • Rough outline suggestions on how to improve it
  • Half baked specs on new design patterns to implement

We originally intended this feedback to be only shared within the MetaCartel DAO as feedback to help the Odyssy team, however, we realized that it might also be interesting and helpful to the public.

This document is fairly poorly formatted with many areas lacking proper context but we just wanted to share something and get something out. If you have any further questions, feel free to reach out to us on twitter or Berlin Blockchain Week. We’ll be around.

The experience of onboarding members into MetaCartel DAO

  • We had an initial period before the launch of Pocket Moloch where members were manually onboarded into the DAO via the WETH Etherscan contract and membership proposals submitted through remix as the summoner.
  • The steps to pledge through approving WETH is actually fairly straight forward, however, the guide to do was not and hence people delayed their pledges due to this large amount of upfront perceived friction. This process seemed more strenuous than it was as the guide was thorough and hard lots of screenshots — better safe than sorry.
  • I sometimes sent people the guide and they completed it. Other times, I walked people through a mix of video calls and just through live chat messages.
  • However, when Pocket Moloch DAO launched, it was still far too complex to have DAO members go through. After you signed up and confirmed your email, you instantly encounter this panel of buttons. The entire flow of…
    → Signing up
    → Approving email confirmation
    → Sending ETH to deploy contract wallet
    → Deploying contract wallet
    → Waiting
    → Then adding ETH
    → Then approving WETH
    This was too much friction to onboard a user through even when guided, let alone going through it by themselves.
  • As the summoner, instead of putting DAO members through this flow, I continued to manually guide DAO pledges through the manual process of approving their WETH to the DAO address. Anyone who I did show the front end to was quite confused by the front end.

The experience of using Pocket Moloch with MetaCartel DAO

For using the DAO as an on-boarded member…

  • Meta transactions. Pretty smooth experience of processing proposals and voting. Delightful to not use meta mask approvals every time.
  • When the costs are high, meta transactions don’t go through. Enable adjustable gas costs?
  • UI design of the application aside from the account panel was easy to use, navigate and understand.
  • I can’t see what devices have already been approved. When I add my laptop, I see that I have 1 approved device, but the address for that device doesn’t match the link I can copy. I don’t really understand what it means to approve a “device”.
  • For example, I approved my laptop from my phone, but it shows “not connected” and even though the account on my laptop is pointing to the same address as my phone (below), my phone shows 0.16 eth and the laptop shows 0.
  • When I click “new proposal” I get the “eth dangerously low” error. The “eth dangerously low” page doesn’t explain what I need (molochdao.com below does)

Wallet Interoperability

  • The abridged SDK is mobile-first and has a primary “user account contract” that gets counterfactually instantiated on first use. This presents extra steps of having to…
  1. Deposit ETH to the contract address to pay for the gas of deploying it.
  2. Then depositing DAI or wETH to the newly created contract address
  3. Then approving DAI or wETH from the newly created contract address to the DAO

This would still need to happen but could happen using any wallet, not strictly the wallet from the app. Should probably use web3connect.com. Additional friction for people who already have crypto.

Gnosis Safe

Because I didn’t join directly from the mobile interface and used the Gnosis Safe as my member address, I will never be able to call the “update delegate key” or “ragequit” functions from my mobile device. The reason being that Safe doesn’t have a native dapp browser, which means I have to use my laptop via etherscan / mycrypto. I can’t use dao.metacartel.org to ragequit from my laptop either because it doesn’t recognize my Gnosis Safe.

The experience of using Yang DAO

  • Only crypto people have on-boarded into the DAO so far. Lot’s of non-crypto people ‘interested and hovering about’ — All the people who are mostly in the DAO are crypto yang DAO people. Everyone in the DAO right now are crypto people who have had crypto people.
  • It’s a difficult flow for people who already have crypto or familiar with meta mask. The contract wallets introduce complexity that adds little value for existing crypto users. Never needed to use the DAO front end via mobile yet.
  • Realization: Get users to approve their funds via their own wallet/key first.

“just had a call with a current yangdao member who says not needing to deploy a contract wallet would be ok for him. having a optional contract wallet deployed for extra security would introduce friction only after they have been voted in, which is ok. “

Ken Yang — YangDAO Summoner

“multiple steps of a few mins in between: deposit, deploy (which sometimes etherscan says will take hours bc it set gas fee low), then approve, are hiccups to the flow”

Low hanging fruit changes to Pocket Moloch

  • Create onboarding wizard interface that walks through users through every step that the need to complete — one step at a time.
  • When signed into from a new device, save the public key of the device key to the user sessions so that when signed back into the contract key, you can just add other devices as a delegate key to the contract.

Optimal changes to Pocket Moloch

  • Make the contract wallet optional for users. Allow crypto users to just use meta mask / recognize all web3 providers eg. via Web3Connect

Optimal changes to DAO contract

  • DAO contract deploys member contract wallet upon the submission of their funding proposal with the applicant owning the contract.
  • When users get voted in, they open up the dapp to instantly gain access to a smart contract wallet which they can add different devices to.

User managed on-boarding flow (🕷 Spider Design)

The Spider Design is a new hypothetical ideal user experience flow that uses managed contracts. It is named spider because there would be a one-to-many bot that manages all contract wallets with a low amount of value in them for the user. (less than 100 DAI)

Ideal Experience

  1. The user creates an account.
  2. The user adds funds via credit card (Wyre) and the 🕷️ bot deploys a contract wallet on their behalf (holding the only key).
  3. The spider bot then, again on the user’s behalf, approves the DAO to pull DAI from the contract wallet – this constitutes their pledge.
  4. Tweet “I have approved 40 DAI to YangDAO from address 0xabc123…, please summon me!”
  5. This will get picked up by a bot that submits a proposal on their behalf, and then auto-tweets from the YangDAO account “Membership proposal submitted for @whoever, YangDAO accepts your pledge of 40 DAI”

Other details

  • Users can keep the managed spider key in the contract wallet or remove it and fully manage their contract wallet. This also should be a option at the start of the onboarding flow – with the managed spider flow being the default experience.
  • When user signs in with new device, show an automatic prompt to add the key to the wallet contract with meta transactions. So every time a new sign-in happens through a new device, it can get easily added as a key.
  • A user conducts all transactions using DAI to pay for meta transactions.
  • The user only sees $USD and no ETH.
  • A bot (named ‘spider’) has a delegate key of the abridged smart contracts for all accounts with less than 100$, when the account has $100+ plus then the user needs to deploy and manage their smart contract wallet / add their keys / remove the ‘spider key’
  • Option to remove the spider anytime. Multis multi-sigs by default have a multis key to help users manage their wallets.

Written by Ameen & Peter + Input from Ken Yang.

--

--