0.03 ETH


Remaining Balance


Bounties x Rimble Prompt 2: Smart Contract Interaction



front-end dev

ðapp usability

Problem Background

On-chain interactions with smart contracts introduce levels of complexity to users (especially new users) beyond the basic wallet-to-wallet transaction experience. Product teams and end users would benefit from implementation of more consistent patterns for common functionality, like estimating gas costs and transaction time, as well as more complex workflows, such as opening a CDP.


How might we provide users with a universally recognizable set of UX patterns for smart contract interaction like token swaps, opening a CDP, or simply calling a method on a smart contract?

Create an open, reusable pattern (or set of patterns) that improves UX in some aspect of smart contract interaction.

Possible scenarios might include:

  • open a CDP
  • ERC20 token swap
  • check balance is high enough to complete transaction
  • estimate gas costs
  • estimate transaction completion time

For example, a potential solution might do the following:

  • User enters value and clicks "Trade" button, initiating smart contract interaction
  • Show modal explaining how a trade works
  • Set transaction gas price

Submission Requirements

Submissions may address the entire process of interacting with the smart contract or focus on improving a specific aspect of that 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.

4 monthsremaining
0 revisionsexpected





Not Accepted

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

We designed the website as simple as possible for new users who doesn't have experience in smart contract interactions and wants to test it.

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.

if 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.


Uniswap integration
As marketplaces such as Origin Protocol implement an automatic Token Swap such that the seller can accept multiple currencies, the user must be informed how one can pay with a currency that is not in his wallet.

  • user visits dApp that sells products for crypto
  • user selects product and proceeds to checkout
  • user wants to pay with DAI but balance is to low
  • user can learn how he can still pay with DAI using the provided link
  • user choses DAI as payment method
  • user confirms MetaMask transaction
  • end

Learn how Origin has implemented this feature: