Proposed features/Cryptocurrencies with payment tag
|Status:||Proposed (under way)|
|Definition:||Currency key extension for cryptocurrency support|
Cryptocurrencies are new ways to pay for goods and services that are gaining popularity. The most popular is Bitcoin at the moment, but others like Ethereum, Litecoin or DASH are also used as means of payment. They started in 2009 and there are more than 11'000 cryptocurrencies and tokens registered at CoinMarketCap.com at the moment, but not all are used for payment, or used at all. More than 10% of merchants accepted them in Venezuela at the end of 2020.
This proposal aims to unify the different formats that are used with the
currency keys to indicate if the shop/merchant/service provider accepts specific digital currencies.
There are some sites already like https://coinmap.org/, https://coinatmradar.com/, https://www.dashdirect.org/ or https://discoverdash.com/ that map cryptocurrency ATMs and merchants, but they need to use their closed, private databases in addition to OSM partly because there is no unified way to indicate cryptocurrency payments, especially for smaller coins and tokens. This proposal would allow them to work on a common database in OSM, just like OSM is a great repository for non-crypto ATMs.
I suggest to indicate general cryptocurrency acceptance with
payment:cryptocurrencies=yes (like it is used now), and the acceptance of one particular cryptocurrency with
currency:crypto:DASH=yes, where the 3 or 4 capital letter word is the used symbol for that particular currency. This is in line with the notation that OSM uses for normal, fiat ATMs. Although there isn't an ISO standard that covers these currency codes, there is clearly a consensus about them. You can check all the currencies and their symbols at https://coinmarketcap.com/ or any other cryptocurrency information portal or exchange.
I would also recommend to declare the currently used
payment:IOTA deprecated (link). These were probably used in that way only because there were no clear rules defined by OpenStreetMap at the time they were uploaded.
The mayor blockchains are so called "layer 1" technologies in the cryptocurrency world. The above suggestion would cover the layer-1 acceptance, but cryptocurrencies started to support layer-2 (or second layer) solutions as well, one of them being the "Lightning Network", or LN for short. LN is a cryptocurrency agnostic technology, meaning that it can be applied on multiple cryptocurrencies to improve their properties like scalability, speed and cost of operation. In the case of Bitcoin for example, it is much more likely that the brick and mortar store will accept Bitcoin with the help of LN, because of its many benefits.
It would be also important to incorporate this information for the OpenStreetMap user, because as a customer I need to know if my wallet software on my phone is able to handle the merchants system, so I potentially need a LN-capable wallet to be able to pay at a certain location. This is especially important because the transaction fee is always paid by the customer and they are significantly lower with LN. Other layer-2 technologies are in development and although LN is the most popular, we don't know which one will be accepted widely.
For this reason I also propose another subkey, "LN" that would be a subkey of the
currency:crypto:BTC:LN=yes (meaning Bitcoin acceptance with Lightning Network support) or
currency:crypto:LTC:LN=yes (meaning Litecoin acceptance with Lightning Network support).
I would also restrict the usage of these tags to nodes and ways (areas) only, they probably don't make sense on relations. The older, payment:bitcoin, currency:XBT and currency:BTC tags would be migrated to this new format.
Cryptocurrencies can't be ignored, they are getting more and more popular, Venezuela leading the way with 10%+ market penetration. We would need a future-proof tagging system, that helps both the customers who use them and the merchants who accept them. The former would find new places to spend their coins, the latter would get new customers by offering cryptocurrency acceptance without the high fees other (non-crypto) solutions offer.
There are already many places where the community started to upload these pieces of information about cryptocurrency acceptance, so there is clearly a demand for it. Unfortunately there are in multiple formats at the moment: payment:bitcoin (used 7623 times), currency:BTC (used 6 times), currency:XBT (used 491 times). It would be great to unify them while making the format as future-proof as possible.
These tags should only be used on nodes and areas.
The format of these keys would be
currency:crypto:<layer-1 technology as coin or token symbol>:<layer-2 technology symbol if used>.
The value of the key could be "yes" or "no".
It would be also logical to enforce the creation of the
payment:cryptocurrencies=yes tag if there are any
currency:crypto:* keys present with a value of "yes" on a node or area.
Since they are popular, documentation should also include tokens that are smart contracts on a blockchain like Ethereum, and they should follow the same format: indicating their blockchain as layer-1, and using their token codes as layer-2, like
currency:crypto:EHT:CHR in the case of Chromia.
At the moment there are no nodes that are using this new key format, but they would be used on shops that accept cryptocurrencies.
- A shop that accepts Bitcoin would have the following tags:
- Another one that accepts both Bitcoin with Lightning Network support and DASH, but doesn't allow payments directly on the Bitcoin blockchain:
- Another one that accepts Bitcoin (with or without Lightning Network support), DASH (with InstantSend support) and Chromia token (that runs on Ethereum):
After this proposal gets approved, there would be certain steps that would be beneficial to complete:
- Update Key:payment and declare the
- Run an automated edit on those keys to migrate into the new format, and set their
yeson those new items
- Update Key:currency with all the information needed for new contributions, including a few examples
- Run an automated edit on the
currency:BTCkeys to migrate them into the new format, and set their
yeson those new tags
- Add a note to Key:currency to explain why these are not considered valid any more
- Wait ~6 months before running an automated edit that removes all previously used
currencytags for cryptocurrencies that are not following the new format
Please comment on the discussion page.