Blockchain technology is unfolding for our eyes. I work with some bright people and we actively use blockchains as a part of our product offerings which has prompted thoughts. This article is my attempt to collect my thoughts and the use of blockchain and smart contracts for product development.
I am also trying to refrain from making puristic comments in this article. There are a lot of critiques being circulated about blockchain technologies, and mostly well founded. But like with all other technologies it will take decades to reach maturity and adoption.
Extending the Product Toolbox
First, we bought products in a single transaction -- a coin for an item. This has developed into simple relations governed by subscriptions, retainers, and such. Now we are developing the blockchain economies that will let us build even more fine-grained customer relations into the products. as a consequence, blockchains are becoming more than just a mechanism to make consensus on state among disparate parties. It is representing a new paradigm for products.
Payment infrastructure: an obvious use case for blockchain technologies is payment infrastructure. The current downside is that it requires a bit of onboarding to let people pay with tokenized currencies, and depending on the market segment for the product it might or might not be wise.
A feasible flow would be to let users pay with a stable coin. Currently, some of the popular ones are USDC and USDT.
This would be as an alternative to setup an agreement with a more traditional payment provider such as Stripe or one of the others. The value proposition is that there is no 3rd party risk -- the business will not rely on the payment provider's service, neither technically nor exposing them to other types of service disruptions.
The Membership NFT: Traditionally we have created application users by asking for email and password. A new tool in the toolbox is the membership NFT. The idea goes as follows: The user either mints a membership NFT or buys one from the secondary market. When the user connects to the app using the wallet that also holds the NFT token, she will get privileged access by the token she holds.
The value proposition of this is to allow users to retain value for their membership. This also introduces an alignment of incentives. The user has an incentive to make the service provider better. This is a positive incentive to post truthful reviews, provide valuable and actionable product feedback, and take the time to do so.
The Application Token: A product can have its currency. The great thing about this is that it can be programmed to cater to the need we have. Do we need a subscription at 10 cents a day? No biggie, we just automatically make the currency reduce by 10 cents a day.
The subscription model: combine the membership NFT and the application token to build a subscription service. Instead of charging the customer's credit card each month, the holding of the NFT owner deducts in real-time. When it reaches 0, then it is time to top up the account. The user can buy more application tokens either on a secondary market or directly from the service provider to instantiate the account and get access to her work.
Final Remarks
Architecting software for the above solutions would probably benefit from upgradable contracts which, on the other hand, limits the decentralized news of such a product. This is not a problem per se as the solutions sketched out our product add-ons.
This is contrasted to open protocols where trust is central to the value proposition of putting things on-chain. Creating those requires another type of diligence and has other worries.
One of the main features of putting product features on-chain is integration into the existing blockchain ecosystem. This includes letting users trade their tokens and NFT assets on DEXes, taking payment in the form of other blockchain-represented currencies, etc.
For closed product features the inherent value is less than with open protocols, as the trust and transparency for the code are both of lower value and usually circumvented. Whether the code runs decentralized or on a centralized infrastructure does not make a big difference when the code can be upgraded.