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:
- Too many dependencies to import, which has a significant impact on the weight of the final application
- Enforcement of the use of specific frameworks/libraries (such as React)
- 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
- 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:
- Framework agnostic (Currently providing support for React and Vue 3; more to come in the next future)
- SSR support (Through NextJS and NuxtJS)
- WalletConnect support
- Mobile development support (React Native)
- Tiny Bundle impact (Using dynamic import through vendor chunk splitting): We only load the resources when needed π
- 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
- IFrame support (using postmessage communication)
- React Native Embedded wallet provider
- Web3 Modal Support
- UI Kit (Cross Framework)
Comparison
Quirks | Cosmos Kit | Graz | Shuttle | |
---|---|---|---|---|
Framework Agnostic | β | β | β | β |
Supported Frameworks | React and Vue 3 (extendable) | React | React | React and Vue 3 |
React Native Support | β | β | β | β |
WalletConnect Support | β | β | β | β |
Web Broadcast Support | β | β | β | β |
SSR Support | β | β | β | β |
RSC Support | β | β | β | β |
Plugins | π | β | β | β |
Bundle Size | 3.4KB | 50.8KB | 237.8KB* | 40KB |
Vendor Chunk Splitting | β | β | β | β |
UI Kit | π | β | β | β |
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!