diff --git a/pocketbook/commands/list.py b/pocketbook/commands/list.py
index 8a8d8c1..7db9d6e 100644
--- a/pocketbook/commands/list.py
+++ b/pocketbook/commands/list.py
@@ -1,5 +1,5 @@
 from fnmatch import fnmatch
-
+import warnings
 
 def _should_display(item, patterns):
     return any([fnmatch(item, p) for p in patterns])
@@ -11,6 +11,9 @@ def run_list(args):
     from pocketbook.table import Table
     from pocketbook.utils import create_api, get_balance, get_stake, token_amount
 
+    # the latest version of SDK will generate warning because we are using the staking API
+    warnings.simplefilter('ignore')
+
     address_book = AddressBook()
     key_store = KeyStore()
     keys = key_store.list_keys()
diff --git a/pocketbook/commands/transfer.py b/pocketbook/commands/transfer.py
index d88e64c..853afd5 100644
--- a/pocketbook/commands/transfer.py
+++ b/pocketbook/commands/transfer.py
@@ -85,10 +85,25 @@ def run_transfer(args):
     tx = TokenTxFactory.transfer(Address(from_address), destination, amount, 0, signers)
     tx.charge_rate = charge_rate
     tx.charge_limit = required_ops
+    api.set_validity_period(tx)
     for entity in signers:
         tx.sign(entity)
 
+    tx_digest = api.submit_signed_tx(tx)
+    print('TX: 0x{} submitted'.format(tx_digest))
+
     # submit the transaction
-    print('Submitting TX...')
-    api.sync(api.submit_signed_tx(tx))
-    print('Submitting TX...complete')
+    print('Waiting for transaction to be confirmed...')
+    api.sync(tx_digest)
+    print('Waiting for transaction to be confirmed...complete')
+
+    # determine if there is a block explorer link to be printed
+    explorer_link = None
+    if args.network == 'mainnet':
+        explorer_link = 'https://explore.fetch.ai/transactions/0x{}'.format(tx_digest)
+    elif args.network == 'testnet':
+        explorer_link = 'https://explore-testnet.fetch.ai/transactions/0x{}'.format(tx_digest)
+
+    if explorer_link is not None:
+        print()
+        print('See {} for more details'.format(explorer_link))
\ No newline at end of file
diff --git a/setup.py b/setup.py
index ab98625..b457b8d 100644
--- a/setup.py
+++ b/setup.py
@@ -32,7 +32,7 @@ setup(
         'Programming Language :: Python :: 3.7',
     ],
     install_requires=[
-        'fetchai-ledger-api==1.0.0',
+        'fetchai-ledger-api==1.0.1',
         'toml',
         'colored',
     ],

Pocketbook transfer to show transaction ID
It would be great if doing a transfer using pocketbook resulted in the transaction ID being posted so that it can be fed into the block-explorer, and also sent to people as "verification" of a transaction being sent.

diff --git a/tests/commands/test_transfer.py b/tests/commands/test_transfer.py
index 17dfc0f..88d8665 100644
--- a/tests/commands/test_transfer.py
+++ b/tests/commands/test_transfer.py
@@ -65,6 +65,7 @@ class TransferCommandUnitTests(unittest.TestCase):
                                                        [person1.entity])
         self.assertEqual(tx.charge_rate, 1)
         self.assertEqual(tx.charge_limit, 1)
+        api.set_validity_period.assert_called_once_with(tx)
         tx.sign.assert_called_with(person1.entity)
 
         # submission of the transaction
@@ -118,6 +119,7 @@ class TransferCommandUnitTests(unittest.TestCase):
                                                        [person1.entity])
         self.assertEqual(tx.charge_rate, 2)
         self.assertEqual(tx.charge_limit, 1)
+        api.set_validity_period.assert_called_once_with(tx)
         tx.sign.assert_called_with(person1.entity)
 
         # submission of the transaction
