Tally Launches on Testnet

Try Cardstack’s metering and billing network for decentralized SaaS

Cardstack Team
Aug 5, 2019 · 8 min read

We have launched Tally, the first part of the CARD Protocol — our multi-currency payment and billing network that makes the Cardstack Ecosystem worthwhile for all participants. Tally is now running on the Rinkeby test network to ensure security, stability, and future scalability.

Tally enables the billing workflow in the Cardstack Ecosystem

Tally is a metering and billing network for purchasing Software-as-a-Service in a decentralized way. Essentially, buyers and sellers of services use the software running on Tally to deposit funds and record billable usage. The system interacts with a set of Ethereum smart contracts and provides a multi-currency exchange rate service, enabling customers to pay for services in a variety of cryptocurrencies, including stablecoins. The current test version of Tally is designed for those who have experience interacting with the Ethereum testnet (Rinkeby). Future versions of Tally will be usable by people who do not own cryptocurrency and would like to buy usage credits with fiat currencies or a credit card instead.

Software-as-a-Service needs to be decentralized

SaaS platforms are usually owned by giant corporations. Cardstack’s vision is that open-source software will be provided to customers as hosted service by service providers around the world. This is similar to miners around the world running blockchain nodes on their own hardware in exchange for mining rewards, which are a type of hosting fees. We see consumer-facing software follow a similar paradigm, where enterprising service providers cooperate and compete to earn market share for offering high-quality hosting services. Tally is the metering and billing subsystem that enables multiple service providers to bill mutual customers who have funds in their prepaid accounts.

Go play around with Tally!

Tally is on Rinkeby testnet — the perfect playground for you to try it out as a customer or service provider.

Step 1

A prerequisite for using Tally is a MetaMask wallet. On the Rinkeby test network, you need tokens in your active MetaMask wallet to stake and to pay for prepaid cards. So, please set up your MetaMask wallet and get yourself some ETH on Rinkeby to pay for gas. Here is a guide to help you get started.

Step 2

You need to obtain some Rinkeby tokens that Tally accepts. There are different ways to do this:

Step 3

The Tally UI consists of two main sections. One is meant for end users / customers, allowing them to buy and manage their prepaid cards. The other one is meant for service providers, who can register, manage their stake, and bill customers for using services. Feel free to play around with Tally as both a customer and a service provider, to figure out how this billing system works! We would love to hear your feedback in our Discord channel.

If you have any questions, check out our FAQ section.

Play with Tally as a customer…

In this demo, our product manager Dmitry Naidionov demonstrates how to buy a prepaid card and pay for services in the Cardstack Ecosystem.

Follow this link to our Tally home page and click “Buy a prepaid card”.

Tally supports both ERC-20 and ERC-777 tokens. To create a prepaid card, you select the token and the amount you want to deposit; then, you proceed with the purchase. For ERC-20 tokens, this is a three-step approval process: First, you need to reset the current authorization (if one exists). Second, you authorize the withdrawal of that amount from your account. Third, you deposit the funds. With ERC-777 tokens, this is a much quicker process that only requires one confirmation click. (ERC-777 are not broadly supported tokens on the Ethereum mainnet, but we want to future-proof our smart contracts; so, support is already included in this testnet version.)

Now, you have bought a prepaid card, which you can use to pay for services — once we have launched on mainnet. Internally, service providers will bill you in SSC (which is our internal billing unit; 1 SSC = USD 0.01), but that is nothing you need to worry about; when a bill is created, the SSC amount they charge you is automatically converted to the cryptocurrency that you used to pay for your prepaid card, based on the current cryptocurrency-USD exchange rate from Cryptocompare (SSC is pegged to USD). This means that the amount you are billed for will simply be deducted from the cryptocurrency balance on your prepaid card. However, for your convenience, we display the approximate available balance on your prepaid card in USD. Please note: Because that balance is calculated based on each day’s cryptocurrency-USD exchange rate, your available USD balance may fluctuate even if you don’t use your prepaid card. These fluctuations are merely a reflection of exchange rate changes; the actual amount you have available to spend in cryptocurrency (the original tokens that you used to pay for your prepaid card) remains the same as long as you don’t use your card. For example, if you purchased your prepaid card with ETH, your USD balance will change based on the ETH-USD exchange rate. But if you purchased your prepaid card with DAI, your USD balance will appear to be stable.

