diff --git a/app/coordinate/page.tsx b/app/coordinate/page.tsx index 02b54bf..6081947 100644 --- a/app/coordinate/page.tsx +++ b/app/coordinate/page.tsx @@ -1,10 +1,11 @@ import type { Metadata } from "next"; import Link from "next/link"; +import SubPageNav from "@/components/SubPageNav"; export const metadata: Metadata = { title: "Coordinate & Scale Impact | DeCleanup Rewards", description: - "Open infrastructure for transparent, scalable environmental coordination. For those who build and coordinate impact.", + "Open infrastructure for transparent, scalable environmental coordination. Scaling local action into global proof.", }; const problemItems = [ @@ -55,23 +56,8 @@ const outcomes = [ export default function CoordinatePage() { return (
-
-
- - - - - Back to Home - -
+ +

diff --git a/app/docs/page.tsx b/app/docs/page.tsx index 820284c..c7c0c07 100644 --- a/app/docs/page.tsx +++ b/app/docs/page.tsx @@ -1,26 +1,19 @@ import type { Metadata } from "next"; import Link from "next/link"; +import SubPageNav from "@/components/SubPageNav"; export const metadata: Metadata = { title: "DeCleanup Network Documentation", - description: "Guides and resources for the DeCleanup Network. Tech stack and where to find more.", + description: "Technical guides and resources for the DeCleanup Network infrastructure. Building the layer for verified global impact.", }; export default function DocsPage() { return (
-
- {/* Back + Header */} + +
+ {/* Header */}
- - - - - Back to Home -
diff --git a/app/funders/page.tsx b/app/funders/page.tsx index bd1f5ef..e618b8d 100644 --- a/app/funders/page.tsx +++ b/app/funders/page.tsx @@ -2,39 +2,19 @@ import type { Metadata } from "next"; import Link from "next/link"; import React from "react"; +import SubPageNav from "@/components/SubPageNav"; export const metadata: Metadata = { title: "Fund Verified Impact | DeCleanup Rewards", description: - "Verifiable impact infrastructure, not speculation. Fund what you can verify.", + "Verifiable impact infrastructure. Fund local cleanup actions that produce global proof.", }; export default function FundersPage() { return (
-
- {/* Back Button */} -
- - - - - Back to Home - -
+ +
{/* Page Header */}
diff --git a/app/get-started/page.tsx b/app/get-started/page.tsx index 386e487..3e76d2e 100644 --- a/app/get-started/page.tsx +++ b/app/get-started/page.tsx @@ -1,33 +1,19 @@ import type { Metadata } from "next"; import Link from "next/link"; +import SubPageNav from "@/components/SubPageNav"; import GetStartedFlow from "@/components/GetStartedFlow/GetStartedFlow"; export const metadata: Metadata = { title: "Get Started | DeCleanup Rewards", description: - "For those who care about the planet. Join or organize cleanups, document results, and earn recognition and rewards for real impact.", + "Join or organize cleanups, document results, and turn local action into verified global impact. Clean Local. Prove Global.", }; export default function GetStartedPage() { return (
-
-
- - - - - Back to Home - -
+ +
diff --git a/app/layout.tsx b/app/layout.tsx index efd0ea8..2dee53d 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -20,23 +20,23 @@ const SITE_URL = "https://decleanup.net"; export const metadata: Metadata = { metadataBase: new URL(SITE_URL), - title: "Cleanups with action. Proof under verified. Fundable impact. | DeCleanup Network", + title: "Clean Local. Prove Global. | DeCleanup Network", description: - "A global platform that verifies environmental cleanups and turns them into measurable, fundable impact.", + "Join volunteers worldwide turning trash pickup into verified, rewarded impact. DeCleanup Network converts local action into global proof.", alternates: { canonical: SITE_URL }, openGraph: { - title: "Cleanups with action. Proof under verified. Fundable impact. | DeCleanup Network", + title: "Clean Local. Prove Global. | DeCleanup Network", description: - "A global platform that verifies environmental cleanups and turns them into measurable, fundable impact.", + "Join volunteers worldwide turning trash pickup into verified, rewarded impact. DeCleanup Network converts local action into global proof.", url: SITE_URL, siteName: "DeCleanup Network", type: "website", }, twitter: { card: "summary_large_image", - title: "Cleanups with action. Proof under verified. Fundable impact. | DeCleanup Network", + title: "Clean Local. Prove Global. | DeCleanup Network", description: - "A global platform that verifies environmental cleanups and turns them into measurable, fundable impact.", + "Join volunteers worldwide turning trash pickup into verified, rewarded impact. DeCleanup Network converts local action into global proof.", }, }; diff --git a/app/litepaper/page.tsx b/app/litepaper/page.tsx index 6682027..8448609 100644 --- a/app/litepaper/page.tsx +++ b/app/litepaper/page.tsx @@ -27,13 +27,14 @@ import { ShieldCheck, } from "lucide-react"; import LitepaperNav from "@/components/LitepaperNav/LitepaperNav"; +import SubPageNav from "@/components/SubPageNav"; import StartCleaningChoice from "@/components/StartCleaningChoice/StartCleaningChoice"; import TheoryOfChange from "@/components/TheoryOfChange/TheoryOfChange"; import LitepaperWhyPillarCards from "@/components/LitepaperWhyPillarCards/LitepaperWhyPillarCards"; export const metadata: Metadata = { title: "DeCleanup Network - Litepaper", - description: "Infrastructure for verifiable, governable, and fundable environmental impact. February 2026 Edition.", + description: "Infrastructure for verifiable, governable, and fundable environmental impact. Turning local action into verified global proof.", }; const scrollSection = "scroll-mt-24"; @@ -42,17 +43,7 @@ export default function LitepaperPage() { return (
- {/* Top bar */} - + {/* Hero - same heading style as tokenomics page */}
diff --git a/app/toc/page.tsx b/app/toc/page.tsx index f51ee1a..e99bc52 100644 --- a/app/toc/page.tsx +++ b/app/toc/page.tsx @@ -33,6 +33,7 @@ import { Clock, Target, } from "lucide-react"; +import SubPageNav from "@/components/SubPageNav"; /* ─── Tiny inline SVG checkmark for lists ─── */ function CheckMark({ green = true }: { green?: boolean }) { @@ -92,22 +93,14 @@ function Card({ export const metadata: Metadata = { title: "Theory of Change — DeCleanup Network", description: - "Why cleanup action stays invisible — and how we fix it. DeCleanup Network Theory of Change v2.2.", + "Why cleanup action stays invisible and how we fix it by converting local efforts into global proof. v2.2.", }; export default function TocPage() { return (
-
- - {/* ─── Back link ─── */} - - - Back to Home - + +
{/* ─── Hero ─── */}
diff --git a/app/tokenomics/page.tsx b/app/tokenomics/page.tsx index af8abc6..58c35a6 100644 --- a/app/tokenomics/page.tsx +++ b/app/tokenomics/page.tsx @@ -2,240 +2,543 @@ import type { Metadata } from "next"; import Link from "next/link"; import Image from "next/image"; import React from "react"; +import { + ArrowLeft, + Coins, + Shield, + ArrowRight, + Zap, + Lock, + Users, + Flame, + Trophy, + ArrowUpRight, + TrendingUp, + LineChart, + BarChart3, + Calendar, + GanttChartSquare, + Network, + Milestone, + CheckCircle, + Clock, + LayoutGrid, + Heart, + Globe, + Star, + ShieldCheck, + Smartphone, + Layers, + MapPin, + FileText, + MessageCircle, + Wand2, + Wallet, + Camera, + Scan, + Link as LinkIcon, + Menu, + X +} from "lucide-react"; +import SubPageNav from "@/components/SubPageNav"; export const metadata: Metadata = { title: "DeCleanup Network Tokenomics", - description: "The dual-token model powering DeCleanup Network's global impact ecosystem", + description: "The dual-token model powering the transition from local cleanup action to verified global impact.", +}; + +const SectionHeading = ({ badge, title, subtitle }: { badge?: string, title: string, subtitle?: string }) => ( +
+ {badge && ( +
+ + {badge} +
+ )} +

{title}

+ {subtitle &&

{subtitle}

} +
+); + +const AllocationBar = ({ allocations }: { allocations: { label: string, value: number, color: string }[] }) => { + const total = allocations.reduce((acc, curr) => acc + curr.value, 0); + return ( +
+
+ {allocations.map((alloc, i) => ( +
+ ))} +
+
+ {allocations.map((alloc, i) => ( +
+
+
+ {alloc.label} + {alloc.value}% +
+
+ ))} +
+
+ ); }; export default function TokenomicsPage() { return (
-
- {/* Back + Header */} -
- - - - - Back to Home - -
-
- - TOKENOMICS + + +
+
+
+
+ + TOKENOMICS +
+

+ NETWORK TOKENS +

+

+ Two tokens. One for action. One for proof. +

+

+ DeCleanup runs on two tokens with distinct roles. $bDCU rewards participation. $cDCU represents verified impact and unlocks governance. Together they connect fast, liquid incentives on Base to long-term reputation and coordination on Celo. +

+
+
+ +
+ {/* Token Cards - Redesigned to match Litepaper Ecosystem style */} +
+ {/* $bDCU - Action Token */} +
+
+
+
+ +
+
+ BASE +

$bDCU - Action Token

+
+ +
+
+ Total Supply + 1,000,000,000 +
+
+ Type + Liquid ERC-20 +
+
+ +
+

$bDCU is earned through action and traded freely. It is the entry point for anyone joining the network - no prior knowledge required, no long-term lock-up needed to get started.

+

Fair launch through Clanker with no pre-mine, no team allocation, and no investor distribution. Every token in circulation was acquired on the open market.

+
+ +
+

Allocation Breakdown

+ +
+ +
+
+ + Earn from: Mini app cleanups, streaks, referrals +
+
+ + Vault: Deflationary burns, ecosystem rewards +
+
+ + +
+
+ + {/* $cDCU - Proof Token */} +
+
+
+
+ +
+
+ CELO +

$cDCU - Proof Token

+
+ +
+
+ Max Supply + 10,000,000 +
+
+ Type + Reputation +
+
+ +
+

$cDCU cannot be purchased on market. It is issued through verified environmental action on either Base or Celo. This keeps governance in the hands of people who have actually contributed.

+

Earn directly on the Celo full platform or bridge your verified impact from the Base mini app. Simple, fast, non-transferable reputation.

+
+ +
+

Allocation Breakdown

+ +
+ +
+
+ + 500 $cDCU unlocks full governance participation +
+
+ + Organizers earn match for participants in events +
+
+ +
+ +
-

- NETWORK TOKENS -

-

- Two tokens. One for action. One for proof. -

-

- DeCleanup runs on two tokens with distinct roles. $bDCU rewards participation. $cDCU represents verified impact and unlocks governance. Together they connect fast, liquid incentives on Base to long-term reputation and coordination on Celo. -

- {/* $bDCU - Action Token */} -
-
-
- {/* $bDCU - Action Token */} -
-
-
-
- $bDCU -

$bDCU - Action Token

-
-
-

Chain: Base

-

Type: Liquid ERC-20

-

Total Supply: 1,000,000,000

-

Circulating: 850,000,000 (85%)

-

Clanker Vault: 150,000,000 (15%) - burns, rewards, liquidity

+ {/* The Bridge - Visual Flow */} +
+ +
+
+ +
+
+ + {/* Connector Line (Desktop) */} +
+
+
-

- $bDCU is earned through action and traded freely. It is the entry point for anyone joining the network - no prior knowledge required, no long-term lock-up needed to get started. -

-

- $bDCU launched fairly through Clanker with no pre-mine, no team allocation, and no investor distribution. Every token in circulation was acquired on the open market. No insider had an advantage on day one. -

-

Allocation:

-
- - - - - - - - -
PurposeAmountShare
Fair launch circulating850,000,00085%
Clanker Vault150,000,00015%
+
+ + {/* Left Column - BASE */} +
+
+
+ +
+
+ Path 01 +

Action on Base

+
-

The vault exists for three purposes only: deflationary burns tied to network milestones, ecosystem rewards for verifiers and campaigns, and liquidity stabilization during volatility. The vault cannot be used for team compensation or investor payouts - it is protocol-owned.

-

Earn from: Mini app cleanups, streaks, referrals.

-

Use for: Verifier staking, trading on Base DEXes, campaign participation, bridging to $cDCU.

-
- Swap ETH / $bDCU - Swap USDT / $bDCU + +
+
+
1
+

Earn $bDCU via mini app cleanups, streaks, and referrals.

+
+
+
2
+
+

Bridge: 5 Cleanups → 500 $cDCU

+

Claim your reputation on Celo after verifying impact on Base.

+
+
+ +
+
- Contract: 0x30171b7014c02229497CdE6745DD3aD821F12b07
-
- {/* $cDCU - Proof Token */} -
-
-
-
- $cDCU -

$cDCU - Proof Token

-
-
-

Chain: Celo

-

Type: Reputation - earned through action, not bought

-

Total Supply: 10,000,000

-

Earned from: Verified cleanups on Base and full platform

+ {/* Right Column - CELO */} +
+
+
+ +
+
+ Path 02 +

Action on Celo

+
-

- $cDCU cannot be purchased on the open market. It is issued only through verified environmental action. This keeps governance in the hands of people who have actually contributed - not speculators who arrived after the fact. -

-

Earning rate:

-

Every 5 verified cleanups on the Base mini app earns 500 $cDCU on Celo. Organizers receive credits equal to verified participants in their campaign - a 20-person cleanup event counts as 20 verified cleanups toward the organizer's total.

-

Governance threshold:

-

500 $cDCU unlocks full governance participation - voting on proposals, funding pool allocations, and verification rules.

-

Allocation:

-
- - - - - - - - - - - - - -
PurposeShare
Staking and Verifier Rewards35%
Cleanup Campaign Incentives25%
Public Distribution (vested)20%
Team and Development (4-year vest)10%
Verification Treasury5%
Community Incentives4%
Liquidity1%
+ +
+
+
1
+

Earn $cDCU directly via the full platform.

+
+
+
2
+

Unlock Governance, Verifier Staking, and Hypercerts directly.

+
-

The largest share goes to staking and verification because those roles keep the network trustworthy. Rewarding verifiers well is how you attract quality review, not rubber-stamping.

-
+ + {/* Bridge Indicator Label */} +
+
+ Base Celo Only +
+

Celo activity does not affect Base earnings

+
-
-
- {/* The Bridge */} -
-
-

The Bridge

-

- Cleanup activity happens on Base. Governance lives on Celo. The bridge connects both without requiring users to manage complex cross-chain transactions themselves. -

-

Current mechanism: Cleanup-count claim.

-

- Complete 5 verified cleanups on the Base mini app. DeCleanup's backend generates a signed authorization. Visit the Celo dApp, connect your wallet, and claim 500 $cDCU. Simple, fast, no cross-chain gas complexity. -

-

Organizer multiplier:

-

- Organizing a verified campaign event counts toward your cleanup total based on participant count. Run a 10-person cleanup, earn 10 cleanup credits toward your next $cDCU claim. -

-

Future mechanism: Burn-to-earn.

-

- As the network matures and $bDCU reaches meaningful market value, a second bridge path will open. Burn a fixed dollar-equivalent of $bDCU on Base to mint $cDCU on Celo instantly - without needing cleanup count accumulation. The burn ratio will be oracle-priced in USD, not fixed in token amount, so it stays fair regardless of market conditions. Parameters will be set by community vote before launch. -

+
+
+
Organizer Multiplier
+

+ Applies on both platforms. A 10-person verified cleanup event counts as 10 cleanup credits, whether organized via Base mini app or Celo full platform. +

+
+
+
Path 03: Burn-to-Earn (Base)
+

+ Future Base-only path: Burn a fixed dollar-equivalent of $bDCU on Base to mint $cDCU instantly, skipping cleanup accumulation. +

+
+
- {/* Impact System */} -
-
-

Impact System

-
-
-

Impact Products

-

Dynamic NFTs that evolve with your cleanup history. Each verified action levels up your Impact Product, building a portable environmental reputation that travels across ecosystems - not locked to any single platform.

+ {/* Impact System - Visual Cards */} +
+ +
+
+
+
-
-

Verifier System

-

Stake $bDCU or $cDCU to join the verifier network. Verifiers review proof-of-impact submissions and earn rewards for accurate decisions. Slashing applies for false approvals, keeping the verification layer honest.

+

Impact Products

+

Dynamic NFTs that evolve with your history. Build a portable environmental reputation that travels across ecosystems - not locked to any platform.

+
+
+
+
-
-

Hypercerts

-

Minted after every 10 verified cleanups. Each Hypercert is a permanent ERC-1155 impact certificate - usable for grant applications, ESG reporting, and onchain identity. Your cleanup history becomes a credential.

+

Verifier Network

+

Stake to join the verification layer. Review submissions and earn rewards. Slashing applies for false approvals, keeping the layer honest.

+
+
+
+
+

Hypercerts

+

Permanent ERC-1155 impact certificates minted every 10 cleanups. Usable for grant applications, ESG reporting, and onchain identity.

- {/* Token Lifecycle */} -
-
-

Token Lifecycle

-
- - - - - - - - - - - - - -
$bDCU Path$cDCU Path
Earn via Base mini appEarn via 5 verified cleanups
Stake for verifier accessStake for governance and verification
Trade on Base DEXesBuild Impact Product reputation
Burn to earn $cDCU (future)Vote on Gardens.fund proposals
+ {/* Token Lifecycle - Comparison */} +
+ +
+
+ {/* bDCU Path */} +
+
+
+ +
+

$bDCU Path (Action)

+
+
+
+
01
+

Earn

+

Via Base mini app cleanups and community streaks.

+
+
+
02
+

Stake

+

To access verifier roles and earn accuracy rewards.

+
+
+
03
+

Trade

+

On Base DEXes for instant liquidity.

+
+
+
04
+

Burn

+

Future option to upgrade reputation directly.

+
+
+
+ {/* cDCU Path */} +
+
+
+ +
+

$cDCU Path (Proof)

+
+
+
+
01
+

Claim

+

After every 5 verified cleanups on Base.

+
+
+
02
+

Stake

+

For long-term governance and verification power.

+
+
+
03
+

Build

+

An onchain CV via Impact Products and Hypercerts.

+
+
+
04
+

Vote

+

On Gardens.fund proposals to distribute funding.

+
+
+
- {/* Governance Timeline */} -
-
-

Governance Timeline

-

- Governance is in development. Here is where it stands: -

-
-
- Q2 2026 -

Gardens.fund community live on Celo.

+ {/* Governance Timeline - Visual Vertical */} +
+ +
+ {/* Connector Line */} +
+ +
+
+
-
- Q3 2026 -

First community vote on funding pool allocation.

+
+ Q2 2026 +

Gardens.fund Launch

+

Community curation live on Celo. First cohorts of verifiers onboarded.

-
- Q4 2026 -

Full $cDCU governance launch.

+
+ +
+
+ +
+
+ Q3 2026 +

First Funding Vote

+

Active participants vote on the first public allocation from the treasury.

+
+
+ +
+
+ +
+
+ Q4 2026 +

Full DAO Launch

+

Complete $cDCU-weighted voting on protocol and parameters.

-

- Active coordinators and verifiers building their $cDCU holdings now will have the strongest voice when governance opens. -

+

+ Building counts. Those earning $cDCU reputation now will have the strongest voice at launch. +

- {/* Closing */} -
-
-

- Built for a transparent global impact economy - where every cleanup becomes verified onchain action. + {/* Closing - Litepaper style */} +

+
+

Built for Proof. Scaled for Impact.

+

+ "Every cleanup becomes a verified onchain action. Every actor becomes part of a global coordination network."

+
+ + Read Litepaper + + + Back to Home + +
-
+
+ + {/* Footer */} +
+
+
+
+ DeCleanup Network +
+

2026 © DeCleanup Network. Open Infrastructure.

+
+
+
); } diff --git a/app/userguide/page.tsx b/app/userguide/page.tsx index c2b72e5..cff2523 100644 --- a/app/userguide/page.tsx +++ b/app/userguide/page.tsx @@ -1,5 +1,6 @@ import type { Metadata } from "next"; import Link from "next/link"; +import SubPageNav from "@/components/SubPageNav"; import WhoIsThisForCards from "@/components/WhoIsThisFor/WhoIsThisForCards"; export const metadata: Metadata = { @@ -11,23 +12,8 @@ export const metadata: Metadata = { export default function UserGuidePage() { return (
-
-
- - - - - Back to Home - -
+ +

diff --git a/components/CommunityImpactSection/CommunityImpactSection.tsx b/components/CommunityImpactSection/CommunityImpactSection.tsx index a8feefc..b84a88e 100644 --- a/components/CommunityImpactSection/CommunityImpactSection.tsx +++ b/components/CommunityImpactSection/CommunityImpactSection.tsx @@ -1,5 +1,6 @@ import React from "react"; import Image from "next/image"; +import { ExternalLink } from "lucide-react"; const galleryImages = [ { src: "/testimonial1.jpg", alt: "Community cleanup" }, @@ -41,9 +42,12 @@ export default function CommunityImpactSection() { href="https://x.com/8oobfbldkiw0i9l/status/1848054399597523225" target="_blank" rel="noopener noreferrer" - className="bg-neutral-900 border border-neutral-800 p-6 lg:p-8 rounded-2xl block hover:border-[#58B12F]/30 transition-colors" + className="bg-neutral-900 border border-neutral-800 p-6 lg:p-8 rounded-2xl block hover:border-[#58B12F]/30 transition-colors group" > -

HEM Japan

+
+

HEM Japan

+ +

Early partner organizing cleanups across Japan using DeCleanup's verification system. 2024: 12 active users, 9 cleanup events.

@@ -52,9 +56,12 @@ export default function CommunityImpactSection() { href="https://x.com/trinitymorphy/status/1856394593824014341" target="_blank" rel="noopener noreferrer" - className="bg-neutral-900 border border-neutral-800 p-6 lg:p-8 rounded-2xl block hover:border-[#58B12F]/30 transition-colors" + className="bg-neutral-900 border border-neutral-800 p-6 lg:p-8 rounded-2xl block hover:border-[#58B12F]/30 transition-colors group" > -

Pestathon

+
+

Pestathon

+ +

University campaign combining education + action. Students learned environmental care while cleaning campus. DeCleanup added 120 USDGLO to Atlantis Impact Miner rewards. 2024: 9 active users, 4 cleanup events.

diff --git a/components/SubPageNav.tsx b/components/SubPageNav.tsx new file mode 100644 index 0000000..47ae704 --- /dev/null +++ b/components/SubPageNav.tsx @@ -0,0 +1,79 @@ +"use client"; + +import Link from "next/link"; +import Image from "next/image"; +import { Menu, X } from "lucide-react"; +import { useState } from "react"; +import { usePathname } from "next/navigation"; +import StartCleaningChoice from "./StartCleaningChoice/StartCleaningChoice"; + +export default function SubPageNav() { + const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const pathname = usePathname(); + + const allLinks = [ + { href: "/", label: "Home" }, + { href: "/litepaper", label: "Litepaper" }, + { href: "/tokenomics", label: "Tokenomics" }, + { href: "/toc", label: "Theory of Change" }, + { href: "/docs", label: "Dev Docs" }, + { href: "/userguide", label: "User Guide" }, + ]; + + // Filter out the link for the current page + const links = allLinks.filter(link => { + // Normalize paths by removing trailing slashes for comparison + const normalizedPath = pathname.replace(/\/$/, "") || "/"; + const normalizedLink = link.href.replace(/\/$/, "") || "/"; + return normalizedPath !== normalizedLink; + }); + + return ( + + ); +}