Multisig Signer Address Verification
Using EOA across Lido DAO operational multisigs or protocol contracts requires providing a public "proof of ownership". Main use-cases here are using address as a signer in Lido DAO operational multisigs or using EOAs for offchain tooling where specific rights might be required.
Preparing and sharing address & signature​
In case of using externally owned account (EOA)​
-
Sign the message along the lines of
@my_social_handle is looking to join X Lido DAO multisig with address 0x...with the private key you're looking to use as signing key. Use one of the following options:Etherscan UI (primary option)​
- Go to https://etherscan.io/verifiedSignatures and click "Sign Message" button.
- Connect your wallet to Etherscan in the popped up window (approve the connection in your wallet app if needed).
- Enter the message, click "Sign Message" and sign the message on the wallet.
- Click on "Publish" button to get a link to your public verification to be used in next steps.
MyEtherWallet (backup option)​
- Connect your wallet to https://www.myetherwallet.com/wallet/access.
- Go to https://www.myetherwallet.com/wallet/sign (UI link is under "Message" dropdown on the left).
- Enter the message, click "sign" and sign the message on the wallet.
- The
sigfield in the result json is the signature hash.
-
Publish the message along with the Etherescan link (or signature hash in case of MyEtherWallet) on X.com (formerly Twitter) or other easily accessible social media.
-
Share the link to the post as a comment at the relevant Lido DAO forum post.
-
Make sure to follow the general rules of thumb for being a signer in Lido DAO operational multisigs.
In case of using Safe multisig​
- In https://app.safe.global home screen of your multisig wallet hit the button "New transaction" and select "Contract interaction" in the appeared screen.
- At the New Transaction screen toggle "Custom data" switch.
- Fill any EOA address (for example
0x0000000000000000000000000000000000000000) into "Enter Address or ENS Name" field. - Use any hex encoder (like https://www.duplichecker.com/hex-to-text.php) to encode a message that consists info about who is joining what Lido committee or multisig with which address, for example
@my_social_handle is looking to join X Lido DAO multisig with address 0x.... - Paste a code generated at the previous step into "Data (Hex encoded)" field of "New Transaction" screen in the multisig interface (add "0x" in the start of a HEX code if it's missing), put "0" in the ETH value field.
- Publish the message along with the transaction hash on twitter or other easily accessible social media.
- Share the transaction hash in the post as a comment at the relevant Lido DAO forum post.
Ethereum signature verification​
In case of using EOA​
To verify the shared signature one can use Etherscan or MyEtherWallet UIs.
Etherscan UI​
- Go to https://etherscan.io/verifiedSignatures.
- Click
Verify Signaturebutton. - Input address, message & signature hash data & click
Continue. - See whether the signature provided is valid.
MyEtherWallet​
- Go to https://www.myetherwallet.com/tools?tool=verify.
- Encode the message text as hex string (use the tool like https://appdevtools.com/text-hex-converter).
- 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.
In case of using Safe multisig​
- Go to the signed transaction at the Etherscan.
- Click to show more details and find "input Data" field, click on "Decode input data".
- Copy a hex code in the "data" row and take it to any hex decoder (like duplichecker).
- Decode and verify the message (please note, that you may need to delete leading
0xfrom the hex code acquired in the previous step).