1 million users.png

Qwallet, Qclient and Qserver

Qwallet aims to onboard a million users with intermediary layers like Qserver and Qclient, focusing on scalability and economic viability.

Qsilver, March 13, 2024.

Introduction

Qwallet is being designed from the ground up to be an easy-to-use introductory wallet for Qubic users. The primary goal is to onboard a million users, a substantial number that the current Qubic network cannot handle directly. To achieve this, we need intermediary layers like Qserver and Qclient. This article discusses the various challenges and solutions required to achieve a million-user Qwallet.

Qwallet Foundation

Qwallet is based on a WebAssembly (wasm) port of the low-level Qubic crypto code derived from my C-based port of qubic-cli. All seed management and transaction creation are handled within wasm, with the UI interfacing with the wasm module for an easy-to-use experience. Advanced users can use Qwallet in CLI mode, though this is suitable for less than 1% of users.

Initial Functionality

The first version of Qwallet will support basic functions like generating a seed and receiving/sending QU. Future updates will add more functionality as more smart contracts (SCs) become active on Qubic, particularly QX trading within Qwallet.

Seed Management

The first step for a user is to create a seed. Qwallet supports both the standard 55-character Qubic seed and the crypto-standard 24-word seed. To ensure users can always access their funds, Qwallet requires proof of seed backup during initial account creation. The seed is never saved and is immediately erased from RAM after use to prevent leakage.

A password is needed to log into the account, provided the hashed seed file is present. If the seed file is lost, it can be recreated using the backup. Advanced users can manage multiple addresses linked to a seed, but the goal is to provide a simple, single-address experience for most users.

Cross-Platform Compatibility

Being wasm and JavaScript-based, Qwallet is expected to run on all desktops and mobile platforms, though mobile compatibility is still being confirmed. Qwallet obtains network information via WebSockets connecting to Qclient, a small module running on the same server as Qserver. Qserver connects to the Qubic network using persistent connections, significantly improving performance.

Scalability

Each Qserver can handle many Qclients spawned from WebSockets with each connected Qwallet. The actual number of Qwallets a single server can handle is still unknown, but it is estimated to be in the tens of thousands. Therefore, dozens, if not hundreds, of Qserver nodes may be needed.

Qserver evolved from the sendmany project, which handled 15,625 payments in 20 ticks using the QUTIL SC 25 payment call. It can currently monitor 1 million addresses, but the limit of active addresses it can monitor is not yet known.

Economics

To support a million-user Qwallet economically, it should be free to use as a basic wallet. However, constant activity is required to monitor a wallet in real-time. Reducing the refresh rate can significantly increase the number of users a server can support. For example, a one-minute refresh rate could support 10 times more users than a per-tick refresh rate.

Premium services, such as per-tick updates and full archival access, could be offered for a nominal fee, potentially around 10 ticks per QU (about a penny per day). These initial revenues are essential but insufficient to cover infrastructure costs, necessitating capitalization through a Qx asset used to reward Qserver nodes.

Funding and Asset Allocation

A portion of the Qx asset supply will be allocated to initial donors to fund the million-user Qwallet/Qclient/Qserver infrastructure. Funds exceeding a million QU will be considered for asset allocation. Donors will receive assets immediately, while Qserver nodes and the liquidity pool will be allocated assets over time.

Initial asset allocation could be:

Long-Term Viability

The crowd funding aims to establish a self-sustaining infrastructure for a million-user Qwallet. The value of the asset is not the primary concern, but the usage of funds will be split between the liquidity pool and discretionary use, potentially in a 50/50 proportion.

Unresolved Issues

Several issues remain unresolved, such as mobile compatibility, the number of users per Qserver, revenue generation, and detailed asset and fund allocation. However, demonstrating technical viability is the most crucial hurdle, and fundraising will begin with the alpha release of Qwallet.

QPOOL Smart Contract

An essential component is the QPOOL SC, needed to distribute assets to node operators at a low cost. The current million QU cost for Qx asset transfer is not viable for small incremental amounts. Until QPOOL SC is ready, only Qx will be available for trading the asset.

Conclusion

The development and implementation of Qwallet, Qclient, and Qserver are crucial for achieving a million-user Qubic network. By addressing the technical and economic challenges, we can create a scalable and sustainable infrastructure to support a large user base.

Thank you for your support.

Qsilver

For the latest updates, join the Valis Discord, follow us on X, and bookmark our blog.

← Previous

QWALLET and QPOOL crowdfunding

Next →

Unofficial Qubic services integration guidelines

On this Page