Pular para o conteúdo
ecdsa.com

personal_sign

O método JSON-RPC de carteira do Ethereum que assina uma mensagem com o prefixo da versão 0x45 da EIP-191 e retorna uma assinatura r‖s‖v de 65 bytes; é o padrão para login e para a assinatura simples de mensagens.
Também escrito comopersonal_signeth_sign

Forma da chamada: personal_sign com os parâmetros [message, address], em que a mensagem são bytes codificados em hexadecimal (a maioria das carteiras também aceita texto UTF-8). As bibliotecas seguem o mesmo modelo: signer.signMessage no ethers, signMessage no viem, encode_defunct no web3.py. O antigo eth_sign assinava um hash arbitrário de 32 bytes sem prefixo, o que permitia que dapps induzissem os usuários a assinar transações, e a maioria das carteiras o desativa ou exibe um aviso sobre ele.

A verificação recalcula o hash Keccak-256 com o prefixo e recupera o endereço ou, no caso de carteiras inteligentes, chama o isValidSignature da ERC-1271 (envolvido na ERC-6492 para contas ainda não implantadas). As mensagens do Sign-In with Ethereum são assinadas dessa forma.

Padrões e referências

Todos os termos