diff --git a/.github/workflows/check_pre-merge_develop.yml b/.github/workflows/check_pre-merge_develop.yml
index 067392d..4cd79b0 100644
--- a/.github/workflows/check_pre-merge_develop.yml
+++ b/.github/workflows/check_pre-merge_develop.yml
@@ -15,8 +15,8 @@ on:
     - test_ci
 
 env:
-  GITHUB_VERSION: v0.2.3
-  GITHUB_BITCOIN_VERSION: v0.2.3
+  GITHUB_VERSION: v0.2.5
+  GITHUB_BITCOIN_VERSION: v0.2.5
   GITHUB_DOCKER_IMAGE: ghcr.io/cryptogarageinc/elements-testing
   ENTRYPOINT_PATH: /github/workspace/.github/workflows/docker/test_entrypoint.sh
   BITCOIN_ENTRYPOINT_PATH: /github/workspace/.github/workflows/docker/test_bitcoin_entrypoint.sh
@@ -29,19 +29,19 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: ['macos-11', 'macos-12', 'macos-13', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04']
-        py-ver: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
+        os: ['macos-13', 'macos-14', 'macos-15', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04', 'ubuntu-24.04']
+        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
         python-version: ${{ matrix.py-ver }}
     - name: Display Python version
       run: python -c "import sys; print(sys.version)"
     - name: Install setuptools
-      if: ${{ matrix.py-ver == '3.12' }}
+      if: ${{ matrix.py-ver == '3.12' || matrix.py-ver == '3.13' }}
       run: pip install --user setuptools
     - name: build
       run: python setup.py build
@@ -62,32 +62,27 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: ['macos-11', 'macos-12', 'macos-13', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04']
-        py-ver: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
+        os: ['macos-13', 'macos-14', 'macos-15', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04', 'ubuntu-24.04']
+#        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
+        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9']
         include:
-          - os: windows-2019
-            py-ver: 'pypy-3.8'
-            package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy38\site-packages'
           - os: windows-2019
             py-ver: 'pypy-3.9'
             package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy39\site-packages'
-          - os: windows-2019
-            py-ver: 'pypy-3.10'
-            package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy310\site-packages'
-          - os: windows-2022
-            py-ver: 'pypy-3.8'
-            package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy38\site-packages'
+#          - os: windows-2019
+#            py-ver: 'pypy-3.10'
+#            package-path: 'c:\users\runneradmin\appdata\roaming\Python\PyPy310\site-packages'
           - os: windows-2022
             py-ver: 'pypy-3.9'
             package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy39\site-packages'
-          - os: windows-2022
-            py-ver: 'pypy-3.10'
-            package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy310\site-packages'
+#          - os: windows-2022
+#            py-ver: 'pypy-3.10'
+#            package-path: 'c:\users\runneradmin\appdata\roaming\Python\PyPy310\site-packages'
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
         python-version: ${{ matrix.py-ver }}
     - name: Display Python version
@@ -95,7 +90,7 @@ jobs:
     - name: install pip
       run: python -m pip install -U pip
     - name: Install setuptools
-      if: ${{ matrix.py-ver == '3.12' }}
+      if: ${{ matrix.py-ver == '3.12' || matrix.py-ver == '3.13' }}
       run: pip install --user setuptools
     - name: install
       run: pip install --user .
@@ -114,10 +109,10 @@ jobs:
   elements-e2e-test:
     timeout-minutes: 40
     name: elements e2e test
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: e2e-test
       run: |
         docker login docker.pkg.github.com -u owner -p ${{ secrets.GITHUB_TOKEN }}
@@ -127,10 +122,10 @@ jobs:
   bitcoin-e2e-test:
     timeout-minutes: 20
     name: bitcoin e2e test
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: e2e-test
       run: |
         docker login docker.pkg.github.com -u owner -p ${{ secrets.GITHUB_TOKEN }}
@@ -141,7 +136,7 @@ jobs:
     name: doxygen-ubuntu
     runs-on: ubuntu-22.04
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: install_doxygen
       run: sudo apt install doxygen graphviz
     - name: doxygen_check
diff --git a/.github/workflows/check_pre-merge_master.yml b/.github/workflows/check_pre-merge_master.yml
index 0150264..d72f54a 100644
--- a/.github/workflows/check_pre-merge_master.yml
+++ b/.github/workflows/check_pre-merge_master.yml
@@ -16,8 +16,8 @@ on:
     - stable_v*
 
 env:
-  GITHUB_VERSION: v0.2.3
-  GITHUB_BITCOIN_VERSION: v0.2.3
+  GITHUB_VERSION: v0.2.5
+  GITHUB_BITCOIN_VERSION: v0.2.5
   GITHUB_DOCKER_IMAGE: ghcr.io/cryptogarageinc/elements-testing
   ENTRYPOINT_PATH: /github/workspace/.github/workflows/docker/test_entrypoint.sh
   BITCOIN_ENTRYPOINT_PATH: /github/workspace/.github/workflows/docker/test_bitcoin_entrypoint.sh
@@ -30,19 +30,19 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: ['macos-11', 'macos-12', 'macos-13', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04']
-        py-ver: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
+        os: ['macos-13', 'macos-14', 'macos-15', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04', 'ubuntu-24.04']
+        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
         python-version: ${{ matrix.py-ver }}
     - name: Display Python version
       run: python -c "import sys; print(sys.version)"
     - name: Install setuptools
-      if: ${{ matrix.py-ver == '3.12' }}
+      if: ${{ matrix.py-ver == '3.12' || matrix.py-ver == '3.13' }}
       run: pip install --user setuptools
     - name: build
       run: python setup.py build
@@ -63,22 +63,16 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: ['macos-11', 'macos-12', 'macos-13', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04']
-#        py-ver: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
-        py-ver: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.8', 'pypy-3.9']
+        os: ['macos-13', 'macos-14', 'macos-15', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04', 'ubuntu-24.04']
+#        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
+        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9']
         include:
-          - os: windows-2019
-            py-ver: 'pypy-3.8'
-            package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy38\site-packages'
           - os: windows-2019
             py-ver: 'pypy-3.9'
             package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy39\site-packages'
 #          - os: windows-2019
 #            py-ver: 'pypy-3.10'
 #            package-path: 'c:\users\runneradmin\appdata\roaming\Python\PyPy310\site-packages'
-          - os: windows-2022
-            py-ver: 'pypy-3.8'
-            package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy38\site-packages'
           - os: windows-2022
             py-ver: 'pypy-3.9'
             package-path: 'c:\users\runneradmin\appdata\roaming\pypy\pypy39\site-packages'
@@ -87,9 +81,9 @@ jobs:
 #            package-path: 'c:\users\runneradmin\appdata\roaming\Python\PyPy310\site-packages'
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
         python-version: ${{ matrix.py-ver }}
     - name: Display Python version
@@ -97,7 +91,7 @@ jobs:
     - name: install pip
       run: python -m pip install -U pip
     - name: Install setuptools
-      if: ${{ matrix.py-ver == '3.12' }}
+      if: ${{ matrix.py-ver == '3.12' || matrix.py-ver == '3.13' }}
       run: pip install --user setuptools
     - name: install
       run: pip install --user .
@@ -116,10 +110,10 @@ jobs:
   elements-e2e-test:
     timeout-minutes: 40
     name: elements e2e test
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: e2e-test
       run: |
         docker login docker.pkg.github.com -u owner -p ${{ secrets.GITHUB_TOKEN }}
@@ -129,10 +123,10 @@ jobs:
   bitcoin-e2e-test:
     timeout-minutes: 20
     name: bitcoin e2e test
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: e2e-test
       run: |
         docker login docker.pkg.github.com -u owner -p ${{ secrets.GITHUB_TOKEN }}
@@ -143,7 +137,7 @@ jobs:
     name: doxygen-ubuntu
     runs-on: ubuntu-22.04
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: install_doxygen
       run: sudo apt install doxygen graphviz
     - name: doxygen_check
diff --git a/.github/workflows/check_pre-merge_sprint.yml b/.github/workflows/check_pre-merge_sprint.yml
index 6c03c10..9a54bc4 100644
--- a/.github/workflows/check_pre-merge_sprint.yml
+++ b/.github/workflows/check_pre-merge_sprint.yml
@@ -27,30 +27,32 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: ['macos-11', 'macos-12', 'macos-13', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04']
-        py-ver: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.8', 'pypy-3.9', 'pypy-3.10']
+        os: ['macos-13', 'macos-14', 'macos-15', 'windows-2019', 'windows-2022', 'ubuntu-20.04', 'ubuntu-22.04', 'ubuntu-24.04']
+        py-ver: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9', 'pypy-3.10']
         exclude:
-          - os: macos-11
-            py-ver: '3.9'
-          - os: macos-11
+          - os: macos-14
             py-ver: '3.10'
+          - os: macos-14
+            py-ver: '3.11'
+          - os: macos-14
+            py-ver: '3.12'
           - os: windows-2019
-            py-ver: '3.9'
+            py-ver: '3.10'
           - os: windows-2019
             py-ver: 'pypy-3.9'
           - os: windows-2022
-            py-ver: '3.9'
+            py-ver: '3.10'
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
         python-version: ${{ matrix.py-ver }}
     - name: Display Python version
       run: python -c "import sys; print(sys.version)"
     - name: Install setuptools
-      if: ${{ matrix.py-ver == '3.12' }}
+      if: ${{ matrix.py-ver == '3.12' || matrix.py-ver == '3.13' }}
       run: pip install --user setuptools
     - name: build
       run: python setup.py build
@@ -67,10 +69,10 @@ jobs:
   elements-e2e-test:
     timeout-minutes: 40
     name: elements e2e test
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: e2e-test
       run: |
         docker login docker.pkg.github.com -u owner -p ${{ secrets.GITHUB_TOKEN }}
@@ -80,10 +82,10 @@ jobs:
   bitcoin-e2e-test:
     timeout-minutes: 20
     name: bitcoin e2e test
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
 
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: e2e-test
       run: |
         docker login docker.pkg.github.com -u owner -p ${{ secrets.GITHUB_TOKEN }}
@@ -94,7 +96,7 @@ jobs:
     name: doxygen-ubuntu
     runs-on: ubuntu-22.04
     steps:
-    - uses: actions/checkout@v3
+    - uses: actions/checkout@v4
     - name: install_doxygen
       run: sudo apt install doxygen graphviz
     - name: doxygen_check
diff --git a/.github/workflows/code_scanner.yml b/.github/workflows/code_scanner.yml
index ca5782a..aefdfd6 100644
--- a/.github/workflows/code_scanner.yml
+++ b/.github/workflows/code_scanner.yml
@@ -25,7 +25,7 @@ on:
 jobs:
   analyze-CodeQL:
     name: CodeQL
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
 
     strategy:
       fail-fast: false
@@ -37,38 +37,38 @@ jobs:
         # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
 
     steps:
-    - name: Checkout repository
-      uses: actions/checkout@v3
-      with:
-        # We must fetch at least the immediate parents so that if this is a pull request then we can checkout the head.
-        fetch-depth: 2
-
-    # Initializes the CodeQL tools for scanning.
-    - name: Initialize CodeQL
-      uses: github/codeql-action/init@v2
-      with:
-        languages: ${{ matrix.language }}
-        # If you wish to specify custom queries, you can do so here or in a config file.
-        # By default, queries listed here will override any specified in a config file. 
-        # Prefix the list here with "+" to use these queries and those in the config file.
-        # queries: ./path/to/local/query, your-org/your-repo/queries@main
-
-    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
-    # If this step fails, then you should remove it and run the build manually (see below)
-    - name: Autobuild
-      uses: github/codeql-action/autobuild@v2
-
-    # ℹ️ Command-line programs to run using the OS shell.
-    #  https://git.io/JvXDl
-
-    # ️ If the Autobuild fails above, remove it and uncomment the following three lines and modify them (or add more) to build your code if your project uses a compiled language
-
-    #- run: |
-    #   make bootstrap
-    #   make release
-
-    - name: Perform CodeQL Analysis
-      uses: github/codeql-action/analyze@v2
+      - name: Checkout repository
+        uses: actions/checkout@v4
+        with:
+          # We must fetch at least the immediate parents so that if this is a pull request then we can checkout the head.
+          fetch-depth: 2
+
+      # Initializes the CodeQL tools for scanning.
+      - name: Initialize CodeQL
+        uses: github/codeql-action/init@v3
+        with:
+          languages: ${{ matrix.language }}
+          # If you wish to specify custom queries, you can do so here or in a config file.
+          # By default, queries listed here will override any specified in a config file.
+          # Prefix the list here with "+" to use these queries and those in the config file.
+          # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+      # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
+      # If this step fails, then you should remove it and run the build manually (see below)
+      - name: Autobuild
+        uses: github/codeql-action/autobuild@v3
+
+      # ℹ️ Command-line programs to run using the OS shell.
+      #  https://git.io/JvXDl
+
+      # ️ If the Autobuild fails above, remove it and uncomment the following three lines and modify them (or add more) to build your code if your project uses a compiled language
+
+      #- run: |
+      #   make bootstrap
+      #   make release
+
+      - name: Perform CodeQL Analysis
+        uses: github/codeql-action/analyze@v3
 
   OSSAR-Scan:
     # OSSAR runs on windows-latest.
@@ -78,7 +78,7 @@ jobs:
     steps:
       # Checkout your code repository to scan
     - name: Checkout repository
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
       with:
         # We must fetch at least the immediate parents so that if this is
         # a pull request then we can checkout the head.
@@ -96,17 +96,17 @@ jobs:
     # For self-hosted runners, ensure dotnet version 3.1.201 or later is installed by including this action:
 
     - name: Install .NET
-      uses: actions/setup-dotnet@v3
+      uses: actions/setup-dotnet@v4
       with:
         dotnet-version: '6.0.x'
 
       # Run open source static analysis tools
     - name: Run OSSAR
-      uses: github/ossar-action@v1
+      uses: github/ossar-action@v2.0.0
       id: ossar
 
       # Upload results to the Security tab
     - name: Upload OSSAR results
-      uses: github/codeql-action/upload-sarif@v2
+      uses: github/codeql-action/upload-sarif@v3
       with:
         sarif_file: ${{ steps.ossar.outputs.sarifFile }}
diff --git a/.github/workflows/create_release-and-upload.yml b/.github/workflows/create_release-and-upload.yml
index c942e34..b04d696 100644
--- a/.github/workflows/create_release-and-upload.yml
+++ b/.github/workflows/create_release-and-upload.yml
@@ -8,11 +8,11 @@ on:
 jobs:
   create_releases:
     name: create-releases
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-24.04
 
     steps:
     - name: checkout
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Get the version
       id: get_version
       run: echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
@@ -23,7 +23,7 @@ jobs:
       run: python ./tools/version_checker.py ${version}
     - name: Create Release
       id: create_release
-      uses: softprops/action-gh-release@v1
+      uses: softprops/action-gh-release@v2
       with:
         name: Release ${{ steps.get_version.outputs.VERSION }}
         body: |
@@ -37,20 +37,20 @@ jobs:
     name: upload-sdist
     needs: create_releases
     timeout-minutes: 20
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-24.04
 
     steps:
     - name: checkout
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
-        python-version: 3.8
+        python-version: 3.9
     - name: create sdist
       id: create_sdist
       run: python setup.py sdist --formats=gztar,zip
     - name: Upload sdist
-      uses: softprops/action-gh-release@v1
+      uses: softprops/action-gh-release@v2
       with:
         files: |
           ./dist/*.tar.gz
@@ -64,23 +64,26 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        os: [macos-11, windows-2019, ubuntu-20.04]
+        os: [macos-13, macos-14, windows-2019, ubuntu-20.04]
         include:
-          - os: macos-11
-            py-ver: 3.8
-            pl-name: macosx_11_0_x86_64
+          - os: macos-13
+            py-ver: 3.9
+            pl-name: macosx_13_0_x86_64
+          - os: macos-14
+            py-ver: 3.9
+            pl-name: macosx_14_0_arm64
           - os: ubuntu-20.04
-            py-ver: 3.8
+            py-ver: 3.9
             pl-name: linux_x86_64
           - os: windows-2019
-            py-ver: 3.8
+            py-ver: 3.9
             pl-name: win_amd64
 
     steps:
     - name: checkout
-      uses: actions/checkout@v3
+      uses: actions/checkout@v4
     - name: Set up Python
-      uses: actions/setup-python@v4
+      uses: actions/setup-python@v5
       with:
         python-version: ${{ matrix.py-ver }}
     - name: Get the version
@@ -103,6 +106,6 @@ jobs:
         mv $WHEEL_NAME ${{ steps.asset_name.outputs.ASSET_NAME }}
       shell: bash
     - name: Upload wheel
-      uses: softprops/action-gh-release@v1
+      uses: softprops/action-gh-release@v2
       with:
         files: ${{ steps.asset_name.outputs.ASSET_NAME }}