diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 9ac0aecde435f92febd8cdd552f8c75fb29217a2..32a68b2a786574e0788cc10d3b9b1ca8c30aaeb0 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -20,7 +20,7 @@ repos:
     - id: isort
       args: ["--profile", "black"]
 -   repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.13.0
+    rev: v1.14.1
     hooks:
     - id: mypy
       args:
@@ -31,7 +31,7 @@ repos:
     hooks:
     - id: pylint
 -   repo: https://github.com/asottile/pyupgrade
-    rev: v3.19.0
+    rev: v3.19.1
     hooks:
     - id: pyupgrade
       args: [--py39-plus]
@@ -53,6 +53,6 @@ repos:
         - "--project"
         - "clients/python/duniterpy"
 -   repo: https://github.com/executablebooks/mdformat
-    rev: 0.7.18
+    rev: 0.7.21
     hooks:
       - id: mdformat
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 46d10b65d98a0e4a92fd1af2113bdf676dd94d9c..4917fd290d7fee57d92ed595fd10b6b585b56895 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -334,7 +334,7 @@ ______________________________________________________________________
 
 ### CI/CD
 
-- #66, !93  Migrate to [Poetry](https://python-poetry.org/) (build and development environment)
+- #66, !93 Migrate to [Poetry](https://python-poetry.org/) (build and development environment)
 
 ______________________________________________________________________
 
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index aae54bcd7d2a942e4ff849ed6eb4aee887ff3eff..cbf8ed15170b44b97e04c12e808b5a6f14cf28a1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -76,7 +76,7 @@ Check out #169 for more details.
 
 We are using [`pytest` framework](https://docs.pytest.org/).
 
-- Run all tests  with:
+- Run all tests with:
 
 ```bash
 duniterpy> poetry run pytest
diff --git a/pyproject.toml b/pyproject.toml
index d4a4d1d4d03f1c3fe6be203bf332968a60d7437e..955bc13132c6838aed01a40ae267d8081e5d6dd6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,31 +1,38 @@
-[tool]
-[tool.poetry]
+[project]
 name = "duniterpy"
 version = "1.2.0"
 description = "Python library for developers of Duniter clients"
-authors = ["inso <insomniak.fr@gmail.com>", "canercandan", "s_b"]
-maintainers = ["vit <vit@free.fr>", "Moul <moul@moul.re>"]
+license = { text = "GPL-3.0-or-later" }
 readme = "README.md"
-license = "GPL-3.0-or-later"
+requires-python = ">=3.9,<4.0"
+authors = [
+    { name = "inso", email = "insomniak.fr@gmail.com"},
+    { name = "canercandan"},
+]
+maintainers = [
+    { name = "vit, Vincent Texier", email = "vit@free.fr"},
+    { name = "Moul, Maël Azimi", email = "moul@moul.re"}
+]
+keywords = ["g1", "duniter", "cryptocurrency", "librecurrency", "library"]
+dynamic = ["classifiers", "dependencies"]
+
+[tool.urls]
 repository = "https://git.duniter.org/clients/python/duniterpy"
 documentation = "https://clients.pages.duniter.org/python/duniterpy/index.html"
-urls = { Changelog = "https://git.duniter.org/clients/python/duniterpy/-/blob/main/CHANGELOG.md" }
-keywords = ["g1", "duniter", "cryptocurrency", "librecurrency", "library"]
-include = ["examples/*.py"]
+"changelog" = "https://git.duniter.org/clients/python/duniterpy/-/blob/main/CHANGELOG.md"
+
+[tool.poetry]
+requires-poetry = ">=2.0"
+include = [{path="examples/*.py", format=["sdist", "wheel"]}]
 classifiers = [
     "Development Status :: 5 - Production/Stable",
     "Natural Language :: English",
     "Operating System :: OS Independent",
-    "Topic :: Software Development :: Libraries",
+    "Topic :: Software Development :: Libraries :: Python Modules",
     "Intended Audience :: Developers",
 ]
 
-[build-system]
-requires = ["poetry-core>=1.0.0"]
-build-backend = "poetry.core.masonry.api"
-
 [tool.poetry.dependencies]
-python = "^3.9.0"
 graphql-core = "^3.2.3"
 websocket-client = "^1.5.2"
 jsonschema = "^4.17.3"
@@ -37,7 +44,7 @@ mnemonic = "^0.20"
 
 [tool.poetry.group.test.dependencies]
 pytest = "^8.3.3"
-pytest-cov = "^5.0.0"
+pytest-cov = "^6.0.0"
 pytest-sugar = "^1.0.0"
 pytest-clarity = "^1.0.1"
 
@@ -48,6 +55,10 @@ optional = true
 sphinx = "^6.2.1"
 sphinx_rtd_theme = "^1.2.0"
 
+[build-system]
+requires = ["poetry-core>=2.0.0,<3.0.0"]
+build-backend = "poetry.core.masonry.api"
+
 [tool.isort]
 profile = "black"
 src_paths = ["duniterpy", "tests", "examples"]