diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
index 7294dc1fe1344f60bff1c9054ab5f7ec0c5c5304..af5aa3c859c5c86e94d752e953c19d80544fd5b6 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/deletionMark.js
@@ -1,14 +1,9 @@
 const deletion = {
   attrs: {
-    user: {
-      default: 0
-    },
-    username: {
-      default: ""
-    },
-    date: {
-      default: 0
-    }
+    id: { default: "" },
+    user: { default: 0 },
+    username: { default: "" },
+    date: { default: 0 }
   },
   inclusive: false,
   group: "track",
@@ -17,6 +12,7 @@ const deletion = {
       tag: "span.deletion",
       getAttrs(dom) {
         return {
+          id: dom.dataset.id,
           user: parseInt(dom.dataset.user),
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date)
@@ -28,6 +24,7 @@ const deletion = {
     return [
       "span",
       {
+        "data-id": node.attrs.id,
         class: `deletion user-${node.attrs.user}`,
         "data-user": node.attrs.user,
         "data-username": node.attrs.username,
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
index 37ceac821b6f8eb05db3a62762b42945b8cb7575..0ac326672504efa77d084bcda4d0bd77cf3f8733 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/formatChangeMark.js
@@ -1,20 +1,11 @@
 const format_change = {
   attrs: {
-    user: {
-      default: 0
-    },
-    username: {
-      default: ""
-    },
-    date: {
-      default: 0
-    },
-    before: {
-      default: []
-    },
-    after: {
-      default: []
-    }
+    id: { default: "" },
+    user: { default: 0 },
+    username: { default: "" },
+    date: { default: 0 },
+    before: { default: [] },
+    after: { default: [] }
   },
   inclusive: false,
   group: "track",
@@ -23,6 +14,7 @@ const format_change = {
       tag: "span.format-change",
       getAttrs(dom) {
         return {
+          id: dom.dataset.id,
           user: parseInt(dom.dataset.user),
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date),
@@ -36,6 +28,7 @@ const format_change = {
     return [
       "span",
       {
+        "data-id": node.attrs.id,
         class: `format-change user-${node.attrs.user}`,
         "data-user": node.attrs.user,
         "data-username": node.attrs.username,
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
index 365ccc3c52806b747bad3fe069aa6593c5c59dd5..04f202eae6b6bff73e231b963086de9439bdd172 100644
--- a/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/insertionMark.js
@@ -1,17 +1,10 @@
 const insertion = {
   attrs: {
-    user: {
-      default: 0
-    },
-    username: {
-      default: ""
-    },
-    date: {
-      default: 0
-    },
-    approved: {
-      default: true
-    }
+    id: { default: "" },
+    user: { default: 0 },
+    username: { default: "" },
+    date: { default: 0 },
+    approved: { default: true }
   },
   inclusive: false,
   group: "track",
@@ -20,6 +13,7 @@ const insertion = {
       tag: "span.insertion",
       getAttrs(dom) {
         return {
+          id: dom.dataset.id,
           user: parseInt(dom.dataset.user),
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date),
@@ -32,6 +26,7 @@ const insertion = {
       tag: "span.approved-insertion",
       getAttrs(dom) {
         return {
+          "data-id": node.attrs.id,
           user: parseInt(dom.dataset.user),
           username: dom.dataset.username,
           date: parseInt(dom.dataset.date),
diff --git a/wax-prosemirror-services/src/SchemaService/DefaultSchema.js b/wax-prosemirror-services/src/SchemaService/DefaultSchema.js
index 88b4f88c11c767cfa005f0eb18c9de88ae13ec90..b711dab33bb94612f7b2243b8535a53eea8ef9a7 100644
--- a/wax-prosemirror-services/src/SchemaService/DefaultSchema.js
+++ b/wax-prosemirror-services/src/SchemaService/DefaultSchema.js
@@ -21,6 +21,7 @@ export default {
       group: "block",
       content: "inline*",
       attrs: {
+        id: { default: "" },
         class: { default: "paragraph" },
         track: { default: [] }
       },
@@ -29,6 +30,7 @@ export default {
           tag: "p.paragraph",
           getAttrs(dom) {
             return {
+              id: hook.dom.dataset.id,
               class: dom.getAttribute("class"),
               track: SchemaHelpers.parseTracks(dom.dataset.track)
             };
diff --git a/wax-prosemirror-utilities/src/schema/SchemaHelpers.js b/wax-prosemirror-utilities/src/schema/SchemaHelpers.js
index fc773c2db35005ac17ae27a63a9b1ede15b24e34..b141d234eee5a16dccf1af389130537f66035dde 100644
--- a/wax-prosemirror-utilities/src/schema/SchemaHelpers.js
+++ b/wax-prosemirror-utilities/src/schema/SchemaHelpers.js
@@ -40,6 +40,7 @@ const parseTracks = str => {
 const blockLevelToDOM = node => {
   const attrs = node.attrs.track.length
     ? {
+        "data-id": node.attrs.id,
         class: node.attrs.class,
         "data-track": JSON.stringify(node.attrs.track)
       }