In this example we will update from Mithril Signer version 0.2.276 to 0.3.7 - Updated: 1/29/2026
Please note this update didn't require any changes to the configuration files. Other updates may require changes to additional files.
Credits to Earn Coin Pool for documenting the procedure.
📢 The Mithril team has created a one-line command to update your Mithril Signer. If you prefer that method see command and note below.
"You can easily update your Mithril signer with this one line command (it will be downloaded in the current directory, a custom folder can be specified with -p option):"
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/input-output-hk/mithril/refs/heads/main/mithril-install.sh | sh -s -- -c mithril-signer -d 2603.1 -p $(pwd)
If you prefer to compile on your own see steps below 👇.
Build on Your Own Method:
The following updates are done just on your Block Producer.
Step 1 - Update Rust
On Block Producer, run the following command to update Rust:
rustup update
Step 2 - Clone Mithril Git
Clone the Mithril git to your git folder. Run:
cd $HOME/git
git clone https://github.com/input-output-hk/mithril.git
For this example, this is the latest version to update to Mithril-Signer 0.3.7
Always make sure the version is compatible with Mainnet before updating
Mainnet Compatible
Don't get the tag version of Mithril v2603.1 confused with the version of the Mithril Signer in this case 0.3.7
The Crate versions are different from the tag version.
Mithril Signer Version for Tag v2603.1
To checkout current version in this case Mithril v2603.1, first change to Mithril folder in git and then checkout version. Run:
Step 4 - Change Directory
Step 5 - Run Tests (optional)
Step 6 - Build the Executable
Step 7 - Verify the Build Version
Stay in $HOME/git/mithril/mithril-signer folder and then run:
Step 8 - Stop Mithril Signer Service
Step 9 - Move mithril Signer Executable
We keep our mithril signer in the following folder, please adjust to your path.
$NODE_HOME/mithril-signer
Step 10 - Start Mithril Signer Service
Step 11 - Verify Version and Status
Check version run:
We keep our mithril signer in the following folder, please adjust to your path.
$NODE_HOME/mithril-signer
Check status
Step 12 - Clean up
If you have the correct version and the status is good, go ahead and clean up files.
Verify your signer is registered
Download the script into the mithril-signer directory
Make the script executable:
Run Script:
Replace "**POOL_ID**" with your pool ID, example below
Thanks to the following pools for helping to put together these guides. Please consider delegating to their pools to support them. Are you a pool? Consider buying them a coffee
cd $HOME/git/mithril/mithril-signer
sudo mv -f mithril-signer $NODE_HOME/mithril-signer
sudo systemctl start mithril-signer
cd $NODE_HOME/mithril-signer
./mithril-signer -V
systemctl status mithril-signer.service
cd $HOME/git/
rm -rf mithril
cd $NODE_HOME/mithril-signer
wget https://mithril.network/doc/scripts/verify_signer_registration.sh
cd $NODE_HOME/mithril-signer
chmod +x verify_signer_registration.sh
cd $NODE_HOME/mithril-signer
PARTY_ID=**POOL_ID** AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator ./verify_signer_registration.sh
>> Congrats, your signer node is registered!
>> Oops, your signer node is not registered. Party ID not found among the signers registered at epoch XXX.
cd $NODE_HOME/mithril-signer
wget https://mithril.network/doc/scripts/verify_signer_signature.sh
cd $NODE_HOME/mithril-signer
chmod +x verify_signer_signature.sh
cd $NODE_HOME/mithril-signer
PARTY_ID=**POOL_ID** AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator ./verify_signer_signature.sh
>> Congrats, you have signed this certificate: ...
>> Oops, your party id was not found in the last 20 certificates. Please try again later.