Verifying address ownership for Lido DAO ops
Using EOA across Lido DAO ops or protocol contracts requires providing a public "proof of ownership". Main use-cases here are using address as a signer in Lido DAO ops 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. One of the options is going using MyEtherWallet web UI:- 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
sig
field in the result json is the signature hash.
- Publish the message along with the signature hash on 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 ops 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 Signature
button. - 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
:Note that "msg" is hex text starting with{
"address": "0x...",
"msg": "0x...",
"sig": "signature_hash"
}0x
(add0x
before the hex encoded string if necessary). - See whether the signature provided is valid.
Publishing the signature on Etherscan
- Go to https://etherscan.io/verifiedSignatures and click "Verify Signature".
- Enter address, plain text message (not hex version MyEtherWallet will give!) & the signature (with
0x
prefix), choose "Verify & publish" option & click "Continue". - After the signature is verified you'll get the link for sharing.
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
0x
from the hex code acquired in the previous step).