diff --git a/i3pystatus/coin.py b/i3pystatus/coin.py
new file mode 100644
index 0000000..aa55a7f
--- /dev/null
+++ b/i3pystatus/coin.py
@@ -0,0 +1,80 @@
+import requests
+import json
+
+from i3pystatus import IntervalModule
+from i3pystatus.core.util import internet, require
+
+
+class Coin(IntervalModule):
+ """
+ Fetches live data of all cryptocurrencies availible at coinmarketcap .
+ Coin setting should be equal to the 'id' field of your coin in .
+
+ Example coin settings: bitcoin, bitcoin-cash, ethereum, litecoin, dash, lisk.
+ Example currency settings: usd, eur, huf.
+
+ .. rubric:: Available formatters
+
+ * {symbol}
+ * {price}
+ * {rank}
+ * {24h_volume}
+ * {market_cap}
+ * {available_supply}
+ * {total_supply}
+ * {max_supply}
+ * {percent_change_1h}
+ * {percent_change_24h}
+ * {percent_change_7d}
+ * {last_updated} - time of last update on the API's part
+ * {status}
+ """
+
+ settings = (
+ ("format", "format string used for output."),
+ ("coin", "cryptocurrency to fetch"),
+ ("currency", "fiat currency to show fiscal data"),
+ ("symbol", "coin symbol"),
+ ("interval", "update interval in seconds"),
+ ("status_interval", "percent change status in the last: '1h' / '24h' / '7d'")
+ )
+
+ symbol = "¤"
+ format = "{symbol} {price}{status}"
+ coin = "ethereum"
+ currency = "USD"
+ interval = 600
+ status_interval = "24h"
+
+ def fetch_data(self):
+ response = requests.get("https://api.coinmarketcap.com/v1/ticker/{}/?convert={}".format(self.coin, self.currency))
+ coin_data = response.json()[0]
+ coin_data["price"] = coin_data.pop("price_{}".format(self.currency.lower()))
+ coin_data["24h_volume"] = coin_data.pop("24h_volume_{}".format(self.currency.lower()))
+ coin_data["market_cap"] = coin_data.pop("market_cap_{}".format(self.currency.lower()))
+ coin_data["symbol"] = self.symbol
+ return coin_data
+
+ def set_status(self, change):
+ if change > 10:
+ return '⮅'
+ elif change > 0:
+ return '⭡'
+ elif change < -10:
+ return '⮇'
+ elif change < 0:
+ return '⭣'
+ else:
+ return ''
+
+ @require(internet)
+ def run(self):
+ fdict = self.fetch_data()
+
+ symbols = dict(bitcoin='฿', ethereum='Ξ', litecoin='Ł', dash='Đ')
+ if self.coin in symbols:
+ fdict["symbol"] = symbols[self.coin]
+ fdict["status"] = self.set_status(float(fdict["percent_change_{}".format(self.status_interval)]))
+
+ self.data = fdict
+ self.output = {"full_text": self.format.format(**fdict)}