@@ -170,6 +172,7 @@ class TransferCommandUnitTests(unittest.TestCase):
                                                        [person1.entity])
         self.assertEqual(tx.charge_rate, 1)
         self.assertEqual(tx.charge_limit, 1)
+        api.set_validity_period.assert_called_once_with(tx)
         tx.sign.assert_called_with(person1.entity)
 
         # submission of the transaction
@@ -226,6 +229,7 @@ class TransferCommandUnitTests(unittest.TestCase):
                                                        [person1.entity])
         self.assertEqual(tx.charge_rate, 1)
         self.assertEqual(tx.charge_limit, 1)
+        api.set_validity_period.assert_called_once_with(tx)
         tx.sign.assert_called_with(person1.entity)
 
         # submission of the transaction

pip install -e .[dev]
parse_log_pytest
pytest
coverage pytest flake8 check-manifest
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
base58==2.0.0
build==0.9.0
certifi==2021.5.30
chardet==3.0.4
check-manifest==0.48
colored==1.4.4
coverage==6.2
ecdsa==0.15
fetchai-ledger-api==1.0.0
flake8==5.0.4
idna==2.8
importlib-metadata==4.2.0
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
lark-parser==0.8.1
mccabe==0.7.0
more-itertools @ file:///tmp/build/80754af9/more-itertools_1637733554872/work
msgpack==0.6.2
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
pep517==0.13.1
pluggy @ file:///tmp/build/80754af9/pluggy_1615976315926/work
-e git+https://github.com/fetchai/tools-pocketbook.git@8dbcabfed3ace459251e0e91afaa9641a71087d4#egg=pocketbook
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pyaes==1.6.1
pycodestyle==2.9.1
pyflakes==2.5.0
pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
pytest==6.2.4
requests==2.22.0
semver==2.9.0
six==1.17.0
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
tomli==1.2.3
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
urllib3==1.25.11
zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work

name: tools-pocketbook
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=21.4.0=pyhd3eb1b0_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - importlib_metadata=4.8.1=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd3eb1b0_0
  - pip=21.2.2=py36h06a4308_0
  - pluggy=0.13.1=py36h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pytest=6.2.4=py36h06a4308_2
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd3eb1b0_0
  - typing_extensions=4.1.1=pyh06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - base58==2.0.0
      - build==0.9.0
      - chardet==3.0.4
      - check-manifest==0.48
      - colored==1.4.4
      - coverage==6.2
      - ecdsa==0.15
      - fetchai-ledger-api==1.0.0
      - flake8==5.0.4
      - idna==2.8
      - importlib-metadata==4.2.0
      - lark-parser==0.8.1
      - mccabe==0.7.0
      - msgpack==0.6.2
      - pep517==0.13.1
      - pyaes==1.6.1
      - pycodestyle==2.9.1
      - pyflakes==2.5.0
      - requests==2.22.0
      - semver==2.9.0
      - six==1.17.0
      - tomli==1.2.3
      - urllib3==1.25.11
prefix: /opt/conda/envs/tools-pocketbook

tests/commands/test_transfer.py::TransferCommandUnitTests::test_multisig_transfer tests/commands/test_transfer.py::TransferCommandUnitTests::test_transfer_to_addr_dest tests/commands/test_transfer.py::TransferCommandUnitTests::test_transfer_to_key_dest tests/commands/test_transfer.py::TransferCommandUnitTests::test_transfer_to_new_dest
tests/commands/test_transfer.py::TransferCommandUnitTests::test_error_case_with_bad_args tests/commands/test_transfer.py::TransferCommandUnitTests::test_error_when_from_field_is_invalid tests/commands/test_transfer.py::TransferCommandUnitTests::test_error_when_signer_not_present
setup.py pocketbook/commands/transfer.py pocketbook/commands/list.py
setup.py pocketbook/commands/transfer.py pocketbook/commands/list.py