Saltar al contenido
ecdsa.com

personal_sign

El método de billetera de JSON-RPC de Ethereum que firma un mensaje con el prefijo EIP-191 de versión 0x45 y devuelve una firma r‖s‖v de 65 bytes; es el método predeterminado para el inicio de sesión y la firma de mensajes sencillos.
También se escribepersonal_signeth_sign

Forma de la llamada: personal_sign con los parámetros [message, address], donde el mensaje son bytes codificados en hexadecimal (la mayoría de las billeteras también aceptan texto UTF-8). Las bibliotecas lo reproducen: signer.signMessage en ethers, signMessage en viem, encode_defunct en web3.py. El antiguo eth_sign firmaba un hash arbitrario de 32 bytes sin prefijo, lo que permitía a las dapps engañar a los usuarios para que firmaran transacciones, y la mayoría de las billeteras lo desactivan o muestran una advertencia si se usa.

La verificación vuelve a calcular el hash Keccak-256 con prefijo y recupera la dirección o, en las billeteras inteligentes, llama a isValidSignature de ERC-1271 (envuelto en ERC-6492 para cuentas aún no desplegadas). Los mensajes de Sign-In with Ethereum se firman así.

Estándares y referencias

Todos los términos