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?