Joining a Multisig
Authored by:
Use a Dedicated Key for Each Multisig
Always create a fresh address on a hardware wallet for each new multisig you join. Use a different address index on your hardware wallet (same derivation path, just switch between addresses) and label each clearly.
This matters for two reasons:
- Signing clarity: With a dedicated key, your wallet interface only shows transactions from one multisig. This eliminates confusion about which multisig a signing request belongs to and reduces the risk of signing the wrong transaction.
- Operational separation: Keeping distinct addresses per multisig makes it easier to track activity and avoid mistakes. Note that if addresses share the same seed phrase, seed compromise still affects all of them.
Verifying address ownership
Creating a proof of address ownership provides important documentation and security assurances to the protocol for all multisig signers. Entity affiliations are acceptable - the goal is accountability, not doxing.
Preparing and sharing address & Signature
Sign the message like [@social_handle | name | entity] is looking to join [Multisig Name] X DAO multisig with address 0x... with the private key you intend to use as a signer. One option is to use the MyCrypto web UI:
- Connect your wallet to https://app.mycrypto.com/sign-message
- Enter the message, click "sign" and sign the message on the wallet.
- The sig field in the result JSON is the signature hash.
Share the message:
- Option 1 - Publish the message along with the signature hash on twitter or other easily accessible social media.
- Option 2 - Share the message privately with multisig admin so it can be stored with multisig documentation
Ethereum signature verification
Etherscan UI
- Go to https://etherscan.io/verifiedSignatures.
- Click the Verify Signature button.
- Input address, message & signature hash data & click Continue.
- See whether the signature provided is valid.
- To publish: choose "Verify & publish" and click "Continue".
- After the signature is verified, you'll get the link for sharing.
Note: Enter plain text message (not the hex version MyEtherWallet will give!) and ensure the signature includes the 0x prefix.
MyCrypto
- Go to https://app.mycrypto.com/verify-message
- Enter json & click Verify:
{
"address": "0x...",
"msg": "0x...",
"sig": "signature_hash"
}Note that "msg" is hex text starting with 0x (add 0x before the hex encoded string if necessary). 4. See whether the signature provided is valid.