Skip to content

Repository files navigation

$WOODCOIN — Cinematic Website

A cinematic remake of savethewood.online: the charity meme coin on Robinhood Chain. A 5% trade tax splits two ways — 4% to the Canadian Red Cross Wildfire Fund, and a 1% platform fee to Coin Barrell, who buy back and burn $WOODCOIN with it.

Design

Dark, film-grade look built around generated artwork:

  • Full-screen hero with a burning-forest backdrop, live ember particle engine, and a floating golden wood coin
  • GSAP + ScrollTrigger scroll animations, Lenis smooth scrolling, film grain overlay
  • "The Million for Canada" donation counter with a $1M progress bar, milestones, verifiable vault stats, a Proof of Donation receipts feed, and an interactive impact slider

Stack

Plain HTML/CSS/JS. GSAP, ScrollTrigger and Lenis load from CDNs and are progressive enhancements — the site works fine without them.

  • index.html — all sections
  • styles.css — cinematic dark design system
  • script.js — donation counter, ember engine, animations, tabs, counters
  • assets/ — generated hero, coin, and regrowth artwork (web-compressed)

Run locally

python3 -m http.server 8000

Then open http://localhost:8000.

Live data sources

live.js pulls real data in the browser on every page load — all public, CORS-enabled, no API keys:

  • Fire zones + hectares burned — Natural Resources Canada CWFIS GeoServer (m3_polygons_current, satellite-derived perimeters)
  • Satellite hotspots (24h) — NRCan CWFIS (hotspots_last24hrs)
  • Live US AQI (worst of Milwaukee / Chicago / Detroit) — Open-Meteo Air Quality API
  • ETH price — CoinGecko (used to convert vault balances to USD)
  • Vault + rewards balances — Blockscout-compatible explorer API; activates when you fill in the CHAIN config at the top of live.js with the vault address, rewards address, and explorer API base URL at launch

All feeds fail gracefully — if a source is down, the page keeps recent static figures.

Updating the donation counter

Everything in "The Million for Canada" section renders from the FUND object at the top of script.js:

const FUND = {
  goal: 1_000_000,
  donatedUsd: 0,   // total donated to the Canadian Red Cross so far
  vaultUsd: 0,     // current Relief Vault balance (est. USD)
  burnedUsd: 0,    // total $WOOD bought back & burned (est. USD)
  receipts: [
    // { date: "2026-08-01", amountUsd: 12500, txUrl: "...", receiptUrl: "..." }
  ],
};

Update the numbers (and push a receipt object per donation) and the counter, progress bar, stat cards and receipts feed all update automatically.

Before launch

  • Replace the Launching soon contract address in index.html (#contractAddr)
  • Fill in the real referral links on the Based Bot / Axiom / GMGN / Sigma buttons (currently #)
  • Point the two "Verify on explorer" links at the actual Relief Vault and buyback-burn wallet addresses

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages