diff --git a/silkaj/tx.py b/silkaj/tx.py
index 877e832df71f4fd5a920c5df6c330cf13269a293..7360d37137b1ced4831b898137fe9e32900c5024 100644
--- a/silkaj/tx.py
+++ b/silkaj/tx.py
@@ -144,6 +144,25 @@ async def send_transaction(
         await client.close()
 
 
+def compute_amounts(amounts, multiplicator):
+    """
+    Computes the amounts(UD) and returns a list.
+    Multiplicator should be either CENT_MULT_TO_UNIT or UD_Value.
+    If relative amount, check that amount is superior to minimal amount.
+    """
+    # Create amounts list
+    amounts_list = list()
+    for amount in amounts:
+        computed_amount = amount * multiplicator
+        # check if relative amounts are high enough
+        if (multiplicator != CENT_MULT_TO_UNIT) and (
+            computed_amount < (MINIMAL_TX_AMOUNT * CENT_MULT_TO_UNIT)
+        ):
+            message_exit("Error: amount {0} is too low.".format(amount))
+        amounts_list.append(round(computed_amount))
+    return amounts_list
+
+
 async def transaction_amount(amount, amountUD, allSources):
     """
     Return transaction amount
diff --git a/tests/test_unit_tx.py b/tests/test_unit_tx.py
index eca98c118fb13dcf87cb313de5c2984ea6036293..770e3967dbfcc6823835d13fe7e74ba1942088b9 100644
--- a/tests/test_unit_tx.py
+++ b/tests/test_unit_tx.py
@@ -1,5 +1,5 @@
 import pytest
-from silkaj.tx import truncBase, transaction_confirmation
+from silkaj.tx import truncBase, transaction_confirmation, compute_amounts
 from silkaj.tui import display_pubkey, display_amount
 from silkaj.money import UDValue
 from silkaj.constants import G1_SYMBOL
@@ -161,3 +161,37 @@ async def test_transaction_confirmation(
         comment,
     )
     assert tx == expected
+
+
+# compute_amounts()
+def test_compute_amounts_errors(capsys):
+    trials = (((0.0031, 1), 314),)
+    for trial in trials:
+        # check program exit on error
+        with pytest.raises(SystemExit) as pytest_exit:
+            # read output to check error.
+            compute_amounts(
+                trial[0], trial[1],
+            )
+            expected_error = "Error: amount {0} is too low.".format(trial[0][0])
+            assert capsys.readouterr() == expected_error
+        assert pytest_exit.type == SystemExit
+
+
+def test_compute_amounts():
+    ud_value = 314
+    assert compute_amounts((10.0, 2.0, 0.01, 0.011, 0.019), 100) == [
+        1000,
+        200,
+        1,
+        1,
+        2,
+    ]
+    assert compute_amounts([0.0032], ud_value) == [1]
+    assert compute_amounts([1.00], ud_value) == [314]
+    assert compute_amounts([1.01], ud_value) == [317]
+    assert compute_amounts([1.99], ud_value) == [625]
+    assert compute_amounts([1.001], ud_value) == [314]
+    assert compute_amounts([1.009], ud_value) == [317]
+    # This case will not happen in real use, but this particular function will allow it.
+    assert compute_amounts([0.0099], 100,) == [1]