solui
  • Getting Started
  • Docs
  • Github
  • Twitter
  • Telegram

Introduction

solUI - pronounced "solly" - is a declarative Dapp generator for smart contracts running on the Ethereum blockchain. It makes it easier to both develop and deploy user-friendly interfaces for smart contracts running on any public or private chain.

Smart contract developers traditionally have two approaches for creating and deploying user interfaces for their contracts:

  1. ABI-based Dapp

    • Pros:
      • Quick and easy, since ABI (Application Binary Interface) is auto-generated by compiler.
      • Consistent look and feel for all Dapps so users can easily and quickly learn to use new smart contracts.
    • Cons:
      • Not as user-friendly as a full-fledged Dapp.
      • Dapp is non-intuitive for users unless they understand the ABI or have additional instructions on how to use it.
      • Doesn't scale well to applications which require calling functions across multiple contracts in sequence.
      • Users must have the ABIs since they are not stored on-chain (although this could be mitigated via e.g. EthPM tooling).
  2. Dapp (usually a web app)

    • Pros:
      • User-friendly and intuitive since Dapp is bespoke and thus fully customizable.
      • Provides users with the most app-like experience.
    • Cons:
      • Inconsistent look and feel across contracts since there is no current Dapp layout/theming standard (e.g. Material Design) for Ethereum. Thus, users have to learn and remember many different Dapp styles.
      • Time-consuming to build, unlike an ABI-based Dapp. Must also then be maintained and kept in sync with contracts.
      • Smart contract developer will usually need to work with a team to build the Dapp, since Dapp development requires different skills.
      • Dapp needs to be deployed and hosted somewhere.

In a nutshell, there has traditionally been no way to create a user interface that is both intuitive for end-users and easy for developers to build and deploy.

solUI attempts to solve these issues and more by providing a solution that sits between an ABI-based generated Dapp and a fully fledged Dapp.

solUI interfaces are deterministically generated from a declarative specification.

A solUI specification can be used to generate a Dapp on a wide variety of platforms, wherein the Dapp is rendered according to each platform's specific look and feel and layout.

Note: solUI is not intended for replacing full fledged Dapps tailored to a specific application. However, it is far better than an ABI-based Dapp and for many contracts may indeed be sufficient as the primary user-facing interface, negating the need to build a Dapp in the first place.

Even if you already have a Dapp, it might be worth giving your users a solUI interface as an fallback in case your hosted Dapp becomes inaccessible at any point in time.