From 0a16f5d1c79f5b91fee5da57296706f166c53ed8 Mon Sep 17 00:00:00 2001 From: Jakub Konopka Date: Thu, 29 Jan 2026 09:34:26 +0100 Subject: [PATCH 1/6] Add bridge content to whitepaper page for better user guidance Problem: Users arriving from investment/banking apps expect to learn "what Ethereum is today" but find a 2014 historical document that doesn't reflect 10+ years of protocol evolution. Solution: Add a WhitepaperBridge component that: - Acknowledges the whitepaper is a historical document - Explains key changes since 2014 (PoS, L2s, DeFi, NFTs, ERCs) - Provides clear CTA to /learn/ for current content - Preserves the original whitepaper below Design: - Uses existing design tokens (bg-radial-a, card-gradient-secondary) - Leverages existing components (Tag, ButtonLink, Card, Stack, Flex) - Non-intrusive enhancement, doesn't replace whitepaper content Closes #17185 Co-Authored-By: Claude --- src/components/WhitepaperBridge/index.tsx | 94 +++++++++++++++++++++++ src/layouts/Static.tsx | 4 + 2 files changed, 98 insertions(+) create mode 100644 src/components/WhitepaperBridge/index.tsx diff --git a/src/components/WhitepaperBridge/index.tsx b/src/components/WhitepaperBridge/index.tsx new file mode 100644 index 00000000000..2810d60b69d --- /dev/null +++ b/src/components/WhitepaperBridge/index.tsx @@ -0,0 +1,94 @@ +import { ArrowRight, CheckCircle2, Info } from "lucide-react" + +import { ButtonLink } from "@/components/ui/buttons/Button" +import { Card, CardContent } from "@/components/ui/card" +import { Flex, Stack } from "@/components/ui/flex" +import { Tag } from "@/components/ui/tag" + +/** + * WhitepaperBridge component + * + * Displayed at the top of the whitepaper page to help visitors understand + * that the whitepaper is a historical document and direct them to current + * Ethereum learning resources. + * + * Context: Many users land on this page from investment/banking apps that link + * to the whitepaper. These users expect to learn "what Ethereum is today" but + * find a 2014 historical document. This component bridges that gap. + */ +const WhitepaperBridge = () => { + const evolutionPoints = [ + "Ethereum moved from Proof of Work to Proof of Stake (The Merge, 2022)", + "Layer 2 scaling solutions now process millions of transactions", + "DeFi, NFTs, and DAOs emerged as major use cases", + "Smart contract standards (ERC-20, ERC-721) became industry foundations", + ] + + return ( +
+ + {/* Eyebrow tag - uses warning status for attention */} + + + Before you read + + + {/* Main heading */} +
+

+ Looking to understand Ethereum? +

+

+ This whitepaper was published in{" "} + 2014, before Ethereum + launched. After 10+ years of development, major upgrades, and + ecosystem growth,{" "} + + the original whitepaper no longer reflects what Ethereum is today + + . +

+
+ + {/* CTAs */} + + + Learn about Ethereum today + + + + Download original PDF (2014) + + + + {/* What's changed card - uses card-gradient-secondary */} + + +

+ What's changed since 2014? +

+ + {evolutionPoints.map((point, index) => ( + + + {point} + + ))} + +
+
+
+
+ ) +} + +export default WhitepaperBridge diff --git a/src/layouts/Static.tsx b/src/layouts/Static.tsx index 11f22aaabd8..d64ff01cfa9 100644 --- a/src/layouts/Static.tsx +++ b/src/layouts/Static.tsx @@ -32,6 +32,7 @@ import TranslationChartImage from "@/components/TranslationChartImage" import { Alert } from "@/components/ui/alert" import { Flex, Stack } from "@/components/ui/flex" import Link from "@/components/ui/Link" +import WhitepaperBridge from "@/components/WhitepaperBridge" import { getEditPath } from "@/lib/utils/editPath" import { isLangRightToLeft } from "@/lib/utils/translations" @@ -123,6 +124,9 @@ export const StaticLayout = ({ {lastEditLocaleTimestamp}

)} + + {/* Bridge content for whitepaper page - helps redirect users to current content */} + {slug.includes("/whitepaper") && } )} From 08e76041f9a0440dcc677975b51855adab05b07a Mon Sep 17 00:00:00 2001 From: Jakub Konopka Date: Thu, 29 Jan 2026 10:41:32 +0100 Subject: [PATCH 2/6] chore: trigger rebuild From 87c402c421bd5d056179941cc94341264c2f17a5 Mon Sep 17 00:00:00 2001 From: Paul Wackerow <54227730+wackerow@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:10:51 -0500 Subject: [PATCH 3/6] refactor: pass component to md page fix(content): remove redundant copy --- public/content/whitepaper/index.md | 8 +++----- src/layouts/Static.tsx | 4 +--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/public/content/whitepaper/index.md b/public/content/whitepaper/index.md index c46ac3bdc17..d600f778985 100644 --- a/public/content/whitepaper/index.md +++ b/public/content/whitepaper/index.md @@ -6,13 +6,11 @@ sidebarDepth: 2 hideEditButton: true --- -# Ethereum Whitepaper {#ethereum-whitepaper} - -_This introductory paper was originally published in 2014 by Vitalik Buterin, the founder of [Ethereum](/what-is-ethereum/), before the project's launch in 2015. It's worth noting that Ethereum, like many community-driven, open-source software projects, has evolved since its initial inception._ + -_While several years old, we maintain this paper because it continues to serve as a useful reference and an accurate representation of Ethereum and its vision. To learn about the latest developments of Ethereum, and how changes to the protocol are made, we recommend [this guide](/learn/)._ +_While several years old, we maintain the original paper below because it continues to serve as a useful reference and an accurate representation of Ethereum and its vision._ -[Researchers and academics seeking a historical or canonical version of the whitepaper [from December 2014] should use this PDF.](./whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf) +# Ethereum Whitepaper {#ethereum-whitepaper} ## A Next-Generation Smart Contract and Decentralized Application Platform {#a-next-generation-smart-contract-and-decentralized-application-platform} diff --git a/src/layouts/Static.tsx b/src/layouts/Static.tsx index d64ff01cfa9..ca0e35bbee0 100644 --- a/src/layouts/Static.tsx +++ b/src/layouts/Static.tsx @@ -72,6 +72,7 @@ export const staticComponents = { SocialListItem, TranslationChartImage, ListenToPlayer, + WhitepaperBridge, } type StaticLayoutProps = ChildOnlyProp & @@ -124,9 +125,6 @@ export const StaticLayout = ({ {lastEditLocaleTimestamp}

)} - - {/* Bridge content for whitepaper page - helps redirect users to current content */} - {slug.includes("/whitepaper") && } )} From 9f93f70ec362317cf49c1ba76abd4cf70f9a2c3b Mon Sep 17 00:00:00 2001 From: Paul Wackerow <54227730+wackerow@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:12:26 -0500 Subject: [PATCH 4/6] refactor: WhitepaperBridge component - Use "Section" component with spacing - Use UnorderedList - Adjust border color for consistency - Prepare arrow for RTL - Content standardization adjustments (e.g., "proof-of-work") --- src/components/WhitepaperBridge/index.tsx | 128 +++++++++++----------- 1 file changed, 66 insertions(+), 62 deletions(-) diff --git a/src/components/WhitepaperBridge/index.tsx b/src/components/WhitepaperBridge/index.tsx index 2810d60b69d..8cc45109bed 100644 --- a/src/components/WhitepaperBridge/index.tsx +++ b/src/components/WhitepaperBridge/index.tsx @@ -1,10 +1,19 @@ import { ArrowRight, CheckCircle2, Info } from "lucide-react" +import { getLocale } from "next-intl/server" + +import { Lang } from "@/lib/types" import { ButtonLink } from "@/components/ui/buttons/Button" import { Card, CardContent } from "@/components/ui/card" -import { Flex, Stack } from "@/components/ui/flex" +import { Flex } from "@/components/ui/flex" import { Tag } from "@/components/ui/tag" +import { cn } from "@/lib/utils/cn" +import { getDirection } from "@/lib/utils/direction" + +import { UnorderedList } from "../ui/list" +import { Section } from "../ui/section" + /** * WhitepaperBridge component * @@ -16,78 +25,73 @@ import { Tag } from "@/components/ui/tag" * to the whitepaper. These users expect to learn "what Ethereum is today" but * find a 2014 historical document. This component bridges that gap. */ -const WhitepaperBridge = () => { +const WhitepaperBridge = async () => { + const locale = await getLocale() + const { twFlipForRtl } = getDirection(locale as Lang) + const evolutionPoints = [ - "Ethereum moved from Proof of Work to Proof of Stake (The Merge, 2022)", + "Ethereum moved from proof-of-work to proof-of-stake (The Merge, 2022)", "Layer 2 scaling solutions now process millions of transactions", "DeFi, NFTs, and DAOs emerged as major use cases", "Smart contract standards (ERC-20, ERC-721) became industry foundations", ] return ( -
- - {/* Eyebrow tag - uses warning status for attention */} - + {/* Eyebrow tag - uses warning status for attention */} + + + Before you read + + + {/* Main heading */} +
+

+ Looking to understand Ethereum? +

+

+ This whitepaper was published in{" "} + 2014, before Ethereum launched. + After 10+ years of development, major upgrades, and ecosystem growth,{" "} + + the original whitepaper no longer reflects what Ethereum is today + + . +

+
+ + {/* CTAs */} + + + Learn about Ethereum today + + + - - Before you read -
+ Download original PDF (2014) + + - {/* Main heading */} -
-

- Looking to understand Ethereum? -

-

- This whitepaper was published in{" "} - 2014, before Ethereum - launched. After 10+ years of development, major upgrades, and - ecosystem growth,{" "} - - the original whitepaper no longer reflects what Ethereum is today - - . + {/* What's changed card - uses card-gradient-secondary */} + + +

+ What's changed since 2014?

-
- - {/* CTAs */} - - - Learn about Ethereum today - - - - Download original PDF (2014) - - - - {/* What's changed card - uses card-gradient-secondary */} - - -

- What's changed since 2014? -

- - {evolutionPoints.map((point, index) => ( - - - {point} - - ))} - -
-
-
-
+ + {evolutionPoints.map((point, index) => ( + + + {point} + + ))} + + + + ) } From e28d6061afef894bfc52bd6934e04b13634be95f Mon Sep 17 00:00:00 2001 From: Paul Wackerow <54227730+wackerow@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:16:51 -0500 Subject: [PATCH 5/6] fix: whitepaper pdf link --- src/components/WhitepaperBridge/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/WhitepaperBridge/index.tsx b/src/components/WhitepaperBridge/index.tsx index 8cc45109bed..635dc2ec11f 100644 --- a/src/components/WhitepaperBridge/index.tsx +++ b/src/components/WhitepaperBridge/index.tsx @@ -67,7 +67,7 @@ const WhitepaperBridge = async () => { From 0f6454c2a823441dae4a7693383c8c6afa3c83ab Mon Sep 17 00:00:00 2001 From: Paul Wackerow <54227730+wackerow@users.noreply.github.com> Date: Thu, 5 Feb 2026 15:18:35 -0500 Subject: [PATCH 6/6] patch: removed redundant class --- src/components/WhitepaperBridge/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/WhitepaperBridge/index.tsx b/src/components/WhitepaperBridge/index.tsx index 635dc2ec11f..97c6ee306b6 100644 --- a/src/components/WhitepaperBridge/index.tsx +++ b/src/components/WhitepaperBridge/index.tsx @@ -76,7 +76,7 @@ const WhitepaperBridge = async () => { {/* What's changed card - uses card-gradient-secondary */} - +

What's changed since 2014?