diff --git a/src/components/user_settings/user_settings.js b/src/components/user_settings/user_settings.js
index 621dcd4b..8eade382 100644
--- a/src/components/user_settings/user_settings.js
+++ b/src/components/user_settings/user_settings.js
@@ -7,13 +7,15 @@ import StyleSwitcher from '../style_switcher/style_switcher.vue'
 import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'
 import BlockCard from '../block_card/block_card.vue'
 import withLoadMore from '../../hocs/with_load_more/with_load_more'
+import withSubscription from '../../hocs/with_subscription/with_subscription'
 import withList from '../../hocs/with_list/with_list'
 
-const BlockList = withList(BlockCard, entry => ({ userId: entry.id }))
-const BlockListWithLoadMore = withLoadMore(
+const BlockList = withList(BlockCard, userId => ({ userId }))
+const BlockListWithSubscription = withSubscription(
   BlockList,
   (props, $store) => $store.dispatch('fetchBlocks'),
-  (props, $store) => get($store.state.users.currentUser, 'blocks', [])
+  (props, $store) => get($store.state.users.currentUser, 'blockIds', []),
+  'entries'
 )
 
 const UserSettings = {
@@ -53,7 +55,7 @@ const UserSettings = {
     StyleSwitcher,
     TabSwitcher,
     ImageCropper,
-    'block-list': BlockListWithLoadMore
+    'block-list': BlockListWithSubscription
   },
   computed: {
     user () {
diff --git a/src/components/user_settings/user_settings.vue b/src/components/user_settings/user_settings.vue
index be9f27e7..5cf21815 100644
--- a/src/components/user_settings/user_settings.vue
+++ b/src/components/user_settings/user_settings.vue
@@ -164,7 +164,7 @@
         </div>
         
         <div :label="$t('settings.blocks_tab')">
-          <block-list />
+          <block-list id="123" />
         </div>
       </tab-switcher>
     </div>
diff --git a/src/modules/users.js b/src/modules/users.js
index ce8af68c..1f03b47e 100644
--- a/src/modules/users.js
+++ b/src/modules/users.js
@@ -1,5 +1,5 @@
 import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'
-import { compact, map, each, merge, find } from 'lodash'
+import { compact, map, each, merge, find, union } from 'lodash'
 import { set } from 'vue'
 import { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'
 import oauthApi from '../services/new_api/oauth'
@@ -85,14 +85,9 @@ export const mutations = {
   addNewUsers (state, users) {
     each(users, (user) => mergeOrAdd(state.users, state.usersObject, user))
   },
-  addBlocks (state, { blocks, page }) {
+  addBlocks (state, blockIds) {
     const user = state.currentUser
-    each(blocks, block => {
-      if (!find(user.blocks, { id: block.id })) {
-        user.blocks.push(block)
-      }
-    })
-    user.blocksPage = page + 1
+    user.blockIds = union(user.blockIds, blockIds)
   },
   setUserForStatus (state, status) {
     status.user = state.usersObject[status.user.id]
@@ -147,10 +142,10 @@ const users = {
         .then((user) => store.commit('addNewUsers', [user]))
     },
     fetchBlocks (store) {
-      const page = store.state.currentUser.blocksPage || 1
-      return store.rootState.api.backendInteractor.fetchBlocks({ page })
+      return store.rootState.api.backendInteractor.fetchBlocks()
         .then((blocks) => {
-          store.commit('addBlocks', { blocks, page })
+          store.commit('addBlocks', map(blocks, 'id'))
+          store.commit('addNewUsers', blocks)
           return blocks
         })
     },
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index 1192b6cc..0e1be61e 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -120,7 +120,7 @@ export const parseUser = (data) => {
   if (data.pleroma) {
     output.follow_request_count = data.pleroma.follow_request_count
   }
-  output.blocks = []
+  output.blockIds = []
 
   return output
 }