diff --git a/packages/binary/transaction/test/transaction_test.go b/packages/binary/transaction/test/transaction_test.go
index a5443cd193d706f4229a8ca59ca8909a8987f966..4ff8aa67b0175ffced0d46754dbbbb5a766a24dc 100644
--- a/packages/binary/transaction/test/transaction_test.go
+++ b/packages/binary/transaction/test/transaction_test.go
@@ -22,6 +22,49 @@ import (
 	"github.com/stretchr/testify/assert"
 )
 
+func BenchmarkVerifyValueTransactions(b *testing.B) {
+	keyPairOfSourceAddress := ed25119.GenerateKeyPair()
+	keyPairOfTargetAddress := ed25119.GenerateKeyPair()
+
+	transactions := make([][]byte, b.N)
+	for i := 0; i < b.N; i++ {
+		tx := transaction.New(transaction.EmptyId, transaction.EmptyId, identity.Generate(), valuetransfer.New().
+			AddInput(transfer.NewHash("test"), address.FromPublicKey(keyPairOfSourceAddress.PublicKey)).
+			AddOutput(address.FromPublicKey(keyPairOfTargetAddress.PublicKey), coloredcoins.NewColoredBalance(coloredcoins.NewColor("IOTA"), 12)).
+			Sign(keyPairOfSourceAddress))
+
+		if marshaledTransaction, err := tx.MarshalBinary(); err != nil {
+			b.Error(err)
+		} else {
+			transactions[i] = marshaledTransaction
+		}
+	}
+
+	var wg sync.WaitGroup
+
+	b.ResetTimer()
+
+	for i := 0; i < b.N; i++ {
+		wg.Add(1)
+
+		currentIndex := i
+		if err := ants.Submit(func() {
+			if tx, err := transaction.FromBytes(transactions[currentIndex]); err != nil {
+				b.Error(err)
+			} else {
+				tx.VerifySignature()
+				tx.GetPayload().(*valuetransfer.ValueTransfer).VerifySignatures()
+			}
+
+			wg.Done()
+		}); err != nil {
+			b.Error(err)
+		}
+	}
+
+	wg.Wait()
+}
+
 func BenchmarkVerifySignature(b *testing.B) {
 	transactions := make([]*transaction.Transaction, b.N)
 	for i := 0; i < b.N; i++ {