diff --git a/README.md b/README.md
index 25db4dfe..fe21a6ac 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,7 @@
* Clock
* Calendar
* Stocks
+* Cryptocurrencies
* iframe
* Twitch channels & top games
* GitHub releases
diff --git a/docs/configuration.md b/docs/configuration.md
index 7d4669f0..448dba8d 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -1314,6 +1314,72 @@ The link to go to when clicking on the symbol.
`chart-link`
The link to go to when clicking on the chart.
+### Crypto
+Display a list of cryptocurrencies, their current value, change for the day and a small single day chart. Data is taken from CoinGecko.
+
+Example:
+```yaml
+- type: crypto
+ cryptos:
+ - name: Bitcoin
+ symbol: BTC
+ id: bitcoin
+ - name: Ethereum
+ symbol: ETH
+ id: ethereum
+ - name: Avalanche
+ symbol: AVAX
+ id: avalanche-2
+ - name: Solana
+ symbol: SOL
+ id: solana
+ - name: Dogecoin
+ symbol: DOGE
+ id: dogecoin
+```
+
+Preview:
+![](images/crypto-widget-preview.png)
+
+#### Properties
+| Name | Type | Required | Default |
+| ---- | ---- | -------- | ------- |
+| cryptos | array | yes | |
+| style | string | no | |
+| sort-by | string | no | |
+| days | string | no | 1 |
+
+#### Properties for each cryptocurrency
+| Name | Type | Required | Default |
+| ---- | ---- | -------- | ------- |
+| symbol | string | yes | |
+| name | string | yes | |
+| id | string | yes | |
+| currency | string | no | usd |
+| symbol-link | string | no | |
+| days | string | no | |
+
+##### `cryptos`
+An array of cryptocurrencies for which to display information about.
+
+##### `currency`
+The currency in which to display the value of the cryptocurrency. Possible values are `usd`, `eur`, `gbp`, `jpy`, `cny`, `krw`, `inr`, `rub`, `brl`, `cad`, `aud`, `chf`, `hkd`, `twd`, `sgd`, `thb`, `idr`, `myr`, `php`, `zar`, `sek`, `nok`, `dkk`, `pln`, `huf`, `czk`, `ils`, `try`, `clp`, `mxn`, `php`, `cop`, `ars`, `pen`, `vef`, `ngn`, `kes`, `egp`, `aed`, `sar`, `qar`, `omr`, `kwd`, `bhd`, `jod`, `ils`, `lbp`, `jmd`, `tt`, `ttd`, `bsd`, `gyd`, `htg`, `npr`, `lkr`, `mvr`, `mur`, `scr`, `xaf`, `xof`, `xpf`, `xdr`, `xag`, `xau`, `bits`, `sats`.
+
+##### `symbol-link`
+The link to go to when clicking on the symbol. Defaults to the CoinGecko page for the cryptocurrency.
+
+##### `days`
+Number of days to show in the chart.
+
+##### `symbol`
+The symbol of the cryptocurrency.
+
+##### `name`
+The name of the cryptocurrency.
+
+##### `id`
+The ID of the cryptocurrency as seen on CoinGecko.
+
### Twitch Channels
Display a list of channels from Twitch.
diff --git a/docs/images/crypto-widget-preview.png b/docs/images/crypto-widget-preview.png
new file mode 100644
index 00000000..4128f0cf
Binary files /dev/null and b/docs/images/crypto-widget-preview.png differ
diff --git a/internal/assets/templates.go b/internal/assets/templates.go
index 53ae871f..d73dd9c3 100644
--- a/internal/assets/templates.go
+++ b/internal/assets/templates.go
@@ -26,6 +26,7 @@ var (
ChangeDetectionTemplate = compileTemplate("change-detection.html", "widget-base.html")
VideosTemplate = compileTemplate("videos.html", "widget-base.html", "video-card-contents.html")
VideosGridTemplate = compileTemplate("videos-grid.html", "widget-base.html", "video-card-contents.html")
+ CryptoTemplate = compileTemplate("crypto.html", "widget-base.html")
MarketsTemplate = compileTemplate("markets.html", "widget-base.html")
RSSListTemplate = compileTemplate("rss-list.html", "widget-base.html")
RSSDetailedListTemplate = compileTemplate("rss-detailed-list.html", "widget-base.html")
diff --git a/internal/assets/templates/crypto.html b/internal/assets/templates/crypto.html
new file mode 100644
index 00000000..9a1b66aa
--- /dev/null
+++ b/internal/assets/templates/crypto.html
@@ -0,0 +1,39 @@
+{{ template "widget-base.html" . }}
+
+{{ define "widget-content" }}
+{{ if ne .Style "dynamic-columns-experimental" }}
+