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.
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
Plain HTML/CSS/JS. GSAP, ScrollTrigger and Lenis load from CDNs and are progressive enhancements — the site works fine without them.
index.html— all sectionsstyles.css— cinematic dark design systemscript.js— donation counter, ember engine, animations, tabs, countersassets/— generated hero, coin, and regrowth artwork (web-compressed)
python3 -m http.server 8000Then open http://localhost:8000.
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
CHAINconfig at the top oflive.jswith 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.
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.
- Replace the
Launching sooncontract address inindex.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