August 2022: Tech Status Update

Cardstack Protocol, Framework, Wallet, and App Suite

Cardstack Team
Cardstack
6 min readAug 15, 2022

--

The Cardstack engineering team continues to work on four parallel efforts including our protocol, framework, wallet, and app suite.

Cardstack Protocol

Gnosis Safe modularization

Our protocol team is working to generalize our layer-1 and layer-2 smart contracts to migrate and use as many of the features in the Gnosis Safe smart contract as possible. We are working to migrate special features used for the Card Pay Protocol into modules that can be installed in Gnosis Safe.

This initiative, which we call the Generic Safe Refactor, allows us to improve the modularity of our protocol, enabling us to add features to it by providing new modules that users can upgrade to or opt into based on their preferences.

Off-chain compute

We have deployed our off-chain computation service, formerly known as Tally, as part of our staking infrastructure on layer 2 (Gnosis Chain). This analytic infrastructure observes the balance that users have bridged to their depots on layer 2. Based on those activities, it can then provide a staking reward through a Merkle proof process that allows users to redeem their rewards via Cardstack Wallet or a compatible Web3 wallet.

This infrastructure requires a sub-system called Crank, which schedules periodic processes to ingest new activity history from the layer-2 chain, generate new analytic output for staking rewards, and write Merkle proofs on-chain to support redemption.

This system has been architected so that it can be extended to more complex algorithms and take into account on-chain and off-chain activity while correlating all the factors into an analytic model that can generate the results. As our staking rules evolve, we plan to take into account more factors of community participation when determining the rewards for each user.

Schedules

The team is also extending the Crank sub-system to support recurring payments for Gnosis Safe-based accounts. Users who have added the schedule module to their safe or created a schedule-enabled safe using the Cardstack app suite will be able to schedule recurring payments to addresses on many EVM-compatible networks.

The feature will allow users to schedule one-time and monthly payments. The funds that are drawn to issue these future payments are held in a safe and will only need to be deposited prior to the scheduled date for a successful transaction. The actual calendar schedule, the amount, and the recipient are not on-chain until the payment is processed at its scheduled time. This protects the privacy of such data from the payee or other third parties.

Using the latest Gnosis Safe extension and signing features, we are designing a protocol that allows the sender to retain control of the funds at all times. They can cancel future payments or move the funds to other accounts without needing to seek permission from the protocol or third-party custodian. We plan to offer this tool as a standalone for Gnosis Safe users who want to tap into this new capability while continuing to keep control of their scheduled payments and remaining funds in the wallet.

Cardstack Framework

Our framework team is focused on implementing the features needed for the Cardstack composable UI framework by using the web platform as the sole runtime. Previous versions of the Cardstack Framework depend on a Node.js server that runs in the cloud or on Docker. With advancements in service worker technologies in browsers like Chrome, we are migrating all the features that are in the Node.js runtime to the browser runtime, enabling Cardstack applications to run entirely in the browser without any third-party cloud service and support as a requirement.

This migration began with our efforts to support real-time code hot reloading in the browser when the user makes changes to the schema or the layout templates of a particular card. This way, changes made in a code editor or via drag-and-drop tools in our no-code environment will modify JavaScript in the browser and will immediately reflect the changes the user has made. We also began porting other services, such as the search service from our Node.js codebase, so that it can run in the browser and find cards that have been created within that local realm.

With this search service, we plan to implement many of the card selection and card assembly UIs that have been demoed in previous full-stack versions of Cardstack. However, it is now entirely locally run with the utmost privacy and user control.

Cardstack Wallet

On the wallet front, we have updated the secrets management component of our app to allow cross-platform encryption and decryption of the key using a pin code provided by the user. The pin is not stored on our servers, allowing only authorized users to be able to retrieve the secret recovery phrase from the backup. Neither Cardstack nor Apple or Google will have access to this information due to the encryption that uses this pin code as a seed. This capability was rolled out in the latest version of the Cardstack Wallet on the iOS App Store and Google Play Store.

We have also integrated in-app purchases for profile creation, which allow users to acquire the gas necessary to create profiles and pay the associated on-chain fees without having to bridge or transfer any crypto tokens to the app. We believe that in-app purchase capabilities that are available to more people who use mobile devices represent the easiest way for users to acquire a Web3 identity, which we host as a DID (Decentralized Identifier) at Card.XYZ.

Since the profile creation comes with the deployment of their own multi-sig wallet using Gnosis Safe technology, users can always add more funds through any other means using fiat on-ramps like Wyre or MoonPay or CEXs like Coinbase. We plan to integrate more convenient tools for reloading or adding to the balance of the safe in future releases.

Cardstack App Suite

We are extending the end-to-end payment solution that we deployed with Card Pay as our consumer-focused Card Pay Protocol to handle B2B use cases. Businesses working in Web3 often have to pay vendors using stablecoin as part of the cost of business and, in turn, ask for stablecoin or other crypto payments as settlement mechanisms.

Since the Card Pay Protocol has already integrated exchange rate oracles and can handle smart contract-based payments between parties, we are designing new screens in the Cardstack app suite that provide invoicing, billing, and payments features that Web3 businesses need to manage accounts payable and receivable processes.

As part of this extension of the Card Pay Protocol, we are increasing the number of chains that we can support beyond our initial layer-2 deployment on Gnosis Chain. Our app suite will leverage our Generic Safe Upgrades, making it easier to deploy smart contract capabilities to support our app suite on popular blockchains.

We will also add invoice creation tools for users who don’t have existing systems, so that they can specify an amount and preferred token and/or network all within one unified interface. We will roll out features from this B2B app suite on an iterative basis, tapping into new protocol features from the Cardstack Protocol team as they become available. We will also integrate these with the Cardstack Wallet as the sign-in/sign-up login mechanisms for new users, and present them through a user-friendly interface that can open the doors of Web3 to all.

To get all our latest updates, sign up for our newsletter on cardstack.com, star Cardstack on GitHub, and join our Discord channel or our Telegram group and announcement channel.

--

--

Cardstack Team
Cardstack

Official account for the team behind the Cardstack project.