diff --git a/app/coordinate/page.tsx b/app/coordinate/page.tsx index ef88e76..104bc6f 100644 --- a/app/coordinate/page.tsx +++ b/app/coordinate/page.tsx @@ -287,8 +287,8 @@ export default function CoordinatePage() {

First Pool

Sponsored by Ethereum for the World

-
- Active +
+ coming soon (not active)
diff --git a/app/funders/page.tsx b/app/funders/page.tsx index e91fdd7..0dd9781 100644 --- a/app/funders/page.tsx +++ b/app/funders/page.tsx @@ -321,309 +321,18 @@ export default function FundersPage() { - {/* Expandable: Dive into tokenomics */} -
- + {/* Dive into tokenomics Link */} +
+ Dive into tokenomics - - + + -
-
- {/* Embedded Tokenomics Page Content */} - - {/* Page Header for Tokenomics Section */} -
-

- Tokenomics -

-

- The dual-token model powering DeCleanup's global impact ecosystem. -

-
- - {/* SECTION 1 - TWO-TOKEN OVERVIEW */} -
-
- {/* Card 1 - $bDCU - Base */} -
-

- BASE TOKEN: $bDCU -

-

- The "action token." Used on Base for: -

-
    -
  • - - cleanup rewards -
  • -
  • - - streaks -
  • -
  • - - referrals -
  • -
  • - - verifier staking -
  • -
  • - - simple incentives -
  • -
- -
- - {/* Card 2 - $cDCU - Celo */} -
-

- CELO TOKEN: $cDCU -

-

- Reputation, governance & advanced utilities -

-
    -
  • - - Earned through verified cleanups in the Celo dApp -
  • -
  • - - Non-tradable by design (reputation-linked) -
  • -
  • - - Used for governance via Gardens.fund -
  • -
  • - - Stake to access Verifier roles -
  • -
  • - - Required for streaks, dashboard, analytics -
  • -
  • - - Powers the Celo ReFi + governance layer -
  • -
- -
-
-
- - {/* SECTION 2 - TOKEN COMPARISON TABLE */} -
-

- Token Comparison -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- $bDCU (Base) - - $cDCU (Celo) -
ChainBaseCelo
TypeLiquid ERC-20Reputation + Governance
TransferableYesNon-tradable
Primary UseFast incentivesVerified impact + governance
Earned FromMini app cleanupsFull dApp cleanups
Staking PurposeVerifier accessVerifier access + governance
GovernanceNoYes (Gardens.fund)
HypercertsNoYes (every 10 cleanups)
MarketTradableNon-tradable
Total SupplyTBA10,000,000 fixed supply
-
-
- - {/* SECTION 4 - TOKEN LIFECYCLE - Simplified */} -
-

- Token Lifecycle -

- -
- {/* $bDCU Lifecycle */} -
-

- $bDCU Lifecycle -

-
- {/* Vertical connector line */} -
- -
-
-
-
-
1 - Earn through the Base mini app
-
-
- -
-
-
-
2 - Stake to become a Verifier
-
-
- -
-
-
-
3 - Trade freely on Base DEXes
-
-
-
-
-
- - {/* $cDCU Lifecycle */} -
-

- $cDCU Lifecycle -

-
- {/* Vertical connector line */} -
- -
-
-
-
-
1 - Earn through verified cleanups
-
-
- -
-
-
-
2 - Stake for governance and Verifier role
-
-
- -
-
-
-
3 - Vote on proposals through Gardens.fund
-
-
-
-
-
-
-
- -
-
+ + ); diff --git a/app/litepaper/page.tsx b/app/litepaper/page.tsx index a426efc..dbc9b79 100644 --- a/app/litepaper/page.tsx +++ b/app/litepaper/page.tsx @@ -212,13 +212,17 @@ export default function LitepaperPage() { {/* 3. The Ecosystem (Twin Engine) */}
-

THE ECOSYSTEM

+

THE ECOSYSTEM

{/* Left: Base App */} -
+
-
+
@@ -244,8 +248,12 @@ export default function LitepaperPage() { $bDCU rewards
+ +
+ Open on Farcaster +
-
+ {/* Center Connector */}
@@ -255,9 +263,13 @@ export default function LitepaperPage() {
{/* Right: Celo dApp */} -
+
-
+
@@ -283,8 +295,12 @@ export default function LitepaperPage() { Funding governance
+ +
+ Explore Celo dApp +
-
+
@@ -350,44 +366,25 @@ export default function LitepaperPage() {
-

Utility Token

- BASE +

$bDCU

+ BASE
+
Utility Token
-
-
- - Swap ETH - - - Swap USDT - -
- - - 0x30171b70...b2107 - -
+ + + 0x30171b70...b2107 +
@@ -399,14 +396,19 @@ export default function LitepaperPage() {
-

Governance

- CELO +

$cDCU

+ CELO
-
diff --git a/app/toc/page.tsx b/app/toc/page.tsx index e40ed7b..d8cae5c 100644 --- a/app/toc/page.tsx +++ b/app/toc/page.tsx @@ -135,13 +135,13 @@ export default function TocPage() { {/* ─── 01 Root Cause ─── */}
- 01 — Root Cause + 01 - Root Cause The problem isn't a lack of action

Volunteers organize. NGOs mobilize. Communities clean every single day. The problem is that this action remains - invisible — producing no data that funders, partners, or institutions can trust, verify, or build upon. + invisible - producing no data that funders, partners, or institutions can trust, verify, or build upon.

@@ -199,19 +199,19 @@ export default function TocPage() { trusted, portable data that connects grassroots action to institutional funding, policy decisions, and regenerative ecosystem coordination.

-

DeCleanup Network — Long-Term Vision (5–10 Years)

+

DeCleanup Network - Long-Term Vision (5-10 Years)

{/* ─── 02 Core Logic ─── */}
- 02 — Core Logic + 02 - Core Logic From photo to funded impact

A single verified submission triggers a chain of value that compounds over time.

- {/* Flow steps — connected with connector lines on desktop */} + {/* Flow steps - connected with connector lines on desktop */}
{/* Connector line on desktop */}
@@ -219,10 +219,10 @@ export default function TocPage() {
{[ { num: "01", Icon: Camera, label: "Documentation", desc: "Geotagged before/after photos in under 60 seconds" }, - { num: "02", Icon: ScanSearch, label: "Verification", desc: "DMRV — AI + human review validates evidence" }, + { num: "02", Icon: ScanSearch, label: "Verification", desc: "DMRV - AI + human review validates evidence" }, { num: "03", Icon: Link2, label: "Onchain Record", desc: "Immutable anchoring on Base / Celo" }, { num: "04", Icon: Trophy, label: "Reward", desc: "$DCU + Impact Product NFT per verified event" }, - { num: "05", Icon: Waves, label: "Capital Flow", desc: "Funders use verified dashboards → fund more cleanups" }, + { num: "05", Icon: Waves, label: "Capital Flow", desc: "Funders use verified dashboards - fund more cleanups" }, ].map((step, i) => (

{step.num}

@@ -249,10 +249,9 @@ export default function TocPage() { We discovered that{" "} grassroots cleanup cannot attract institutional capital because it produces no verifiable data.{" "} So we are prioritizing{" "} - verification infrastructure first — a 60-second documentation process that - creates immutable onchain records. We are testing this by running a hybrid AI + human validation pipeline and piloting with Giveth, - Gitcoin, and Octant. If we can show{" "} - 80% DMRV compliance and 5+ funders using dashboard data by month 12, we will scale + verification infrastructure first - a 60-second documentation process that + creates immutable onchain records. We are testing this by running a hybrid AI + human validation pipeline and piloting with few communities around the world. If we can show{" "} + 80% DMRV compliance and 3+ funders using dashboard data by month 12, we will scale organizer activation across 10+ countries.

@@ -260,8 +259,8 @@ export default function TocPage() { {/* ─── 03 Inputs / Outputs ─── */}
- 03 — Resources - Inputs → Outputs + 03 - Resources + Inputs - Outputs

What we put in and what the network produces. Outputs connect to measurable behavior change.

@@ -276,7 +275,7 @@ export default function TocPage() {
{[ { Icon: Users, text: "Human capital (volunteers, organizers, devs)" }, - { Icon: Code2, text: "Technology (Base + Celo, YOLOv8, DMRV)" }, + { Icon: Code2, text: "Technology (Base + Celo, AI/ML, DMRV)" }, { Icon: Coins, text: "Financial (Giveth, Gitcoin, Octant, $bDCU)" }, { Icon: Handshake, text: "Partnerships (disposal, municipal, ReFi)" }, { Icon: BookOpen, text: "Knowledge (DMRV, ESG, impact standards)" }, @@ -319,7 +318,7 @@ export default function TocPage() { {/* ─── 04 Pathways ─── */}
- 04 — Causal Pathways + 04 - Causal Pathways Four pathways to systemic change

Each pathway is an independent theory of how one type of intervention produces lasting change. @@ -330,7 +329,7 @@ export default function TocPage() { { pathwayId: "P1", title: "Trust Creation", - sub: "Simple docs → capital flows", + sub: "Simple docs - capital flows", accent: "green" as const, steps: [ "Documentation under 60s", @@ -343,7 +342,7 @@ export default function TocPage() { { pathwayId: "P2", title: "Coordination Scaling", - sub: "Shared infrastructure → network effects", + sub: "Shared infrastructure - network effects", accent: "yellow" as const, steps: [ "Shared DMRV across regions", @@ -356,12 +355,12 @@ export default function TocPage() { { pathwayId: "P3", title: "Incentive Alignment", - sub: "Recognition → sustained behavior", + sub: "Recognition - sustained behavior", accent: "green" as const, steps: [ "$bDCU structured recognition", "Tangible acknowledgment per action", - "Episodic → sustained participation", + "Episodic - sustained participation", "Documentation normalized", "Data quality improves", ], @@ -369,10 +368,10 @@ export default function TocPage() { { pathwayId: "P4", title: "Verification Credibility", - sub: "AI + human → institutional trust", + sub: "AI + human - institutional trust", accent: "yellow" as const, steps: [ - "YOLOv8 (TACO dataset)", + "Open source waste detection model", "AI flags for human review", "Hybrid reduces fraud", "Quality = network reputation", @@ -407,7 +406,7 @@ export default function TocPage() { {/* ─── 05 SMART Outcomes ─── */}

- 05 — SMART Outcomes + 05 - SMART Outcomes Measurable targets across three horizons

Outputs are activity. Outcomes are behavior change. Every target passes the "So What?" test. @@ -417,40 +416,40 @@ export default function TocPage() { {[ { phase: "Short-Term", - range: "0–12 Months", + range: "0-12 Months", color: "text-[#58B12F]", borderColor: "border-[#58B12F]/30", outcomes: [ - "500 verified submissions (DMRV)", - "50 organizers in 10+ countries", - "40% repeat volunteer rate", + "300 verified submissions (DMRV)", + "25 organizers in 10+ countries", + "30% repeat volunteer rate", "80% DMRV compliance", - "85% YOLOv8 accuracy", - "5+ funders using dashboards", + "85% AI waste detection accuracy", + "3+ funders using dashboards", ], }, { phase: "Medium-Term", - range: "12–24 Months", + range: "12-24 Months", color: "text-[#FAFF00]", borderColor: "border-[#FAFF00]/20", outcomes: [ "3+ funding decisions citing DeCleanup", - "100k kg verified waste documented", - "200+ stakers in verification", - "5 multi-country campaigns", + "75k kg verified waste documented", + "100+ stakers in verification", + "3 multi-country campaigns", "10+ governance proposals", "3+ ReFi integrations", ], }, { phase: "Long-Term", - range: "24–48 Months", + range: "24-48 Months", color: "text-white", borderColor: "border-white/10", outcomes: [ - "$500k+ capital to verified cleanups", - "50% partners adopting DMRV", + "$100k+ capital to verified cleanups", + "30% partners adopting DMRV", "70% community-initiated campaigns", "10+ ESG reports referencing data", "80% decisions by community vote", @@ -479,7 +478,7 @@ export default function TocPage() { {/* ─── 06 Decentralization Roadmap ─── */}

- 06 — Decentralization Roadmap + 06 - Decentralization Roadmap Verification: trusted to trustless

Progressive decentralization. Quality standards first, then distributed responsibility. @@ -512,7 +511,7 @@ export default function TocPage() { desc: "AI-assisted validation; human confirms.", borderActive: false, items: [ - "YOLOv8 trash detection", + "Open source trash detection", "Duplicate detection", "Geo inconsistency flagging", "Fraud probability scoring", @@ -525,7 +524,7 @@ export default function TocPage() { Icon: Lock, title: "Phase 3", subtitle: "Trustless", - desc: "Token holders stake $bDCU to verify; fully decentralized.", + desc: "Decentralized: token holders become verifiers.", borderActive: false, items: [ "Community staking for verification", @@ -565,7 +564,7 @@ export default function TocPage() { {/* ─── 07 Stakeholders ─── */}

- 07 — Stakeholders + 07 - Stakeholders Who makes the network work

Six participant types. The network functions when all six are active. @@ -575,8 +574,8 @@ export default function TocPage() { {[ { Icon: Users, name: "Volunteers", label: "Clean. Document. Earn.", accent: "green" as const }, { Icon: ClipboardList, name: "Organizers", label: "Launch campaigns", accent: "green" as const }, - { Icon: Wallet, name: "Funders", label: "Giveth · Gitcoin · Octant", accent: "yellow" as const }, - { Icon: Coins, name: "$bDCU Holders", label: "Govern. Stake. Verify.", accent: "yellow" as const }, + { Icon: Wallet, name: "Funders", label: "Anyone can fund impact", accent: "yellow" as const }, + { Icon: Coins, name: "$DCU Holders", label: "Trade. Govern. Stake. Verify.", accent: "yellow" as const }, { Icon: Building2, name: "Partners", label: "Municipalities & waste", accent: "green" as const }, { Icon: Code2, name: "Developers", label: "Build & maintain", accent: "green" as const }, ].map(({ Icon, name, label, accent }) => ( @@ -587,12 +586,6 @@ export default function TocPage() {

{name}

{label}

- {name === "$bDCU Holders" && ( - - )}
))} @@ -601,8 +594,8 @@ export default function TocPage() { {/* ─── 08 Assumptions ─── */}
- 08 — Assumptions - What must be true — and how we test it + 08 - Assumptions + What must be true and how we test it

Every pathway rests on assumptions. We state them, test early, and pivot if they fail.

@@ -618,12 +611,12 @@ export default function TocPage() { {[ - ["Volunteers document if process <60s", "Month 1–3", "70%+ completion rate"], - ["Funders value verified over self-reported", "Month 3–6", "1+ funding decision cites data"], - ["Onchain anchoring adds trust", "Month 3–6", "<10% user confusion"], - ["Community governance attracts participants", "Month 12–18", "10+ proposals, 20%+ participation"], - ["AI verification improves accuracy", "Month 3–6", "85%+ trash detection accuracy"], - ["Fair-launch prevents extractive behavior", "Month 1–6", "No holder >5%; <30% sell pressure"], + ["Volunteers document if process <60s", "Month 1-3", "70%+ completion rate"], + ["Funders value verified over self-reported", "Month 3-6", "1+ funding decision cites data"], + ["Onchain anchoring adds trust", "Month 3-6", "<10% user confusion"], + ["Community governance attracts participants", "Month 12-18", "5+ proposals, 10%+ participation"], + ["AI verification improves accuracy", "Month 3-6", "85%+ trash detection accuracy"], + ["Fair-launch prevents extractive behavior", "Month 1-6", "No holder >5%; <30% sell pressure"], ].map((row, i) => ( {row[0]} @@ -638,23 +631,23 @@ export default function TocPage() { {/* ─── 09 Risk Register ─── */}
- 09 — Risk Register - Known risks & how we respond + 09 - Risk Register + Known risks - how we respond

Good strategy names risks, assigns probability and impact, and prepares mitigations.

{[ - { level: "High", name: "Low Adoption from Friction", mit: "UX target <60s; feedback on every rejection.", owner: "Product Lead" }, - { level: "High", name: "Funder Indifference to Verified Data", mit: "Validate with grant partners; reframe to coordination if needed.", owner: "BD Lead" }, - { level: "High", name: "Regulatory Uncertainty", mit: "Utility-only framing; legal counsel as we scale.", owner: "Legal" }, - { level: "Medium", name: "Token Speculation Overrides Utility", mit: "Fair-launch; staking for verification.", owner: "Tokenomics" }, - { level: "Medium", name: "AI Verification Errors", mit: "Hybrid: AI flags, humans confirm; publish metrics.", owner: "Tech Lead" }, - { level: "Medium", name: "Governance Apathy", mit: "Progressive decentralization; expand as participation proves sustained.", owner: "Community" }, - { level: "Medium", name: "Local Disposal Gaps", mit: "Partner with municipalities before expanding region.", owner: "Partnerships" }, - { level: "Medium", name: "Data Quality Inconsistency", mit: "Strict DMRV; reject with actionable feedback.", owner: "Verification" }, - { level: "Managed", name: "Community Trust Erosion", mit: "Transparent governance; fair-launch; no insider advantages.", owner: "Core Team" }, + { level: "High", name: "Low Adoption from Friction", mit: "UX target <60s; feedback on every rejection." }, + { level: "High", name: "Funder Indifference to Verified Data", mit: "Validate with grant partners; reframe to coordination if needed." }, + { level: "High", name: "Regulatory Uncertainty", mit: "Utility-only framing; legal counsel as we scale." }, + { level: "Medium", name: "Token Speculation Overrides Utility", mit: "Fair-launch; staking for verification." }, + { level: "Medium", name: "AI Verification Errors", mit: "Hybrid: AI flags, humans confirm; publish metrics." }, + { level: "Medium", name: "Governance Apathy", mit: "Progressive decentralization; expand as participation proves sustained." }, + { level: "Medium", name: "Local Disposal Gaps", mit: "Partner with municipalities before expanding region." }, + { level: "Medium", name: "Data Quality Inconsistency", mit: "Strict DMRV; reject with actionable feedback." }, + { level: "Managed", name: "Community Trust Erosion", mit: "Transparent governance; fair-launch; no insider advantages." }, ].map((r) => { const levelMap = { High: { @@ -693,8 +686,7 @@ export default function TocPage() {

{r.name}

-

{r.mit}

-

Owner: {r.owner}

+

{r.mit}

); })} diff --git a/app/userguide/page.tsx b/app/userguide/page.tsx index f8f2416..5093f3b 100644 --- a/app/userguide/page.tsx +++ b/app/userguide/page.tsx @@ -110,7 +110,7 @@ export default function UserGuidePage() {

Verification

- Submissions are reviewed by community verifiers ($bDCU stakers). If the submission has geolocation, clear and authentic photos, it gets approved; otherwise it may be rejected. + Submissions are reviewed at the first stage by the team and trusted experts, then upon community growth it becomes verifiers' task (token stakers). If the submission has geolocation, clear and authentic photos, it gets approved; otherwise it may be rejected.

Rewards are subject to change based on token price reflecting multiplier formula at the moment of claim.

diff --git a/components/HeroSection/Hero.tsx b/components/HeroSection/Hero.tsx index 1a200e9..2cccc7d 100644 --- a/components/HeroSection/Hero.tsx +++ b/components/HeroSection/Hero.tsx @@ -73,7 +73,7 @@ const Hero = () => { rel="noopener noreferrer" className="rounded-xl bg-white px-6 py-3 font-medium text-black transition-all duration-300 hover:bg-white/90 hover:shadow-[0_0_24px_rgba(255,255,255,0.15)]" > - Start Earning + participate now { Read Litepaper
+ + {/* Sponsored by info */} +

+ First Pool Sponsored by Ethereum for the World +

); diff --git a/components/UseDeCleanupToday/UseDeCleanupToday.tsx b/components/UseDeCleanupToday/UseDeCleanupToday.tsx index 0bf5a39..1034a07 100644 --- a/components/UseDeCleanupToday/UseDeCleanupToday.tsx +++ b/components/UseDeCleanupToday/UseDeCleanupToday.tsx @@ -3,359 +3,129 @@ import Link from "next/link"; import Image from "next/image"; interface AppConfig { + chain: string; title: string; subtitle: string; bullets: string[]; - buttonLabel: string; - buttonHref: string; - buttonDisabled: boolean; - secondButtonLabel?: string; - secondButtonHref?: string; - note: string | null; - imageUrl?: string; + href: string; + logo: string; + accentColor: string; } const UseDeCleanupToday = () => { - const apps: AppConfig[] = [ + const ecosystems: AppConfig[] = [ { - title: "Base mini app", - subtitle: "Fast actions, onchain rewards.", + chain: "BASE", + title: "Mini App", + subtitle: "Lightweight entry for individuals via Farcaster or Base app.", bullets: [ - "Log in and share cleanup impact", - "Earn and use $bDCU on Base", + "Photo-based logging", + "Quick verification", + "$bDCU rewards", ], - buttonLabel: "Open mini app on Farcaster", - buttonHref: - "https://farcaster.xyz/miniapps/SfsGBDcHpuSA/decleanup-rewards", - buttonDisabled: false, - secondButtonLabel: "Open web app", - secondButtonHref: "https://miniapp.decleanup.net", - note: null, + href: "https://farcaster.xyz/miniapps/SfsGBDcHpuSA/decleanup-rewards", + logo: "/base-logo-white.svg", + accentColor: "#58B12F", }, { - title: "$bDCU token on Base", - subtitle: "Cleanup reward + trading token.", + chain: "CELO", + title: "Full Platform", + subtitle: "Full platform for individuals, NGOs and organizers. Governance and coordination.", bullets: [ - "Live on Base", - "Used for quick rewards and trading", - "Holders will be airdropped $cDCU for the full experience", + "Geolocation and maps", + "Impact reports (Hypercerts)", + "Funding governance", ], - buttonLabel: "Swap ETH / $bDCU", - buttonHref: "https://app.uniswap.org/swap?chain=base&inputCurrency=ETH&outputCurrency=0x30171b7014c02229497CdE6745DD3aD821F12b07", - buttonDisabled: false, - secondButtonLabel: "Swap USDT / $bDCU", - secondButtonHref: "https://app.uniswap.org/swap?chain=base&inputCurrency=0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2&outputCurrency=0x30171b7014c02229497CdE6745DD3aD821F12b07", - note: "Contract: 0x30171b7014c02229497CdE6745DD3aD821F12b07", - imageUrl: "/images/dcu-token-logo.png", - }, - { - title: "Full dApp on Celo", - subtitle: "All DeCleanup Rewards features, plus governance.", - bullets: [ - "Full dashboard, leaderboard, streaks", - "Recycables rewards promo, supported by DeTrash Global and Recy.App", - "Impact Products and $cDCU rewards", - "COMING_SOON_HEADING", - "Staking", - "Governance with $cDCU on Gardens.fund", - "Hypercerts: 1 cleanup hypercert after every 10 verified cleanups", - ], - buttonLabel: "MVP on Celo Sepolia", - buttonHref: "https://dapp.decleanup.net", - buttonDisabled: false, - note: "$cDCU starts as a reputation + governance token for early cleaners.", + href: "https://dapp.decleanup.net", + logo: "/celo-celo-logo.svg", + accentColor: "#FAFF00", }, ]; return (
-
- {/* Section Header - after hero: EARN DECLEANUP REWARDS TODAY */} +
+ {/* Section Header */}

- EARN DECLEANUP REWARDS TODAY + THE ECOSYSTEM

-

- Choose your path to impact. Start with our Base Mini App for quick - rewards or dive into the full ecosystem on Celo. -

- {/* Cards Layout: Two Base cards side by side, then Celo full width */} -
- {/* Base Cards - Side by Side */} -
- {/* Base / Celo CTA cards: Aura-style hover-reactive glow (subtle border + shadow) */} - {apps.slice(0, 2).map((app, index) => ( + {/* Cards Layout */} +
+ {ecosystems.map((app, index) => ( + + {/* Decorative background glow */}
- {/* Chain Label */} -
- Base -
- - {/* Image (if present) */} - {app.imageUrl && ( -
- $bDCU token logo -
- )} - - {/* Title - Secondary font, normal case */} -

- {app.title} -

- - {/* Subtitle */} -

- {app.subtitle} -

+ className="absolute -top-24 -right-24 w-48 h-48 rounded-full blur-[80px] opacity-0 group-hover:opacity-20 transition-opacity duration-500" + style={{ backgroundColor: app.accentColor }} + /> - {/* Bullet Points */} -
    - {app.bullets.map((bullet, idx) => { - // Special handling for swap links bullet - if (bullet.startsWith("Swap:")) { - const ethSwapUrl = "https://app.uniswap.org/swap?chain=base&inputCurrency=ETH&outputCurrency=0x30171b7014c02229497CdE6745DD3aD821F12b07"; - const usdtSwapUrl = "https://app.uniswap.org/swap?chain=base&inputCurrency=0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2&outputCurrency=0x30171b7014c02229497CdE6745DD3aD821F12b07"; - return ( -
  • - - - Swap:{" "} - - ETH / $bDCU - - {", "} - - USDT / $bDCU - - -
  • - ); - } - return ( -
  • - - {bullet} -
  • - ); - })} -
- - {/* Note (if present) */} - {app.note && ( -

- {app.note.startsWith("Contract:") ? ( - <> - Contract:{" "} - - {app.note.split("Contract:")[1].trim()} - - - ) : ( - app.note - )} -

- )} - - {/* Buttons */} -
- {app.buttonDisabled ? ( - - ) : ( - - {app.buttonLabel} - - )} - - {/* Second button (if present) */} - {app.secondButtonLabel && app.secondButtonHref && ( - - {app.secondButtonLabel} - - )} -
-
- ))} -
- - {/* Celo Card - Full Width; same hover-reactive glow */} - {apps[2] && ( -
- {/* Chain Label */} -
+ {/* Chain Label & Logo */} +
Celo - celo + + {app.chain} +
- {/* Title - Secondary font, normal case */} + {/* Title */}

- {apps[2].title} + {app.title}

{/* Subtitle */} -

- {apps[2].subtitle} +

+ {app.subtitle}

{/* Bullet Points */} -
    - {apps[2].bullets.map((bullet, idx) => { - // Special handling for bullet with DeTrash Global link (second bullet, index 1) - if (idx === 1) { - const linkUrl = "https://detrashtoken.com/en"; - const parts = bullet.split("DeTrash Global"); - return ( -
  • - - - {parts[0]} - - DeTrash Global - - {parts[1]} - -
  • - ); - } - // Special handling for "Coming soon" heading - if (bullet === "COMING_SOON_HEADING") { - return ( -
  • - - Coming soon: - -
  • - ); - } - return ( -
  • - - {bullet} -
  • - ); - })} +
      + {app.bullets.map((bullet, idx) => ( +
    • +
      + {bullet} +
    • + ))}
    - {/* Note (if present) */} - {apps[2].note && ( -

    - {apps[2].note.startsWith("Contract:") ? ( - <> - Contract:{" "} - - {apps[2].note.split("Contract:")[1].trim()} - - - ) : ( - apps[2].note - )} -

    - )} - - {/* Button */} - {apps[2].buttonDisabled ? ( - - ) : ( - - {apps[2].buttonLabel} - - )} -
- )} + {/* CTA Indicator */} +
+ Explore on {app.chain} + + + +
+ + ))}