diff --git a/README.md b/README.md
index 23a2803ace467e2a5acf4bd2b3dd93339dacab71..a084562f7bbaa1fa01a27cf4db660b195f604080 100644
--- a/README.md
+++ b/README.md
@@ -35,8 +35,8 @@
     - [build-for-arm](./docs/user/build-for-arm.md)
     - [rpc](./docs/user/rpc.md) deploy a permanent ǦDev mirror node
     - [smith](./docs/user/smith.md) deploy a permanent ǦDev validator node
-- [end2end-tests](./end2end-tests/) automated end to end tests written with cucumber 
-- [live-tests](./live-tests/) sanity checks to test the storage of a live chain 
+- [end2end-tests](./end2end-tests/) automated end to end tests written with cucumber
+- [live-tests](./live-tests/) sanity checks to test the storage of a live chain
 
 ## Use
 
@@ -47,7 +47,7 @@ The easiest way is to use the docker image.
 Minimal command to deploy a **temporary** mirror peer:
 
 ```docker
-docker run -it -p9944:9944 -e DUNITER_CHAIN_NAME=gdev duniter/duniter-v2s:v0.3.0 --tmp --execution=Wasm
+docker run -it -p9944:9944 -e DUNITER_CHAIN_NAME=gdev duniter/duniter-v2s:v0.4.0 --tmp --execution=Wasm
 ```
 
 To go further, read [How to deploy a permanent mirror node on ÄžDev network](./docs/user/rpc.md).
@@ -58,7 +58,7 @@ It can be useful to deploy your local blockchain, for instance to have a control
 to develop/test an application that interacts with the blockchain.
 
 ```docker
-docker run -it -p9944:9944 duniter/duniter-v2s:v0.3.0 --tmp
+docker run -it -p9944:9944 duniter/duniter-v2s:v0.4.0 --tmp
 ```
 
 Or use the `docker-compose.yml` at the root of this repository.
@@ -69,8 +69,8 @@ By default, your local blockchain produces a new block every 6 seconds, which is
 
 You can decide when to produce blocks with the cli option `--sealing` which has two modes:
 
-* `--sealing=instant`: produce a block immediately upon receiving a transaction into the transaction pool
-* `--sealing=manual`: produce a block upon receiving an RPC request (method `engine_createBlock`).
+- `--sealing=instant`: produce a block immediately upon receiving a transaction into the transaction pool
+- `--sealing=manual`: produce a block upon receiving an RPC request (method `engine_createBlock`).
 
 ### Autocompletion
 
diff --git a/docker-compose.yml b/docker-compose.yml
index 4d208572fb509749c495bbd6c06179eacbd1953e..c7957b1450582291dc11e88aabaa009f53672af4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -7,7 +7,7 @@ services:
   duniter-v2s:
     container_name: duniter-v2s
     # choose the version of the image here
-    image: duniter/duniter-v2s:v0.3.0
+    image: duniter/duniter-v2s:v0.4.0
     ports:
       # telemetry
       - 9615:9615
diff --git a/docker/compose/gdev-mirror.docker-compose.yml b/docker/compose/gdev-mirror.docker-compose.yml
index d20c95679966fec936baa169c842510d1ded46e3..affaa8e5de3b5ae8498ddc789f7c96260c6b3e2d 100644
--- a/docker/compose/gdev-mirror.docker-compose.yml
+++ b/docker/compose/gdev-mirror.docker-compose.yml
@@ -9,15 +9,14 @@
 # The peer id has to be replaced withe the output of the following command
 #
 # >>> PEER_ID >>>
-# docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/  duniter/duniter-v2s:v0.3.0 key generate-node-key --file /var/lib/duniter/node.key
+# docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/  duniter/duniter-v2s:v0.4.0 key generate-node-key --file /var/lib/duniter/node.key
 # <<<<<<<<<<<<<<<
 
-
 version: "3.4"
 
 services:
   duniter-rpc:
-    image: duniter/duniter-v2s:v0.3.0
+    image: duniter/duniter-v2s:v0.4.0
     restart: unless-stopped
     ports:
       # telemetry
diff --git a/docker/compose/gdev-validator.docker-compose.yml b/docker/compose/gdev-validator.docker-compose.yml
index f944d09cda1838b7a0bde71024a5d98cbd83c386..84a3e3de3b79f81351b4539bf955534fca5ce468 100644
--- a/docker/compose/gdev-validator.docker-compose.yml
+++ b/docker/compose/gdev-validator.docker-compose.yml
@@ -2,7 +2,7 @@ version: "3.4"
 
 services:
   duniter-rpc:
-    image: duniter/duniter-v2s:v0.3.0
+    image: duniter/duniter-v2s:v0.4.0
     restart: unless-stopped
     ports:
       # telemetry
