diff --git a/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNum.java b/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNum.java
index 480138b..083464f 100644
--- a/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNum.java
+++ b/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNum.java
@@ -65,6 +65,26 @@
     }
 
     /**
+     * Gets an instance for specified string.
+     *
+     * @param str parsed result must not be {@link #ZERO}
+     * @return SeqNum
+     */
+    public static SeqNum valueOf(final String str) {
+        return valueOf(UnsignedLongs.decode(str));
+    }
+
+    /**
+     * Gets an instance for specified string.
+     *
+     * @param str string representation of unsigned long
+     * @return SeqNum
+     */
+    public static SeqNum anyValueOf(final String str) {
+        return anyValueOf(UnsignedLongs.decode(str));
+    }
+
+    /**
      * Gets the next sequence number.
      * <p>
      * WARN: This is not a atomic sequencer,
diff --git a/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNumTest.java b/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNumTest.java
index 9ae7897..a37ee8d 100644
--- a/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNumTest.java
+++ b/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/SeqNumTest.java
@@ -154,4 +154,24 @@
         assertThat(negOne.compareTo(negOne.step(Long.MAX_VALUE).next().next()), greaterThan(0));
         assertThat(negOne.step(Long.MAX_VALUE).next().next().compareTo(negOne), lessThan(0));
     }
+
+    /**
+     * Tests parsing decimal unsigned long.
+     */
+    @Test
+    public void testDecStr() {
+        final SeqNum ref = SeqNum.valueOf(Long.MAX_VALUE + 1);
+        assertEquals(ref, SeqNum.valueOf("9223372036854775808"));
+        assertEquals(ref, SeqNum.anyValueOf("9223372036854775808"));
+    }
+
+    /**
+     * Tests parsing hexadecimal unsigned long.
+     */
+    @Test
+    public void testHexStr() {
+        final SeqNum ref = SeqNum.valueOf(Long.MAX_VALUE + 1);
+        assertEquals(ref, SeqNum.valueOf("0x8000000000000000"));
+        assertEquals(ref, SeqNum.anyValueOf("0x8000000000000000"));
+    }
 }
