Cardstack White Paper

The experience layer of the decentralized Internet

Trade-Offs Between Internet Business Models

In the current software economy, the drive for openness often requires people to give up their fair share of rewards, while tools promising to return power to users keep losing out to centralized, growth-hacked platforms.

The Corners of the Network Economy

While the Internet seems like one continuous space, most users actually live within corners, which are defined by the business model and incentive structure of the underlying platforms.

In the corner of ad-supported networks like Facebook, users are drawn into an algorithmic network of seemingly open sharing, fueled by viral growth and ad dollars wanting to be part of that market. In the opposite corner sits the tech industry patriarch, Apple, promising and delivering a perfectly synchronized experience, which gives customers who are willing to pay a premium great power and developers who play by Apple’s rules a fair chance to earn money.

Out of view of the masses lie the other two corners brimming with new energy. If you are a developer, you can fork and modify any piece of open-source software on GitHub to create your own digital reality, not limited by arbitrary rules and policies set by others. But you’ll probably be quite lonely in your personal realm. Yet, if you’ve paid attention to the ascendancy of Bitcoin and Ether, you’ve seen a certain strain of forkable code — cryptocurrencies — transcend into a faster growing global phenomenon than even Silicon Valley’s largest “unicorns”.

Connecting Open-Source and Crypto Ecosystems

The success of early cryptocurrencies shows that a network of economic participants, when given the right incentives, can fuel improvements of open-source software and protocols and spawn supporting ecosystems.

Building Up Speed With the Flywheel

The evolution of the software ecosystem behind Bitcoin and Ethereum shows that open-sourced software development can be fueled by a growing token-backed economy, where any person or organization is free to join and participate. As the overall network value grows — which is often measured by metrics like CoinMarketCap — there is an ever-growing incentive for new developers to build upon this codebase or architecture, and then deploy the new innovation as a piece connected to the existing network, instead of starting a new network from scratch in a lonely corner. Each “if you can’t beat them, join them”-decision made by an independent participant adds momentum to the “flywheel”, a term coined by Jim Collins in the book Good to Great. Decentralized organizations rely on a gradual build-up of speed when it comes to the flywheel effect, aiming to gain sustainable momentum, to compete with incumbents and challengers alike.

Looking beyond the specialized software for cryptocurrency mining and trading, is there a way for this flywheel effect at the fulcrum of open source and crypto to extend to other application areas — so that decentralized software, architecture, and protocols can start competing directly with the services offered by ad-supported platforms and proprietary cloud services? Deep network effects are the only way to fight entrenched networks. Open source and crypto have these effects.

To connect open-source software with the crypto token economy, we have to solve two problems that have thus far prevented mainstream adoption of either. For open source, we need to acknowledge that the current philanthropic orientation, whether through corporate sponsorships or Patreon supporters, severely devalues the code upon which a firm builds its business. For crypto, we need to start obsessing about the humans behind the addresses — their needs, their journeys, and their experiences — as much as about the consensus algorithms. In this section, we delve into our proposal on how to fund open source while creating wealth for all who make the flywheel turn.

Funding Software and Services with Tokens

Users spend tokens in their wallet to get access to an app. A smart contract, acting as the billing agent for the app, allocates a portion of these tokens to the creators of the open-sourced code or the provided services.

For a more in-depth explanation of how software and services can be billed for and settled via a set of blockchain-based smart contracts, we invite you to read Chapter 4: Sustainable Software of the Cardstack Vision Paper. It is published on the Cardstack website at https://cardstack.com/vision/chapter-4

Starting with Revenue

When every user is a paying customer, the relationship between the user and the team behind the app changes for the better. With the introduction of a wallet containing various crypto tokens, the users can now pay for software and services directly through their wallet. And they know that the teams behind the scenes will like to keep this revenue flowing by providing new features, upgrades, attentive support, etc.

Cardstack’s open-source framework and token mechanism help development teams tap into this new source of revenue; they generate the smart contracts needed for a new app, using simple configuration files checked in to the app’s GitHub repository. These smart contracts can be deployed to a public blockchain — starting with the Ethereum network — and upgraded with new logic or updated terms to reflect the latest pricing tiers or bundles.

Allocation of Funds Across Multiple (D)Apps

Going beyond a single app, token-driven application contracts allow multiple (d)Apps to pool resources and let mutual customers mix and match features to fit their needs, while the reward function does its work.

Users Pay For What They Use