@@ -24,12 +24,12 @@ services:
       # SERVER_DOMAIN should be replaced by a domain name that point on your server
       #
       # The PEER_ID should be replaced by the output of this command:
-      # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.3.0 key generate-node-key --file /var/lib/duniter/node.key
+      # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.4.0 key generate-node-key --file /var/lib/duniter/node.key
       - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}"
       - "--rpc-cors=all"
 
   duniter-validator:
-    image: duniter/duniter-v2s:v0.3.0
+    image: duniter/duniter-v2s:v0.4.0
     restart: unless-stopped
     ports:
       # telemetry
@@ -52,7 +52,7 @@ services:
       # SERVER_DOMAIN should be replaced by a domain name that point on your server
       #
       # The VALIDATOR_PEER_ID should be replaced by the output of this command:
-      # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.3.0 key generate-node-key --file /var/lib/duniter/node.key
+      # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.4.0 key generate-node-key --file /var/lib/duniter/node.key
       - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${VALIDATOR_PEER_ID?VALIDATOR_PEER_ID should be set}"
       - "--rpc-cors=all"
       - "--rpc-methods=Unsafe"
diff --git a/docs/user/rpc.md b/docs/user/rpc.md
index eee02e1d23948888e4d2047d774cf85ee50a03d2..e87be336dc982b7953c0fc04d0465b1df9c6d6d7 100644
--- a/docs/user/rpc.md
+++ b/docs/user/rpc.md
@@ -5,18 +5,21 @@
 ### Duniter part
 
 - Add this docker-compose template on your server:
-[docker/compose/gdev-rpc.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-mirror.docker-compose.yml)
+  [docker/compose/gdev-rpc.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-mirror.docker-compose.yml)
 - Rename the file : `mv gdev-mirror.docker-compose.yml docker-compose.yml`
 - In the same folder, create a `.env` file that defime environment variables `SERVER_DOMAIN` and `PEER_ID`:
+
 ```bash
 SERVER_DOMAIN=YOUR_DOMAIN
 PEER_ID=YOUR_PEER_ID
 ```
 
-Your `PEER_ID` shoud be generated with this command: 
+Your `PEER_ID` shoud be generated with this command:
+
 ```bash
-docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/  duniter/duniter-v2s:v0.3.0 key generate-node-key --file /var/lib/duniter/node.key
+docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/  duniter/duniter-v2s:v0.4.0 key generate-node-key --file /var/lib/duniter/node.key
 ```
+
 - If you have write access errors run in docker-compose.yml folder : `chmod o+rwX -R .`
 - Do `docker compose up -d` to start your node
 
@@ -63,6 +66,7 @@ server {
   }
 }
 ```
+
 and replace `YOUR_DOMAIN` by your domain each time.
 
 - [generate your ssl certificates](https://github.com/acmesh-official/acme.sh) with let's encrypt
diff --git a/docs/user/smith.md b/docs/user/smith.md
index a56ad686c723378363caa603325c28b368baeb0a..76f9109727f30c60eae714e1921b843d654815bc 100644
--- a/docs/user/smith.md
+++ b/docs/user/smith.md
@@ -5,12 +5,12 @@
 ### Duniter part
 
 - Add this docker-compose on your server :
-[docker/compose/gdev-validator.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-validator.docker-compose.yml)
+  [docker/compose/gdev-validator.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-validator.docker-compose.yml)
 - Create a `.env` file that define environment variables `SERVER_DOMAIN`, `PEER_ID` and `VALIDATOR_PEER_ID`:
   - `SERVER_DOMAIN`: a domain name that point on your server
-  - `PEER_ID`: Your rpc node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint -v $PWD:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.3.0 key generate-node-key --file /var/lib/duniter/rpc-node.key`
-  - `VALIDATOR_PEER_ID`: Your validator node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:v0.3.0 key generate-node-key --file /var/lib/duniter/validator-node.key`
-  Note: duniter-rpc PEER_ID and duniter-validator PEER_ID isn't the same.
+  - `PEER_ID`: Your rpc node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint -v $PWD:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.4.0 key generate-node-key --file /var/lib/duniter/rpc-node.key`
+  - `VALIDATOR_PEER_ID`: Your validator node peer id, shoud be generated with this command: `docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:v0.4.0 key generate-node-key --file /var/lib/duniter/validator-node.key`
+    Note: duniter-rpc PEER_ID and duniter-validator PEER_ID isn't the same.
 - If you have write access errors run in docker-compose.yml folder : `chmod o+rwX -R .`
 - `docker compose up -d` to start your node
 
@@ -57,6 +57,7 @@ server {
   }
 }
 ```
+
 and replace `YOUR_DOMAIN` by your domain each time.
 
 - [generate your ssl certificates](https://github.com/acmesh-official/acme.sh) with let's encrypt