Anatomy of a Token Platform

Published: March 20, 2018, updated: January 25, 2025

Update from 2025: the cryptocurrency boom of 2017 and 2017 and ICOs were an interesting time, huh? It’s not my cup of tea anymore. At the same time, I’d like for this post to stand here as a historical artifact, and encourage you to spend your time on more worthwhile things instead.

Thank you for reading my disclaimer. Please enjoy the following post:

I had the tremendous privilege of speaking about creating sustainable token platforms at TokenSky 2018 in Seoul, Korea. I had a great time presenting some ideas that I’ve come across during my talk. I also encountered a lot of stimulating questions from individuals and companies all interested in enhancing their platform using some kind of blockchain token.

This post builds on those questions and experiences to identify some things you should consider when tokenizing your app. This post consists of six topic:

1. Token

First things first. When you create your token, you should be clear on what it represents. Is it a currency users can exchange for goods and services? Or does it represent unique assets users can purchase?

For example, you can replace your in-game currency with a token. A user’s gold coins, formerly stored in a central SQL database, now become something they associate with a sense of ownership.

Customer loyalty programs are similar. Data you used to store on your backend can now be in the hands of your customers. A bonus mile becomes a token mile.

Meanwhile, if your user assets are indivisible—representing individual assets in the real world or in the virtual world—then you should consider representing them as “non-fungible tokens”. A non-fungible token assigns a unique ID to assets. Users can exchange these IDs for other tokens on an open market just like ERC20 tokens. A good example for this is the CryptoKitties marketplace, where users can trade unique, virtual cat avatars.

The advantage with non-fungible tokens is that a customer who owns assets—such as real estate—receives a matching one-to-one token, stored securely on the blockchain. And any user who owns an in-game asset—such as potions in a role-playing game now owns their hard-earned treasures and trade and barter with other players.

2. Token purchase

As soon as a user acquires or purchases your tokens, they can start taking full advantage of your platform. You need to consider how to perfect the user experience. After all, this is the gateway to your blockchain solution. It can define every single interaction that follows.

You want to consider a few questions here:

Depending on how your platform is set up and if tokens can be directly purchased, there are lots of options available. Among them are three possible token acquisition scenarios:

2.1. Fiat payment

Users can buy your token using a credit card or similar electronic payment services. You offer your Tokens at a fixed exchange rate and users can spend them on your platform.

If users try to get a refund on credit card on their transactions you can be exposed to further risk here.

2.2. Coupled purchase

While on your platform, a user purchases an item or a service. Depending on how much they spend, they receive a proportional amount of tokens. As an example, think about tokenizing a music streaming service: users buy a monthly subscription for $10. In return, they receive 100 Streaming Tokens to use in future transactions. The next time they want to subscribe to the service, they can now use their 100 Streaming Tokens to buy another monthly subscription.

You can even enhance this system by ensuring that the original transaction clears and only giving tokens to the user after a set grace period. That way, you can lower the risk of credit card chargebacks.

2.3. Cryptocurrency exchange

The third and most platform-appropriate way of acquiring tokens is by using a currency or token that is native to your platform. With Ethereum, this means users buy your token in exchange for Ether. This can also happen on secondary markets, where users buy your tokens on a decentralized exchange.

Since transactions have to be initiated securely in a blockchain transaction, users have to have access to a wallet and already have some form of cryptocurrency before they can make purchases.

3. Wallet

Once a user acquires your token, the next question should be where they’ll be stored. Technically, there should be no difference between a web wallet and a desktop wallet, as long as the wallet understands the particular kind of token you’re using and that is sufficiently secure. only the user should be able to control the private key to access the wallet. If you store private keys on the user’s behalf, you make your platform vulnerable to theft of user assets.

You can also simply track how many tokens a user owns and make them available once they want to spend them. In this case you need to maintain your own wallet and ledger and make sure that you’re able to fulfill user withdrawal requests.

The trade-off is making the platform safer at the cost of user convenience. Storing tokens for users makes the single, central wallet susceptible to theft. Meanwhile, a central wallet makes it easier to trade tokens. Coinbase is one example of a putting liquidity over user security, since they provide an exchange rather than a wallet.

It’s worth considering going with the first option: handing users the keys to their tokens and giving them full ownership. That’s the only way you can truly reap all the benefits of a decentralized app on the blockchain.

To sum up, the questions to ask yourself at this point are:

4. Smart contract

While tokens are useful as proof of ownership, they only reach their full potential when coupled with decentralized applications (DApps). DApps are implemented with smart contracts, which are validated independently in a distributed network. This means that even in an low-trust environment, the smart contract itself can always be trusted. Part of the network’s strength here is the fact that anyone can take part in and create a network node that verifies all transactions.

If you want to figure out how to use decentralized applications for your tokens, it helps to identify the problems DApps can solve. Typical scenarios include:

What the blockchain provides here is an immutable, irrefutable history of all user actions. Everything can be proved with mathematical precision.

Once you’ve come up with ways that parts of your platform can be implemented or improved with DApps, you should then consider usability. Smart contract interactions go through an SDK or API, like web3.js. web3.js lets you interact with smart contracts. Software developers can use it to query the Ethereum blockchain for information and sending transactions.

Then, once that your smart contract is up and running, you need to consider how to continue supporting it. A contract needs to be updated eventually, since user requirements change from time to time. Typical solutions for contract migrations involve some kind of forwarder or contract proxy. A sophisticated, efficient migration can be a lot of work.

Some questions you need to consider when developing smart contracts on your platform are:

5. The Backend

In many scenarios, users can access a smart contract or decentralized app directly. Often, it also makes sense to access the app from the backend. With auctions, users can see bids without having to connect directly to the blockchain in their web browser. Or maybe you want to send out email reminders as soon as an auction is about to time out.

Integrating app backends and decentralized apps changes who has the final say. Data on a blockchain is stored with hard guarantees on correctness, immutability, and reliability.

In contrast, data stored on a centralized server instead is fungible. It’s easy to amend and delete records. You need to consider the needs for each kind of data you store:

Typical data that you want to make easy to change and delete on a decentralized blockchain could include:

Finally, once you have a clear idea of what data needs to be stored where, you also need to have a clean concept of how the two can interact. If data changes on the blockchain are relevant to your backend operations, then the changes need to be propagated. Some questions you should ask yourself are:

6. Exchange

The final piece of the puzzle is letting your users buy and sell your tokens on an open market. Exposing your token to a broader market lets it arrive at a fair price point. Many more exchanges exist out there, some of which specialize in the exchange of ERC20 tokens on the Ethereum blockchain.

Your users appreciate the transparency and openness that open market exchanges offer. And you don’t want your users to feel taken advantage of. Making your token public also is more attractive to users. Instead of going through your platform directly, users can purchase platform assets elsewhere and start using them immediately.

I leave you with a few final questions:

Tags

I would be thrilled to hear from you! Please share your thoughts and ideas with me via email.

Back to Index