diff --git a/CHANGELOG.md b/CHANGELOG.md
index 65c205198..90e7189c4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
- Minor: Disable checking for updates on unsupported platforms (#1874)
- Minor: User popup will now automatically display messages as they are received
- Minor: Changed the English in two rate-limited system messages (#1878)
+- Minor: Added vip and unvip buttons.
- Bugfix: Fix bug preventing users from setting the highlight color of the second entry in the "User" highlights tab (#1898)
- Bugfix: Fix bug where the "check user follow state" event could trigger a network request requesting the user to follow or unfollow a user. By itself its quite harmless as it just repeats to Twitch the same follow state we had, so no follows should have been lost by this but it meant there was a rogue network request that was fired that could cause a crash (#1906)
- Bugfix: /usercard command will now respect the "Automatically close user popup" setting (#1918)
diff --git a/resources/buttons/unvip.png b/resources/buttons/unvip.png
new file mode 100644
index 000000000..61b3476d9
Binary files /dev/null and b/resources/buttons/unvip.png differ
diff --git a/resources/buttons/vip.png b/resources/buttons/vip.png
new file mode 100644
index 000000000..43b18b1e6
Binary files /dev/null and b/resources/buttons/vip.png differ
diff --git a/resources/resources_autogenerated.qrc b/resources/resources_autogenerated.qrc
index 2497e6f6f..eacc6fde9 100644
--- a/resources/resources_autogenerated.qrc
+++ b/resources/resources_autogenerated.qrc
@@ -26,8 +26,10 @@
buttons/trashcan.svgbuttons/unban.pngbuttons/unmod.png
+ buttons/unvip.pngbuttons/update.pngbuttons/updateError.png
+ buttons/vip.pngchatterino.icnscom.chatterino.chatterino.appdata.xmlcom.chatterino.chatterino.desktop
diff --git a/src/autogenerated/ResourcesAutogen.cpp b/src/autogenerated/ResourcesAutogen.cpp
index b0e5e6ce8..1728044f3 100644
--- a/src/autogenerated/ResourcesAutogen.cpp
+++ b/src/autogenerated/ResourcesAutogen.cpp
@@ -25,8 +25,10 @@ Resources2::Resources2()
this->buttons.trashCan = QPixmap(":/buttons/trashCan.png");
this->buttons.unban = QPixmap(":/buttons/unban.png");
this->buttons.unmod = QPixmap(":/buttons/unmod.png");
+ this->buttons.unvip = QPixmap(":/buttons/unvip.png");
this->buttons.update = QPixmap(":/buttons/update.png");
this->buttons.updateError = QPixmap(":/buttons/updateError.png");
+ this->buttons.vip = QPixmap(":/buttons/vip.png");
this->error = QPixmap(":/error.png");
this->icon = QPixmap(":/icon.png");
this->pajaDank = QPixmap(":/pajaDank.png");
diff --git a/src/autogenerated/ResourcesAutogen.hpp b/src/autogenerated/ResourcesAutogen.hpp
index cbd6c0bfb..590cc234a 100644
--- a/src/autogenerated/ResourcesAutogen.hpp
+++ b/src/autogenerated/ResourcesAutogen.hpp
@@ -32,8 +32,10 @@ public:
QPixmap trashCan;
QPixmap unban;
QPixmap unmod;
+ QPixmap unvip;
QPixmap update;
QPixmap updateError;
+ QPixmap vip;
} buttons;
QPixmap error;
QPixmap icon;
diff --git a/src/widgets/dialogs/UserInfoPopup.cpp b/src/widgets/dialogs/UserInfoPopup.cpp
index a7f3add5e..f7096c556 100644
--- a/src/widgets/dialogs/UserInfoPopup.cpp
+++ b/src/widgets/dialogs/UserInfoPopup.cpp
@@ -186,6 +186,12 @@ UserInfoPopup::UserInfoPopup(bool closeAutomatically)
auto unmod = user.emplace