Inside the cohesive user experience provided by the Cardstack framework, users have access to all the cards they need to complete their workflows, without having to make separate billing arrangements for each app in the catalog. Behind the scenes, app contracts generated by the Cardstack framework connect with a network-wide reward pool. The pool analyzes the usage data, which is collected by each of the participating apps, to determine a fair allocation of tokens as compensation for the teams offering the software and services — the “makers and miners”.

Since any distribution of tokens on a public blockchain incurs transactional fees (known as “gas” in the Ethereum network), the reward pool is designed to accumulate tokens for a defined period of time and then disperse them to the makers and miners in an aggregated manner. For dApps requiring their own native tokens to function, the reward pool can initiate an external exchange, acting on the user’s behalf to acquire and deposit the needed tokens to fund the transactional activities. In essence, it is simply a piece of “software” providing a custodial token exchange “service”.

High-Level Token Lifecycle

In a nutshell, end users dedicate a portion of their tokens to form a retainer agreement with an app, which permits them to use that app and any of its dependent services. When the app is used and the service redeemed, the makers and miners are compensated with tokens.

How It Works

End users and contributors can register their interest in acquiring Cardstack Tokens (CARD) by depositing ether from their wallet during the Token Generation Event (TGE) or afterwards through peer-to-peer transactions.

As needed, Cardstack Tokens (CARD) can be converted into Software and Services Coupons (SSC), which are in turn sent to an app contract to establish the retainer agreement. Converted Cardstack Tokens (CARD) are locked in a reward pool until the next reward allocation cycle, which is triggered by a block-based timer.

When a user starts using the app(s), usage data on- and off-chain are collected and periodically reported to the app contract, as proof that this particular user has redeemed a portion of the balance of the retainer.

The history of redemption events, combined with other aggregated data sets and statistical analyses, helps the network-wide reward pool smart contract determine a fair attribution and allocation of rewards to makers and miners in the Cardstack ecosystem. These cover material costs as well as fees and royalties owed to the teams who helped deliver the cohesive user experience.

Cardstack Tokens and Smart Contracts

The initial implementation of the Cardstack Token Mechanism is written in Solidity and is currently on the Ethereum testnet. We will open-source all 20+ smart contracts via GitHub and look forward to the community’s feedback.

Smart contracts in the Cardstack ecosystem are upgradable through a registry abstraction, which redirects transactions to the latest version.

Cardstack Tokens are abbreviated as CARD, and can simply be referred to as “cards”.

The structural separation of retain- and redeem-contracts means that SSC can run on different blockchains or on a side chain, as scalability needs arise.

Detailed Token Mechanisms for CARD and SSC

With Cardstack Tokens, users purchase credits to use software in the ecosystem, while makers and miners are rewarded proportionally, based on usage data, etc.

Cardstack Tokens (CARD)

This is the tradable token based on the ERC20 standard of the Ethereum network. When CARD are converted into SSC, they are locked in a reward pool and distributed to makers and miners based on a multi-variable model.

Software and Services Coupons (SSC)

SSC are non-transferable entries in each of the application contracts. They act like a store credit that can be redeemed by a user within a specific period of time (e.g. 1 year). As usage is metered, SSC are deducted and burned.

Balancing Facts and Opinions

The network-wide reward function consults the output of the proportional attribution and allocation model, which takes many factors, both on- and off-chain, into account to determine a fair distribution of rewards.

The Mathematics Behind the Model

The Cardstack team recognizes the critical role this attribution and allocation model plays in aligning the incentives of open-source contributors, service providers, and long-term token holders. Therefore, we have prepared and published our initial mathematical model in the Cardstack Reward Paper. We invite the community to review this model and give us feedback.

An up-to-date version of the paper can be accessed via Cardstack’s website at https://cardstack.com/rewardmodel.

Rewarding Makers and Miners in the Ecosystem

The reward function works like a “wealth trickle”. Once a graph of makers' and miners' input is built in an analytic node, the model iterates through network branches until each path has been weighted locally and globally.

Spreading Wealth While Saving Gas

The attribution and allocation model is iterative and has an algorithmic similarity to Google PageRank. Those operations are done via an off-chain process as part of a scheme we call Proof-of-Analytics (See section 6.5). The outputs of these off-chain oracles are sampled by the reward contract. The dispersion of tokens is completed through a one-pass procedure within the smart contract.

Summary: Blueprint for Sustainable Software

Cardstack is creating a sustainable software ecosystem, where a network of smart contracts coordinates the revenue coming in from paying customers and the rewards going out to makers and miners who have contributed to the software and services.