I want to start a discussion about building a boilerplate of local currency (or complementary currency) system for local residents with solidity.
In economics, a local currency is a currency that can be spent in a particular geographical locality at participating organizations.
There are some example in this world. Fuse is a company which provides communities to issue ERC-20 token and paying with their wallet service. Besides, there is an another practical story I have heard. There’s a lady in Kenya, created a set of local digital currencies in slums. The key was that there was a central community owned business whose revenue acted as the backing for the local currency. So if the business earned $1000 of Kenyan shillings and there are 10000 units of slumCoin in circulation then each slumCoin is worth $0.1. The currency was dished out like a UBI (Unconditional Basic Income) to residents and they could transfer via phone with QR codes like regular crypto but the currency was geofenced.
In my opinion, a local currency aims to encourage spending within a local community, especially with locally owned businesses. So the difference between local currency and most of Ethereum projects (De-fi, Gitcoin, etc…) is that local currency can only be used in the particular region. It can not get access on the internet for everyone.
As you may imagine, people would use local currency for local living, such as paying for daily necessities. Under the vision, we should have a boilerplate of the token smart contract (like ERC-20) and the wallet app (such as argent because of its feature of ETH-less account). If there is a boilerplate, any local organizations in the world can use that template, deploying their own token contract and developing their own mobile wallet app for their local communities.
The benefits of digitalization of local currency, is that when the currency is in circulation, it would be more easily to implement idea written in Radical Markets, including Common Ownership Self-Assessed Tax or Quadratic Voting, or Quadratic Funding for local public goods written in Liberal Radicalism. It seems like an ideal high-tech local community we could build in the future.
Practically, some of the local currency in circulation, has the price linked to another currency like fiat currency or cryptocurrency. But I think the key is that local currency must not link to any currency. It means that the local issuer (maybe a civil township or public interest groups) issue the local currency which is valueless, just like bitcoin, in the beginning.
The valueless currency would like a shell money as the medium of exchange in the primitive tribe, and the value of the currency would be gradually determined by the local markets of goods and service.
To achieve this goal, the token contract should prevent token from being transferred to the outside of the particular geographical region because a local currency aims to encourage spending within a local community.
So, there comes to my final question I want to discuss: How to write a simple token contract which token can only be transferred within the specific geographical region?
I got some answers and I summarized as follows:
- Use an oracle from the smart contract to fetch those data and revert depending on the IP address.
- Creating a whitelist of addresses that will be the only ones to transfer local currency.
- The project FOAM which provides the tools to enable a crowdsourced map and decentralized location services. (actually I haven’t understand how they work…)
Thank you for reading. My english is not so good, so the grammar or words may look weird…
Any questions, resources, ideas would be greatly appreciated.