Overview

Quirks is a universal wallet adapter that makes it easy to connect your dApps to existing wallets in the Cosmos blockchains ecosystem.

It was born with the idea of: β€œWrite once, use everywhere”.

Why

We are not fully satisfied with some aspects of the current state of the art for the libraries that allow the connection between dApps and wallets. In particular, we do not like:

  1. Too many dependencies to import, which has a significant impact on the weight of the final application
  2. Enforcement of the use of specific frameworks/libraries (such as React)
  3. This enforcement also requires that wallet access is only available through specific patterns that are strictly dependent on the particular libraries or frameworks used (such as hooks). Rather, we want to use them as if they were services, responding to requests as simply as writing promises
  4. No support for native mobile development, with many difficulties in developing native dApps

These are the reasons for the birth of Quirks, and what the library is here to solve.

Moreover, we want to introduce the concept of universal dApps: what about sharing the same code among web and mobile dApps?

It is a very hot topic in the developer community. So while there's a lot of work to be done and there may be pitfalls in such an exchange at the moment, having a library designed to run on different frameworks and mobile devices would be a catalyst for the development of universal dApps, allowing the Cosmos audience to be extended to mobile users.

Quirks solution

These are the basic parts and principles that we kept in mind while developing Quirks:

  1. Framework agnostic (Currently providing support for React and Vue 3; more to come in the next future)
  2. SSR support (Through NextJS and NuxtJS)
  3. WalletConnect support
  4. Mobile development support (React Native)
  5. Tiny Bundle impact (Using dynamic import through vendor chunk splitting): We only load the resources when needed πŸ™ƒ
  6. Improve Developer eXperience

Full Features List

  • Cross Framework
  • React Native support
  • SSR support
  • React and NextJS support
  • Vue and NuxtJS support
  • Small bundles, with vendor chunk splitting
  • Different wallet supports
  • Fully typed and tree-shakeable
  • Global state even outside of the frameworks
  • Web Broadcast API support
  • WalletConnect support

Todo List

  1. IFrame support (using postmessage communication)
  2. React Native Embedded wallet provider
  3. Web3 Modal Support
  4. UI Kit (Cross Framework)

Comparison

QuirksCosmos KitGrazShuttle
Framework Agnosticβœ…βœ…βŒβœ…
Supported FrameworksReact and Vue 3 (extendable)ReactReactReact and Vue 3
React Native Supportβœ…βŒβŒβŒ
WalletConnect Supportβœ…βœ…βœ…βœ…
Web Broadcast Supportβœ…βŒβŒβŒ
SSR Supportβœ…βœ…βœ…βœ…
RSC Supportβœ…βŒβŒβŒ
PluginsπŸ”œβŒβŒβŒ
Bundle Size3.4KB50.8KB237.8KB*40KB
Vendor Chunk Splittingβœ…βŒβŒβŒ
UI KitπŸ”œβœ…βŒβŒ
* About Graz

They offer a range of features, not just connection and management of wallet-related items, which justifies the clear difference from other adapters.

The above table is for guidance only. If you find any incorrect information, please feel free to PR updated information or simply contact us through our channels!

On this page