0.03 ETH


Remaining Balance


Bounties x Rimble Prompt 1: On-boarding new dApp users



front-end dev

ðapp usability

Problem Background

Rimble's research with both dApp users and dApp builders has made one fact abundantly clear: it is really hard for someone new to Ethereum to begin using a dApp. The typical dApp on-boarding flow is littered with potential points of drop-off where we see users abandon the process out of frustration, mistrust, or confusion.

From the user's perspective, this process usually involves a combination of some or all of the following steps:

  • Creating a wallet
  • Signing in to the wallet
  • Adding funds to a wallet
  • Connecting the wallet to the dApp
  • Proceeding with the desired activity

Unfortunately for those of us building these applications, no single on-boarding UX pattern will work for every dApp. Each application offers its own context and has its own on-boarding conversation with the user. (Shameless plug: Check out Ryan Cordell's workshop Conversational Design: The Low Cost Way to Design Your Dapp on Thursday at 12:00!)


Create an open, reusable design pattern (or set of patterns) that improve upon some aspect of the dApp on-boarding process.

Possible scenarios to account for include:

  • Checking for web3 capable browser
  • Checking for a connected wallet
    • could use Metamask
    • could use a Hardware Wallet
    • could use 3rd party provider (Fortmatic, Portis, Universal login, etc)
    • Could use local wallet (Burner)
  • Checking for a specific ETH network
  • Signing a wallet message
  • Allow funding
    • could use state channels
    • fiat on ramp (wyre, moonpay, etc)
    • gas station network
    • layer 2
  • Getting/displaying the balance of an address
  • Getting/displaying the current ETH price
  • Getting/displaying the current gas price

For example, a potential exploration might look like:

  • dApp loads
  • Checks for browser compatibility with web3 and throws error if not
  • Checks for a web3 provider, throws error if none available
  • Initiates a connection to a Metamask wallet, throws error if rejected
  • End

Submission Requirements

Submissions may address an entire on-boarding flow or provide a novel approach to a narrow segment of the process. Everyone is welcome to submit a solution to the prompt, regardless of fidelity or technical implementation. We encourage participants to submit writing, sketches, UI designs, and/or prototypes in any form.

Minimum requirements

  • A clearly articulated and written explanation of your solution and the pain-points it attempts to address, accompanied if possible by sketches or low-fidelity visual aids to help illustrate the solution.

Ideal submissions might include:

  • Design files illustrating user flows or application touch points
  • A prototype (Figma, Invision, etc…)
  • Live working/hosted demo
  • Link to source code repo

Use of Rimble UI is encouraged, but not required.

Evaluation Criteria

Submissions will be evaluated based on the following criteria:

  • Novelty: Does this pattern provide a new or improved approach?
  • Usability: Can we expect users to accomplish the desired task?
  • Flexibility: Can this pattern be applied to a wide range of applications?
  • Implementation / Fidelity: How much time and effort went in to the submission? How thorough is the exploration of the problem and how impressive is the execution and presentation of the solution?
  • Accessibility: Can this pattern be used with a screen reader? Does it pass at least WCG 2.0 AA standards for accessibility?
  • Error handling: How does this pattern address different errors that might occur during the process?


Submissions that meet some of the criteria above will likely be accepted and will receive a prize in the amount of the bounty payout.

Exceptional submissions that meet most if not all of the evaluation criteria and that go above and beyond to address the prompt with a potentially higher level of fidelity will be eligible to receive honorable mention and a larger prize which will be sent to the ETH address attached to the submissions. The Bounties and Rimble teams will be judging each submission based on the evaluation criteria throughout the week to determine which submissions will be accepted and/or might be eligible for additional prizes.

Exceptional submission prizes are as follows:
1st Prize: $100 <> 0.5453 ETH (at time of activation)
2nd Prize: $50 <> 0.2727 ETH (at time of activation)

Disclaimer: 1 submission per prompt per participant. We reserve the right to reject submissions that appear to be copies of previously submitted work by other participants. The content of all submissions will be considered open source contributions to the Rimble project.

6 monthsremaining
0 revisionsexpected






Ideal on-boarding experience

First visit

  • dApp loads instantly
  • disposable in-browser local "burner" wallet loads in the background
  • discreet warning sign says "unclaimed account"
  • visual option to connect third party wallet via WalletConnect or any other universal web3 login method
  • remind user to optionally "claim account" at appropriate times

Claiming an account

  • tap/click "claim account"
  • list available options for cross-device third party wallets/accounts
  • display estimated time required to setup listed options
  • display experience level required for listed options
  • highlight popular/recommended choices

Dealing with gas

  • find a way to make it possible for first time users to try out the dApp with an empty wallet
  • don't expose first time user to the term gas

First time funding

  • should be handled by third party wallet/account provider
  • ideally location based alternatives

Transaction signing

  • should be handled by third party wallet/account provider
  • ideally notification on phone asking for easy to read message signature

Network detection

  • should be handled by third party wallet/account provider
  • ideally "dev mode" switch for network options


  • Open Ballot is a decentralized poll application currently under development and living on Rinkeby Network.

*As the contract is in Rinkeby, we included a link to ethereum faucet for people who wants to test the Dapp and doesn't have Rinkbey Ether.

*The user can view the data even if they don't have metamask extension but Web3 extension is needed if you want to interact with it.

*We included a Metamask extension link for new users who wants to test the dapp.

*When a user interact with the contract the user will be notified in the form of toast so users will know the details of their transaction, like transaction hash and block number when the transaction got confirmed.

*f the transaction fail, the user will be notified by number of reasons as to why it likely failed and how can it be avoided in the future.

*The Website also listens if the network and account and will refresh the page if it changes to avoid conflicts in the network.


Signing User Agreement and Privacy Policy

  • dApp loads
  • dApp prompts "user agreement and privacy policy"
  • user reads and accepts the agreement
  • user clicks on MetaMask button
  • user signs message within MetaMask
  • ToastMessage lets user know that he can now use the dApp
  • end

Check the Mockup here: