Skip to content

Conversation

ndubuisi-ugwuja
Copy link

Description

This pull request adds a new beginner-friendly tutorial titled “How Ethereum Addresses Are Generated.”
It explains step-by-step how Ethereum addresses are derived from private keys using elliptic curve cryptography (secp256k1) and Keccak-256 hashing.

The tutorial covers:

  • What a private key is and why it’s important
  • How a public key is mathematically derived from the private key using the secp256k1 curve
  • How the Keccak-256 hash function is used to generate an Ethereum address
  • Why only the last 40 hexadecimal characters of the hash are used as the final address

File added:
public/content/developers/tutorials/how-ethereum-addresses-are-generated/index.md

The goal of this tutorial is to help newcomers and technical learners understand the cryptographic foundations of Ethereum addresses in a clear and beginner-friendly way.

Related Issue

N/A – this is a new tutorial contribution.

Copy link

netlify bot commented Oct 10, 2025

Deploy Preview for ethereumorg ready!

Name Link
🔨 Latest commit ad161ca
🔍 Latest deploy log https://app.netlify.com/projects/ethereumorg/deploys/68e98bb602f838000905d996
😎 Deploy Preview https://deploy-preview-16480--ethereumorg.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
7 paths audited
Performance: 50 (🔴 down 5 from production)
Accessibility: 94 (no change from production)
Best Practices: 92 (🔴 down 8 from production)
SEO: 92 (no change from production)
PWA: 59 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions github-actions bot added the content 🖋️ This involves copy additions or edits label Oct 10, 2025
@wackerow
Copy link
Member

Thanks @ndubuisi-ugwuja! Will try to get some eyes on this over the next week or two

@wackerow
Copy link
Member

Hey @ndubuisi-ugwuja, appreciate the work here! Taking a look through, few initial thoughts...

My first take is that the vast majority of this doesn't really seem like a "tutorial." This feels much more like details that we would expect to see in the Docs... Typically the tutorials are designated for follow-along guide that developers can walk through to actually do something, and the only part that feels doable here is the "Simple code snippets you can paste and try JavaScript" section, which isn't really guided, but more just told to copy/paste, making assumptions that they know how to set up ethers.js, etc.

There is already a page dedicated to Accounts on Ethereum... that page introduces a handful of the concepts you're outlining here. Would be careful with potentially repeating the information there, but we could focus on how to expand from there.

IMO, using this to expand on the docs to include more detailed information about how derivations happen, for example from mnemonic > tree of private keys > public keys > address, would be informative, and fill a gap that currently seems to exist in the docs. I'm imagining something that helps explain the steps involved in Ian Coleman's BIP-39 demo. I would see this living at a new sub-page to the /developers/docs/ pages. I could also see this as a more intermediate-to-advanced topic, imagining some more explanation along the way about how this math works, akin to a page such as this Elliptic Curve explainer on learnmeabitcoin.com (just an idea for inspiration)

Alternatively, if we want to keep this as a "tutorial" then I would suggest we try trim down explanations that are already explained elsewhere (linking out where needed), and instead adding more details for how a developer could step through some tools to learn the details. To me this would include using libraries that demonstrate what's involved at each step of the derivation, so developers can get a firm grasp of how this works. This could also include the "easy path" of how to set up and use ethers.js to simply generate keys.

Let me know your thoughts and how you'd like to proceed!

@wackerow
Copy link
Member

I guess my last thought after posting and re-reading you original post, if you do want to keep this as a tutorial for beginners, again, would just try to focus on clear and simply step-by-step instructions that would get someone started with the local tools needed, with some example inputs, expected outputs, and how they could use this while building. Try to harness the existing docs where possible for the non-guided parts.

@wackerow wackerow added the question ❓ Further information is requested label Oct 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

content 🖋️ This involves copy additions or edits question ❓ Further information is requested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants