README.md

# Digital Token

[ISO 24165](https://www.iso.org/standard/80601.html) introduces a common language for digital currencies. Up until now, digital currencies ("crypto") have been an uncomfortable fit into the world of currencies which are governed by [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217).

`ISO 4217` does allow for private use currencies, however in common use several crypto currencies use unnoficial `ISO 4217` codes that clash with the standard.

The introduction of `ISO 24165` (and is relationship to [ISO 20022](https://www.iso20022.org)) creates a framework for the identification and standardisation of digital tokens.

In addition, the [Digital Token Identification Foundation (DTIF)](https://dtif.org) has been formed to operate a [registry](https://dtif.org/token-registry-search/) of tokens with [downloadable data](https://dtif.org/download-dti-registry/) making it easy to access and integrate the data into applications.

This library provides a means to download and access the digital token registry. One application is the upcoming integration of `digital_token` into [ex_money](https://github.com/kipcole9/money) providing money operations on both ISO 4217 currencies and ISO 24165 digital tokens.

### Non-ISO 4217 cryptocurrency codes

The following are examples of commonly-used but non-compliant `ISO 4217` currency codes. This, plus the inherent flux in the number of digital currencies gave rise to `ISO 24165`.


Unofficial code | Digits | Currency | Notes
---------- | --- | ------------- | ---------
ADA       | 6 | Ada	        | ADA conflicts with ISO 4217, because AD stands for Andorra.
BNB       | 8 | Binance	BNB | BNB conflicts with ISO 4217, because BN stands for Brunei Darussalam.
BSV       | 8 | Bitcoin SV	| BSV conflicts with ISO 4217, because BS stands for Bahamas.
BTC, XBT  | 8 |	Bitcoin     |	XBT conflicts with ISO 4217, because BT stands for Bhutan.
DASH      |	8	| Dash	      | DASH is of non-standard length.
DOGE      |	4 |	Dogecoin	  | DOGE is of non-standard length.
ETH       | 18|	Ethereum	  | ETH conflicts with ISO 4217, because ET stands for Ethiopia.
LTC       | 8 |	Litecoin	  | LTC conflicts with ISO 4217, because LT stands for Lithuania.

### Installation

The package can be installed by adding `digital_token` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:digital_token, "~> 0.1.0"}
  ]
end
```

The docs can be found at <https://hexdocs.pm/digital_token>.