Creando nueva dirección con web3

Quiero que los usuarios de mi sitio web tengan una nueva dirección de ethereum después de registrarse en mi sitio web.

¿Cómo es posible con web3 generar una nueva dirección ethereum para cada usuario de mi sitio web?

¿También requiere contraseña al crear una nueva dirección?

¿Puedo tener un código de muestra?

Respuestas (2)

Puedes usar web3.eth.accounts.create()para generar algo como esto

{
    address: "0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01",
    privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709",
    signTransaction: function(tx){...},
    sign: function(data){...},
    encrypt: function(password){...}
}

Sus usuarios deberán almacenar la clave privada que genera su billetera.

Intenté seguir el código, con la dirección devuelta, pero ¿cómo puedo obtener esa dirección en una variable nodejs?var web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545')); web3.eth.personal.newAccount('!@superpassword').then(console.log); > '0x1234567891011121314151617181920212223456'
usando web3.eth.personal.newAccount()crea una cuenta en su servidor. esto no es lo que quieres porque la cuenta estará en tu servidor. Entendí por su pregunta que realmente desea que los usuarios almacenen la cuenta.

Le recomendamos que eche un vistazo a keythereum . Este código de muestra genera una nueva clave e imprime la dirección pública legible.

var keythereum = require("keythereum");
var dk = keythereum.create();
var readableAddress = keythereum.privateKeyToAddress(dk.privateKey);
console.log("dirección pública:" + dirección legible);
console.log("clave privada en hexadecimal:" + dk.privateKey.toString('hex')