Implementation of virtual currency

Dear Community,

I’m currently brainstorming on how to implement a virtual currency for user interaction, similar to what Duolingo does with Lingots/Gems, but can’t wrap my head around it.


  • Currency of the user has to be decreased if any purchases are made
  • Platform interaction limited by the remaining balance per user (via frontend)


  • I can’t extend permissions to the user to update their balance or else they would be able to both decrease and increase their balance.
  • Similarly, if I have a master user that performs those POST requests, any user would be able to see those requests via the network manager in the browser.

Is there any way to get this done via strapi? Also, I am currently not interested in users purchasing virtual currency via external payments. I feel like there might be a simple solution that I don’t see.



Strapi v3.6.8 with Postgres

You could achieve this by minting your own token. Several cryptocurrencies make this easy.

Ethereum is the most well know, but is expensive. Cardano, Avalanche, Algorand and others are very easy to work with.