What is the usecase for a user signing a message? For example, I see in many login tutorials, that once we get the wallet address from Metamask, we have to have the user sign a message with a provided nonce.

What is the purpose of that?

3 Answers 3


Many of the reasons why apps ask user to sign is to verify their identity. Some like OpenSea for example use user signatures to perform gas less transactions on low cost L2s like Polygon.

Consider a situation like that, there will be a server of OpenSea with some matic balance account also managed by the server. When a user requests a transfer, the transaction and parameters are sent to be signed by Metamask which can then be relayed by the server making it seem like a said gas less transfer.

On the other hand, it can also be used for auth. Your front end can connect to the wallet but the backend needs a verifiable message that you have actually connected and not just managed to alter some front end code.

For that, you can query how many times user has logged in and then include that too as a parameter(nonce) to sign so that server can verify.


The user with a signed message can prove that he owns an address. That's the purpose of signatures.

Many protocols use a signature to validate ownership of tokens or other assets.


we have to have the user sign a message with a provided nonce in some dapps like Opensea because for identify user wallet in the backend.

On the frontend when can using injected wallet extension to prove user actually owner of address (e.g 0xF4CA4e78329226247EBB08E90F05d5e456eAa108).

In the backend we can't using injected wallet extension so we need their signature by sign a message (nonce using for prevent replay-attack, after again we need to sign message again).

Another use case is let user accept term of service.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.