Looking at https://github.com/ethereum/wiki/wiki/enode-url-format and https://github.com/ethereum/go-ethereum/wiki/Connecting-to-the-network I can see that the enode URL includes some information about the node.

Here's an example enode URL: enode://3414c01c19aa75a34f2dbd2f8d0898dc79d6b219ad77f8155abf1a287ce2ba60f14998a3a98c0cf14915eabfdacf914a92b27a01769de18fa2d049dbf4c17694@[::]:30303 - the part between // and @ is the username.

Everything else seems ok, but what is the username / node ID part? The answer at https://ethereum.stackexchange.com/a/1196/31933 says it's some public key, but a public key for what?

As accounts and nodes are not directly related (accounts just utilize nodes) it can't be anything account-specific (such as account's public key). So if it is a public key, who has the private key and what can it be used for?

1 Answer 1


Found some more information: https://github.com/ethereum/devp2p/blob/38d70bb9fe9badaa48ef5262e9f78641b46d1ff4/rlpx.md

nodeId is the secp256k1 public key corresponding to the node's private key.

So the node has a private key and the node ID is the corresponding public key. As the private key is chosen randomly the public key has no significance by itself. It has nothing to do with Ethereum accounts or anything like that but is only used by the underlying protocols for inter-node communications.


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.