diff --git a/packages/bitutils/bitmask.go b/packages/bitutils/bitmask.go
deleted file mode 100644
index 64bc50672386cd6b265709782c1c5622b3622a5f..0000000000000000000000000000000000000000
--- a/packages/bitutils/bitmask.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package bitutils
-
-type BitMask byte
-
-func (bitmask BitMask) SetFlag(pos uint) BitMask {
-	return bitmask | (1 << pos)
-}
-
-func (bitmask BitMask) ClearFlag(pos uint) BitMask {
-	return bitmask & ^(1 << pos)
-}
-
-func (bitmask BitMask) HasFlag(pos uint) bool {
-	return (bitmask&(1<<pos) > 0)
-}
diff --git a/packages/bitutils/bitmask_test.go b/packages/bitutils/bitmask_test.go
deleted file mode 100644
index 1d04a895465299f3e6445417a8a2aa7908ef4272..0000000000000000000000000000000000000000
--- a/packages/bitutils/bitmask_test.go
+++ /dev/null
@@ -1,34 +0,0 @@
-package bitutils
-
-import (
-	"testing"
-)
-
-func TestBitmask(t *testing.T) {
-	var b BitMask
-
-	if b.HasFlag(0) {
-		t.Error("flag at pos 0 should not be set")
-	}
-	if b.HasFlag(1) {
-		t.Error("flag at pos 1 should not be set")
-	}
-
-	b = b.SetFlag(0)
-	if !b.HasFlag(0) {
-		t.Error("flag at pos 0 should be set")
-	}
-	b = b.SetFlag(1)
-	if !b.HasFlag(1) {
-		t.Error("flag at pos 1 should be set")
-	}
-
-	b = b.ClearFlag(0)
-	if b.HasFlag(0) {
-		t.Error("flag at pos 0 should not be set")
-	}
-	b = b.ClearFlag(1)
-	if b.HasFlag(1) {
-		t.Error("flag at pos 1 should not be set")
-	}
-}
diff --git a/packages/model/bundle/bundle.go b/packages/model/bundle/bundle.go
index e2e3aa8b4dfb847837ba0d6de8d8a1de0156e936..3c9c6208eb00a25c4e182bfec12c5ad10c50f01c 100644
--- a/packages/model/bundle/bundle.go
+++ b/packages/model/bundle/bundle.go
@@ -6,9 +6,9 @@ import (
 	"sync"
 	"unsafe"
 
-	"github.com/iotaledger/goshimmer/packages/bitutils"
 	"github.com/iotaledger/goshimmer/packages/errors"
 	"github.com/iotaledger/goshimmer/packages/typeutils"
+	"github.com/iotaledger/hive.go/bitmask"
 	"github.com/iotaledger/iota.go/trinary"
 )
 
@@ -116,7 +116,7 @@ func (bundle *Bundle) Marshal() (result []byte) {
 	copy(result[MARSHALED_HASH_START:MARSHALED_HASH_END], typeutils.StringToBytes(bundle.hash))
 	copy(result[MARSHALED_BUNDLE_ESSENCE_HASH_START:MARSHALED_BUNDLE_ESSENCE_HASH_END], typeutils.StringToBytes(bundle.bundleEssenceHash))
 
-	var flags bitutils.BitMask
+	var flags bitmask.BitMask
 	if bundle.isValueBundle {
 		flags = flags.SetFlag(0)
 	}
@@ -161,7 +161,7 @@ func (bundle *Bundle) Unmarshal(data []byte) (err errors.IdentifiableError) {
 	bundle.hash = trinary.Trytes(typeutils.BytesToString(data[MARSHALED_HASH_START:MARSHALED_HASH_END]))
 	bundle.bundleEssenceHash = trinary.Trytes(typeutils.BytesToString(data[MARSHALED_BUNDLE_ESSENCE_HASH_START:MARSHALED_BUNDLE_ESSENCE_HASH_END]))
 
-	flags := bitutils.BitMask(data[MARSHALED_FLAGS_START])
+	flags := bitmask.BitMask(data[MARSHALED_FLAGS_START])
 	if flags.HasFlag(0) {
 		bundle.isValueBundle = true
 	}
diff --git a/packages/model/transactionmetadata/transactionmetadata.go b/packages/model/transactionmetadata/transactionmetadata.go
index 6fd4ab4ecd4cb4747ab825204540b8efbc133821..b86188108c5cb715637b1553b2924972b7741447 100644
--- a/packages/model/transactionmetadata/transactionmetadata.go
+++ b/packages/model/transactionmetadata/transactionmetadata.go
@@ -4,9 +4,9 @@ import (
 	"sync"
 	"time"
 
-	"github.com/iotaledger/goshimmer/packages/bitutils"
 	"github.com/iotaledger/goshimmer/packages/errors"
 	"github.com/iotaledger/goshimmer/packages/typeutils"
+	"github.com/iotaledger/hive.go/bitmask"
 	"github.com/iotaledger/iota.go/trinary"
 )
 
@@ -226,7 +226,7 @@ func (metadata *TransactionMetadata) Marshal() ([]byte, errors.IdentifiableError
 	}
 	copy(marshaledMetadata[MARSHALED_RECEIVED_TIME_START:MARSHALED_RECEIVED_TIME_END], marshaledReceivedTime)
 
-	var booleanFlags bitutils.BitMask
+	var booleanFlags bitmask.BitMask
 	if metadata.solid {
 		booleanFlags = booleanFlags.SetFlag(0)
 	}
@@ -259,7 +259,7 @@ func (metadata *TransactionMetadata) Unmarshal(data []byte) errors.IdentifiableE
 		return ErrUnmarshalFailed.Derive(err, "could not unmarshal the received time")
 	}
 
-	booleanFlags := bitutils.BitMask(data[MARSHALED_FLAGS_START])
+	booleanFlags := bitmask.BitMask(data[MARSHALED_FLAGS_START])
 	if booleanFlags.HasFlag(0) {
 		metadata.solid = true
 	}