Tally Launches on Testnet

Try Cardstack’s metering and billing network for decentralized SaaS

Cardstack Team
Aug 5, 2019 · 8 min read
Image for post
Image for post

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

Software-as-a-Service needs to be decentralized

Go play around with Tally!

Step 1

Step 2

  • Discord #faucet channel: In the Cardstack Discord server, you can request testing tokens from the #faucet channel. We have three different Rinkeby tokens for you to try out: CARD, DAI, and USDT. If you want to try Tally with any of these tokens, just post a message in our #faucet channel with your Rinkeby wallet address and the tokens that you’d like to test with, and we will airdrop you some testing tokens.
  • Self-serve with 0x token contracts: We accept two different 0x-owned Rinkeby tokens in Tally: WETH and REP. 0x has created a dApp that allows you to mint these tokens yourself, so we do not offer them in our #faucet channel. Our system uses real-world crypto token rates to exchange WETH and REP for CARD tokens when depositing them in a prepaid card. NOTE: The Rinkeby ecosystem reflects the same CARD token circulation that we have on mainnet. Therefore, in order to give everyone a chance to try out the Tally system on Rinkeby, we respectfully request that you do not mint more than 2,000 CARD tokens per person.

Step 3

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?

  1. Incentivize customers and providers to use the CARD Protocol. When we launch Tally on mainnet, we will award bonus tokens to buyers and sellers based on actual usage and earnings. This will be part of Batch D of our token distribution plan.
  2. Integration with service providers’ applications. We want to make sure service providers can easily list their applications in the Card Catalog. Additionally, we will release the documentation, so they can call Tally APIs programmatically to report usage data.
  3. Create user-friendly tools. Tally is an administrative tool similar to a blockchain explorer that shows a history of all on-chain transactions. We will roll out different variants of hosted (yet non-custodial) wallets, to ensure that the onboarding experience for casual customers, who want to activate a software subscription with a credit card, is no different than their experience on the centralized Web.

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.


The world’s first cooperative SaaS platform.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store