The cryptocurrency you have deposited by buying a prepaid card is sent to the reserve pool. This pool ensures that the amount of tokens customers pay for prepaid cards (which can be various cryptocurrencies) is backed by CARD tokens. Once your tokens are in the reserve pool, the equivalent amount of CARD tokens (determined by the current exchange rate) is taken out of it and transferred to the reward pool. When the CARD balance of the reserve pool is sufficiently depleted, Cardstack will withdraw the non-CARD tokens the reserve pool has accumulated and use them to buy more CARD tokens, which will then be deposited back into the reserve pool, to ensure the continuity of this reserve.

Now that you own a prepaid card, you can look at the details regarding your service providers. Note: Since your card was only just created, it has no actual usage and zero active service providers at this point. So, go ahead and subscribe to one! You have to subscribe to service providers in order to use their services and enable them to bill you.

If you ever want to stop someone from billing you, you can remove that particular service provider from your prepaid card. Please note that billing happens per provider per card. So, if you have subscribed to a provider with your first prepaid card, but want to pay for his services with a second prepaid card, you have to subscribe to that provider again with your second prepaid card. Likewise, if you have multiple prepaid cards active with the same provider, removing the provider from one card does not remove that provider from your other cards.

Play with Tally as a service provider…

In this demo, our product manager Dmitry Naidionov demonstrates how to register as a service provider and charge customers for using services.

Follow this link to our Tally home page and click “Register as a service provider”.

You can only create one provider per MetaMask wallet address. In order to register as a service provider, you need to select your stake (note: as a provider, you must deposit your stake using CARD tokens) and go through a three-step, on-chain approval process. Your stake goes directly into the reward pool and serves as a kind of insurance against bad actors (meaning: providers who violate the terms may get their stake slashed).

Once a customer has subscribed to you, you can bill that customer for using your services. Simply select the prepaid card that will be billed from your list of active subscribers. Except for the set-up fee (which customers pay to subscribe to a new service provider), the billed usage is recorded entirely off-chain, and the remaining balance is computed by subtracting the off-chain usage totals and the set-up fee from the on-chain stake. Eventually, we will offer a billing API that your services need to integrate with, in order to bill customers for usage programmatically, without going through the Tally Web app. In the testing phase, you can create manual billing items by going to your service provider card and clicking the “Register Usage” button.

We are still working on the functionality that will allow you to withdraw funds from the reward pool as a service provider. Our plan is to enable you to withdraw your earnings and convert them to the token of your choice in one step, thus ensuring a seamless withdrawal process.

What’s next for Tally?

Tally is the platform technology that handles the back-office administrative work of revenue distribution and customer acceptance. Allowing every day-to-day software user to pay for services via cryptocurrency, without actually having to own any cryptocurrency, is one of the most promising ways to bring cryptocurrency and its flexibility to the mainstream.

Learn More

Star Cardstack on GitHub and join our Discord channel or our Telegram group and announcement channel to get all our latest updates.

Cardstack

The experience layer of the decentralized Internet. https://cardstack.com

Cardstack Team

Written by

Official account for the team behind the Cardstack project.

Cardstack

Cardstack

The experience layer of the decentralized Internet. https://cardstack.com

More From Medium

More from Cardstack

1.1K

More on Blockchain from Cardstack

More on Blockchain from Cardstack

2020: The Year of Launches

Cardstack Team
Jan 9 · 17 min read

54

More on Web3 from Cardstack

More on Web3 from Cardstack

The Ultimate Card Building Tool

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade