From cc7d36962f9f442f321c65bedf8e233e7bc2dfe3 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 9 Apr 2026 18:00:15 +0000 Subject: [PATCH] feat: add StrainChain cannabis vertical marketing layer (AuthiChain + QRON) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce a dedicated StrainChain vertical marketing layer that fuses AuthiChain (blockchain authentication) and QRON (identity art) into a single cannabis-native protocol at strainchain.io. - marketing/strainchain/{README,intake,demo-mapping}.md — vertical-specific marketing docs with cannabis persona routing and intake SLAs - app/strainchain/demos/{cultivator,lab,dispensary,consumer,regulator}/ page.tsx — persona demo flows, each carrying a Problem/Solution/ Business Value marketing header and the StrainChain green theme - app/strainchain/demos/page.tsx — persona demo index gallery - outputs/strainchain-demo-manifest.json — canonical vertical manifest with why/value per persona and cross-references to the storymode manifest - app/strainchain/page.tsx + app/solutions/cannabis/page.tsx — marketing header blocks prepended to the existing cannabis surfaces - marketing/README.md + demo-mapping.md — cross-linked StrainChain vertical so the top-level marketing docs discover the cannabis persona tree https://claude.ai/code/session_01KVRDpKE5mdZdujmyp7BAPC --- app/solutions/cannabis/page.tsx | 6 + app/strainchain/demos/consumer/page.tsx | 112 +++++++++++++ app/strainchain/demos/cultivator/page.tsx | 113 +++++++++++++ app/strainchain/demos/dispensary/page.tsx | 112 +++++++++++++ app/strainchain/demos/lab/page.tsx | 112 +++++++++++++ app/strainchain/demos/page.tsx | 194 ++++++++++++++++++++++ app/strainchain/demos/regulator/page.tsx | 113 +++++++++++++ app/strainchain/page.tsx | 6 + marketing/README.md | 18 ++ marketing/demo-mapping.md | 21 +++ marketing/strainchain/README.md | 130 +++++++++++++++ marketing/strainchain/demo-mapping.md | 64 +++++++ marketing/strainchain/intake.md | 82 +++++++++ outputs/strainchain-demo-manifest.json | 79 +++++++++ 14 files changed, 1162 insertions(+) create mode 100644 app/strainchain/demos/consumer/page.tsx create mode 100644 app/strainchain/demos/cultivator/page.tsx create mode 100644 app/strainchain/demos/dispensary/page.tsx create mode 100644 app/strainchain/demos/lab/page.tsx create mode 100644 app/strainchain/demos/page.tsx create mode 100644 app/strainchain/demos/regulator/page.tsx create mode 100644 marketing/strainchain/README.md create mode 100644 marketing/strainchain/demo-mapping.md create mode 100644 marketing/strainchain/intake.md create mode 100644 outputs/strainchain-demo-manifest.json diff --git a/app/solutions/cannabis/page.tsx b/app/solutions/cannabis/page.tsx index bffac76..642ea54 100644 --- a/app/solutions/cannabis/page.tsx +++ b/app/solutions/cannabis/page.tsx @@ -1,3 +1,9 @@ +/** + * Demo: AuthiChain × StrainChain — Cannabis Solution + * Problem: A $7.9B illicit cannabis market is undermining 23 states of licensed operators, and MSOs have no single authentication OS that covers seed-to-sale, lab anchoring, METRC reconciliation, and consumer-facing verification across every state they ship to. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: The AuthiChain × StrainChain cannabis solution gives MSOs and licensed cultivators a single API for every state — Polygon-anchored seed-to-sale chain, lab COA hash anchoring, METRC bridge, scan-to-earn consumer rewards, and brand-protection monitoring across every SKU in the licensed market. + */ export const metadata = { title: 'AuthiChain for Cannabis — StrainChain Supply Chain Authentication', description: 'The only blockchain authentication platform built for cannabis. Seed-to-sale transparency, lab result anchoring, and consumer-facing authenticity verification.' }; export default function CannabisPage() { const stats = [ diff --git a/app/strainchain/demos/consumer/page.tsx b/app/strainchain/demos/consumer/page.tsx new file mode 100644 index 0000000..ef89cc1 --- /dev/null +++ b/app/strainchain/demos/consumer/page.tsx @@ -0,0 +1,112 @@ +/** + * Demo: StrainChain — Consumer + * Problem: Cannabis consumers have almost no way to verify what they paid for — potency, terpenes, origin, and licence status all live on fragile labels and PDFs that are routinely swapped, faked, or out of date. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: Any consumer, on any phone, scans the strain QRON and sees the full lab panel, cultivator story, and licensed chain of custody — and can earn QRON rewards for every authenticated scan, turning verification into a loyalty and community layer for the brand. + */ +import type { CSSProperties } from "react" + +export const metadata = { + title: "StrainChain Demo — Consumer Flow", + description: + "Any phone, any browser. Consumers scan the strain QRON and see lab results, grow story, and scan-to-earn rewards in 2.1 seconds.", +} + +const STEPS = [ + { + icon: "📱", + title: "Scan the strain QRON", + body: "Any phone camera works — no app to download. The strain QRON resolves to an AuthiChain record in 2.1 seconds.", + }, + { + icon: "🧪", + title: "See the full panel", + body: "Potency, terpenes, pesticide and heavy-metal screens, lab signature, and batch date — exactly as the licensed lab submitted them.", + }, + { + icon: "🌱", + title: "See the grow story", + body: "Cultivator facility, cultivar lineage, cure notes, and the branded QRON art. The story that belongs to the product travels with it.", + }, + { + icon: "🎁", + title: "Scan to earn", + body: "Every authenticated scan earns QRON rewards the consumer can redeem on their next dispensary visit. Verification becomes a loyalty loop.", + }, +] + +const OUTCOMES = [ + "2.1-second verification on any phone, no app", + "Full signed lab panel on every scan", + "Grow story + branded QRON art travels with the product", + "Scan-to-earn loyalty rewards in QRON", +] + +const body: CSSProperties = { background: "#080808", color: "#e5e5e5", minHeight: "100vh", fontFamily: "system-ui,sans-serif" } +const nav: CSSProperties = { padding: "16px 32px", display: "flex", alignItems: "center", gap: 16, borderBottom: "0.5px solid rgba(255,255,255,.07)" } +const stepCard: CSSProperties = { background: "rgba(255,255,255,.03)", border: "1px solid rgba(34,197,94,.15)", borderRadius: 14, padding: "22px 20px" } + +export default function ConsumerDemoPage() { + return ( +
+ + +
+
+ 📱 Persona · Consumer +
+

+ Scan it. Trust it. Earn on it. +

+

+ Consumers shouldn’t have to take a label’s word for it. StrainChain lets any phone scan + the strain QRON and see the signed lab panel, grow story, and licensed chain of custody — and rewards + the consumer with QRON every time they verify. +

+
+ +
+
+ {STEPS.map((s, i) => ( +
+
{s.icon}
+
Step {i + 1}
+
{s.title}
+
{s.body}
+
+ ))} +
+
+ +
+
+

What you get

+
    + {OUTCOMES.map((o, i) => ( +
  • + + {o} +
  • + ))} +
+
+ + Try a live consumer scan + + + Other personas + +
+
+
+
+ ) +} diff --git a/app/strainchain/demos/cultivator/page.tsx b/app/strainchain/demos/cultivator/page.tsx new file mode 100644 index 0000000..6bae3d8 --- /dev/null +++ b/app/strainchain/demos/cultivator/page.tsx @@ -0,0 +1,113 @@ +/** + * Demo: StrainChain — Cultivator + * Problem: Licensed cultivators have no clean way to prove that a specific batch — from clone to package — was grown, cured, and handled under their licence, leaving craft flower indistinguishable from diverted product on the shelf. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: Every batch gets a StrainChain identity bound to the cultivator’s AuthiChain licence and packaged with a strain-specific QRON, turning craft provenance into a shelf-level marketing asset and a METRC-ready audit trail. + */ +import type { CSSProperties } from "react" + +export const metadata = { + title: "StrainChain Demo — Cultivator Flow", + description: + "Licensed growers mint a StrainChain batch, bind it to their AuthiChain identity, and ship it with a strain-specific QRON — all in one flow.", +} + +const STEPS = [ + { + icon: "🌱", + title: "Clone → Veg → Flower", + body: "The grow team logs each phase of the life cycle against a StrainChain batch ID. Facility, room, and operator are bound to the cultivator’s AuthiChain identity at every step.", + }, + { + icon: "✂️", + title: "Harvest + cure", + body: "Dry weight, cure conditions, and trim events anchor to the same batch. The ledger is tamper-evident, so re-labelling diverted product becomes impossible.", + }, + { + icon: "🎨", + title: "QRON art for the strain", + body: "A QRON is generated in the cultivar’s visual language — emerald, trichome frost, soil tones — and bound to the batch. It ships on the exit label and certificate.", + }, + { + icon: "📦", + title: "Package + METRC sync", + body: "At package, StrainChain writes the batch to AuthiChain on Polygon and reconciles it with METRC in the same transaction. No manual data entry.", + }, +] + +const OUTCOMES = [ + "Craft batch provenance provable from clone to package", + "Strain-specific QRON art on every exit bag and label", + "METRC + AuthiChain reconciled automatically at package", + "Dispensary buyers can verify your licence before they order", +] + +const body: CSSProperties = { background: "#080808", color: "#e5e5e5", minHeight: "100vh", fontFamily: "system-ui,sans-serif" } +const nav: CSSProperties = { padding: "16px 32px", display: "flex", alignItems: "center", gap: 16, borderBottom: "0.5px solid rgba(255,255,255,.07)" } +const stepCard: CSSProperties = { background: "rgba(255,255,255,.03)", border: "1px solid rgba(34,197,94,.15)", borderRadius: 14, padding: "22px 20px" } + +export default function CultivatorDemoPage() { + return ( +
+ + +
+
+ 🌱 Persona · Cultivator +
+

+ Clone to exit bag, signed forever +

+

+ Licensed cultivators are losing shelf space to diverted product that looks identical on the label. + StrainChain binds every StrainChain batch to your AuthiChain identity and packages it with a + strain-specific QRON — so buyers, budtenders, and consumers can see that what you grew is what + they’re holding. +

+
+ +
+
+ {STEPS.map((s, i) => ( +
+
{s.icon}
+
Step {i + 1}
+
{s.title}
+
{s.body}
+
+ ))} +
+
+ +
+
+

What you get

+
    + {OUTCOMES.map((o, i) => ( +
  • + + {o} +
  • + ))} +
+
+ + Onboard my cultivation facility + + + Other personas + +
+
+
+
+ ) +} diff --git a/app/strainchain/demos/dispensary/page.tsx b/app/strainchain/demos/dispensary/page.tsx new file mode 100644 index 0000000..7b003fe --- /dev/null +++ b/app/strainchain/demos/dispensary/page.tsx @@ -0,0 +1,112 @@ +/** + * Demo: StrainChain — Dispensary + * Problem: Dispensaries receive product from dozens of distributors every week and have no fast way to confirm that every SKU was grown by a licensed cultivator, tested by a licensed lab, and reconciled with METRC before it hits the shelf. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: Budtenders scan each package on receipt and at point of sale — confirming licensed origin, COA integrity, and METRC reconciliation in one tap — and the dispensary turns verification into a loyalty loop with consumer scan-to-earn rewards. + */ +import type { CSSProperties } from "react" + +export const metadata = { + title: "StrainChain Demo — Dispensary Flow", + description: + "Dispensaries scan StrainChain packages on receipt and at POS to confirm licensed origin, COA integrity, and METRC reconciliation in one tap.", +} + +const STEPS = [ + { + icon: "📥", + title: "Receive + scan on intake", + body: "Every incoming package is scanned at the back door. StrainChain confirms the cultivator licence, lab COA, and METRC manifest in 2.1 seconds — bad product never reaches the floor.", + }, + { + icon: "📚", + title: "Shelf-level proof", + body: "Budtenders see a live verification badge on every SKU. They can show a customer the full seed-to-sale chain on a tablet in seconds.", + }, + { + icon: "💳", + title: "Scan-to-sell at POS", + body: "At checkout, the POS scan signs the final custody event and binds the sale to the buyer’s optional loyalty profile.", + }, + { + icon: "🎁", + title: "Scan-to-earn loyalty", + body: "Customers scan the strain QRON after they leave and earn QRON rewards that can be redeemed on their next visit — the scan becomes a repeat-visit driver.", + }, +] + +const OUTCOMES = [ + "Receiving speed: 5× faster than manual manifest checks", + "Zero unlicensed or unreconciled SKUs on the shelf", + "Built-in scan-to-earn loyalty engine powered by QRON", + "Audit-ready on the spot for state inspectors", +] + +const body: CSSProperties = { background: "#080808", color: "#e5e5e5", minHeight: "100vh", fontFamily: "system-ui,sans-serif" } +const nav: CSSProperties = { padding: "16px 32px", display: "flex", alignItems: "center", gap: 16, borderBottom: "0.5px solid rgba(255,255,255,.07)" } +const stepCard: CSSProperties = { background: "rgba(255,255,255,.03)", border: "1px solid rgba(34,197,94,.15)", borderRadius: 14, padding: "22px 20px" } + +export default function DispensaryDemoPage() { + return ( +
+ + +
+
+ 🏪 Persona · Dispensary +
+

+ Scan to stock, scan to sell +

+

+ Dispensaries are drowning in manifests. StrainChain turns receiving and POS into a single-tap + verification: licensed cultivator, signed COA, METRC reconciled. No EDI, no integration pain — just + a scan that resolves to an AuthiChain record in 2.1 seconds. +

+
+ +
+
+ {STEPS.map((s, i) => ( +
+
{s.icon}
+
Step {i + 1}
+
{s.title}
+
{s.body}
+
+ ))} +
+
+ +
+
+

What you get

+
    + {OUTCOMES.map((o, i) => ( +
  • + + {o} +
  • + ))} +
+
+ + Partner my dispensary + + + Other personas + +
+
+
+
+ ) +} diff --git a/app/strainchain/demos/lab/page.tsx b/app/strainchain/demos/lab/page.tsx new file mode 100644 index 0000000..5e8f619 --- /dev/null +++ b/app/strainchain/demos/lab/page.tsx @@ -0,0 +1,112 @@ +/** + * Demo: StrainChain — Lab + * Problem: State-licensed cannabis testing labs issue thousands of COAs each month on paper and PDF, and those certificates are routinely altered, swapped, or re-used on product that was never actually tested. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: Every COA is hashed and anchored to AuthiChain at upload, bound to the lab’s licence, and linked to the StrainChain batch — so dispensaries, regulators, and consumers can all verify that the potency, terpenes, and pesticide screens on the label are the ones the lab actually signed. + */ +import type { CSSProperties } from "react" + +export const metadata = { + title: "StrainChain Demo — Lab Flow", + description: + "State-licensed cannabis labs upload a COA and the hash is anchored to AuthiChain, bound to the StrainChain batch, and exposed to every downstream scanner.", +} + +const STEPS = [ + { + icon: "🧪", + title: "Run the panel", + body: "The lab runs its standard potency, terpene, pesticide, and heavy-metals panels and generates the COA in its LIMS.", + }, + { + icon: "⬆️", + title: "Upload to StrainChain", + body: "A single upload (PDF or JSON) hashes the COA and binds it to the StrainChain batch ID on-chain. The lab’s AuthiChain identity signs the submission.", + }, + { + icon: "🔒", + title: "Anchored on Polygon", + body: "The COA hash, panel results, and timestamp are written to the shared AuthiChainNFT contract on Polygon (optional Bitcoin Ordinal for premium batches).", + }, + { + icon: "📲", + title: "Verifiable everywhere downstream", + body: "From that moment, every dispensary, regulator, and consumer scan against the strain QRON surfaces the lab’s signed results — immutably bound to the batch.", + }, +] + +const OUTCOMES = [ + "Every COA hash anchored on-chain at the moment of upload", + "Lab licence bound to every result you sign", + "Zero PDF forgery risk downstream", + "Regulator dashboards consume your results directly", +] + +const body: CSSProperties = { background: "#080808", color: "#e5e5e5", minHeight: "100vh", fontFamily: "system-ui,sans-serif" } +const nav: CSSProperties = { padding: "16px 32px", display: "flex", alignItems: "center", gap: 16, borderBottom: "0.5px solid rgba(255,255,255,.07)" } +const stepCard: CSSProperties = { background: "rgba(255,255,255,.03)", border: "1px solid rgba(34,197,94,.15)", borderRadius: 14, padding: "22px 20px" } + +export default function LabDemoPage() { + return ( +
+ + +
+
+ 🧪 Persona · Lab +
+

+ One upload, forever verifiable +

+

+ Paper and PDF COAs get altered, swapped, or re-used on product that was never tested. StrainChain + hashes and anchors every lab result to AuthiChain at the moment of upload, binding your licence to + the panel — so nobody downstream can fake your signature. +

+
+ +
+
+ {STEPS.map((s, i) => ( +
+
{s.icon}
+
Step {i + 1}
+
{s.title}
+
{s.body}
+
+ ))} +
+
+ +
+
+

What you get

+
    + {OUTCOMES.map((o, i) => ( +
  • + + {o} +
  • + ))} +
+
+ + Integrate my lab + + + Other personas + +
+
+
+
+ ) +} diff --git a/app/strainchain/demos/page.tsx b/app/strainchain/demos/page.tsx new file mode 100644 index 0000000..ee06049 --- /dev/null +++ b/app/strainchain/demos/page.tsx @@ -0,0 +1,194 @@ +/** + * Demo: StrainChain — Persona Demo Index + * Problem: Every cannabis actor (cultivator, lab, dispensary, consumer, regulator) has a different authentication workflow, and prospects need a single entry point to see how StrainChain — AuthiChain + QRON fused for cannabis — solves their specific piece of the seed-to-sale problem. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: A curated persona gallery that lets any cannabis operator self-qualify into the flow that matches their licence and pain — and convert into a pilot, partnership, or custom strain QRON in a single click. + */ +import type { CSSProperties } from "react" + +export const metadata = { + title: "StrainChain Demos — Cannabis Persona Flows", + description: + "Pick your cannabis persona — cultivator, lab, dispensary, consumer, or regulator — and walk the StrainChain authentication flow built on AuthiChain + QRON.", +} + +const PERSONAS = [ + { + href: "/strainchain/demos/cultivator", + icon: "🌱", + persona: "Cultivator", + headline: "Seed to package, signed on-chain", + pitch: + "Licensed growers mint a StrainChain batch, bind it to facility identity, and package it with a strain-specific QRON.", + }, + { + href: "/strainchain/demos/lab", + icon: "🧪", + persona: "Lab", + headline: "COA anchoring in one upload", + pitch: + "State-licensed labs upload a COA and the hash is anchored on-chain. Every terpene, potency, and pesticide screen is immutable.", + }, + { + href: "/strainchain/demos/dispensary", + icon: "🏪", + persona: "Dispensary", + headline: "Scan to stock, scan to sell", + pitch: + "Budtenders scan on receipt to confirm licensed origin and lab compliance before the product hits the shelf — no EDI required.", + }, + { + href: "/strainchain/demos/consumer", + icon: "📱", + persona: "Consumer", + headline: "Scan to verify, scan to earn", + pitch: + "Any phone, any browser. Customers scan the strain QRON and see lab results, grow story, and scan-to-earn rewards in 2.1 seconds.", + }, + { + href: "/strainchain/demos/regulator", + icon: "⚖️", + persona: "Regulator", + headline: "Audit trail in one query", + pitch: + "State cannabis boards query a full METRC-reconciled, blockchain-anchored audit trail across every licensed SKU in the state.", + }, +] + +const pageBody: CSSProperties = { + background: "#080808", + color: "#e5e5e5", + minHeight: "100vh", + fontFamily: "system-ui,sans-serif", +} + +const nav: CSSProperties = { + padding: "16px 32px", + display: "flex", + alignItems: "center", + gap: 16, + borderBottom: "0.5px solid rgba(255,255,255,.07)", +} + +const card: CSSProperties = { + background: "rgba(255,255,255,.03)", + border: "1px solid rgba(34,197,94,.15)", + borderRadius: 16, + padding: "24px 22px", + textDecoration: "none", + color: "inherit", + display: "block", +} + +export default function StrainChainDemosIndexPage() { + return ( +
+ + +
+
+ Cannabis persona demos +
+

+ Pick your cannabis persona +

+

+ StrainChain is AuthiChain + QRON fused into a single cannabis-native protocol. Every persona below + walks through how the stack authenticates a batch in 2.1 seconds from a different seat in the supply + chain. Pick the one closest to your licence — or book a briefing if you need a custom strain QRON. +

+
+ +
+
+ {PERSONAS.map((p) => ( + +
{p.icon}
+
+ {p.persona} +
+
{p.headline}
+
{p.pitch}
+
+ Walk the flow → +
+
+ ))} +
+ +
+

Need a custom strain QRON or MSO pilot?

+

+ Tell us your licence, state, and use case through the cannabis intake and we’ll design a + StrainChain flow that maps to your exact workflow. +

+ + Request a StrainChain briefing + +
+
+ + +
+ ) +} diff --git a/app/strainchain/demos/regulator/page.tsx b/app/strainchain/demos/regulator/page.tsx new file mode 100644 index 0000000..cff2093 --- /dev/null +++ b/app/strainchain/demos/regulator/page.tsx @@ -0,0 +1,113 @@ +/** + * Demo: StrainChain — Regulator + * Problem: State cannabis control boards (California BCC, Colorado MED, Michigan LARA, and 20+ others) depend on METRC data that is manually entered, easy to falsify, and disconnected from the physical packages on dispensary shelves. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: Regulators get a read-only audit dashboard that reconciles METRC with the AuthiChain-anchored StrainChain ledger, exposes every unlicensed or tampered SKU in the state, and lets field inspectors scan any package to confirm provenance in under 3 seconds. + */ +import type { CSSProperties } from "react" + +export const metadata = { + title: "StrainChain Demo — Regulator Flow", + description: + "State cannabis boards get a read-only audit dashboard reconciling METRC with the AuthiChain-anchored StrainChain ledger across every licensed SKU in the state.", +} + +const STEPS = [ + { + icon: "🗂️", + title: "Connect the state seat", + body: "Each state regulator is granted a read-only StrainChain seat bound to their agency identity. METRC API keys are passed through, nothing is copied.", + }, + { + icon: "🔎", + title: "Reconcile against AuthiChain", + body: "StrainChain joins METRC manifests against the on-chain ledger. Unlicensed cultivators, missing COAs, and tamper events bubble to the top of the dashboard.", + }, + { + icon: "📡", + title: "Field inspectors scan", + body: "Inspectors scan any strain QRON in the field. In under 3 seconds they see licence, COA signature, and full custody chain — no laptop required.", + }, + { + icon: "📝", + title: "Export audit trail", + body: "A complete, signed, EPCIS-style audit trail is exported on demand — ready for court filings, enforcement actions, and FOIA responses.", + }, +] + +const OUTCOMES = [ + "Read-only AuthiChain + METRC reconciliation dashboard", + "Field-ready QRON scan for any inspector in under 3 seconds", + "Unlicensed / tampered SKUs surfaced automatically", + "Court-ready audit trails exported in a single click", +] + +const body: CSSProperties = { background: "#080808", color: "#e5e5e5", minHeight: "100vh", fontFamily: "system-ui,sans-serif" } +const nav: CSSProperties = { padding: "16px 32px", display: "flex", alignItems: "center", gap: 16, borderBottom: "0.5px solid rgba(255,255,255,.07)" } +const stepCard: CSSProperties = { background: "rgba(255,255,255,.03)", border: "1px solid rgba(34,197,94,.15)", borderRadius: 14, padding: "22px 20px" } + +export default function RegulatorDemoPage() { + return ( +
+ + +
+
+ ⚖️ Persona · Regulator +
+

+ Audit the whole state in one query +

+

+ State cannabis control boards can’t see what’s actually on the shelf. StrainChain gives + regulators a read-only dashboard that reconciles METRC against the on-chain ledger — so unlicensed + SKUs, missing COAs, and tamper events surface automatically, and field inspectors can verify any + package in under 3 seconds. +

+
+ +
+
+ {STEPS.map((s, i) => ( +
+
{s.icon}
+
Step {i + 1}
+
{s.title}
+
{s.body}
+
+ ))} +
+
+ +
+
+

What you get

+
    + {OUTCOMES.map((o, i) => ( +
  • + + {o} +
  • + ))} +
+
+ + Book a regulator briefing + + + Other personas + +
+
+
+
+ ) +} diff --git a/app/strainchain/page.tsx b/app/strainchain/page.tsx index ee58ae8..1f9af0a 100644 --- a/app/strainchain/page.tsx +++ b/app/strainchain/page.tsx @@ -1,3 +1,9 @@ +/** + * Demo: StrainChain — Cannabis Vertical Landing + * Problem: The legal cannabis industry has no unified authentication layer — cultivators, labs, dispensaries, consumers, and regulators each rely on paper COAs, easily altered METRC manifests, and disconnected compliance tools that leave the whole seed-to-sale chain open to diversion and fraud. + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: StrainChain is the AuthiChain + QRON stack packaged as a cannabis-native vertical at strainchain.io — COA anchoring, METRC sync, seed-to-sale chain, and strain-specific QRON art that gives every licensed operator a dispensary-ready, regulator-ready, consumer-ready authentication layer in one protocol. + */ import type { CSSProperties } from "react" export const metadata = {title:"StrainChain — Cannabis Supply Chain Authentication",description:"Blockchain seed-to-sale compliance for cannabis."} type Feat = {icon:string;t:string;d:string} diff --git a/marketing/README.md b/marketing/README.md index b9b00b1..4310213 100644 --- a/marketing/README.md +++ b/marketing/README.md @@ -72,6 +72,23 @@ Use the intake form when: fields populated. 5. Link the new demo from the `/demos` index page. +## Verticals + +Some industries justify a dedicated **vertical** that fuses AuthiChain and +QRON into a single product experience. Each vertical gets its own +sub-folder under `marketing/` with its own `README.md`, `intake.md`, and +`demo-mapping.md`, plus its own persona demos under `app//demos/` +and its own `outputs/-demo-manifest.json`. + +| Vertical | Domain | Folder | Demos | Manifest | +|----------|--------|--------|-------|----------| +| **StrainChain** (cannabis) | [strainchain.io](https://strainchain.io) | [`marketing/strainchain/`](./strainchain/) | `app/strainchain/demos/*` | `outputs/strainchain-demo-manifest.json` | + +To add a new vertical, mirror the StrainChain structure: create +`marketing//`, add persona demos under +`app//demos//page.tsx`, and ship a matching +`outputs/-demo-manifest.json`. + ## File index | File | Purpose | @@ -79,3 +96,4 @@ Use the intake form when: | [`README.md`](./README.md) | This file — marketing system overview | | [`intake.md`](./intake.md) | Inbound intake form + internal triage rules | | [`demo-mapping.md`](./demo-mapping.md) | Industry → demo path mapping table | +| [`strainchain/`](./strainchain/) | StrainChain (cannabis vertical) marketing layer | diff --git a/marketing/demo-mapping.md b/marketing/demo-mapping.md index 4f98525..92af909 100644 --- a/marketing/demo-mapping.md +++ b/marketing/demo-mapping.md @@ -30,6 +30,27 @@ marketing, sales, and engineering can see the gap at a glance. | Cannabis | /app/demos/cannabis | _not yet implemented_ | ⏳ Planned | | Collectibles | /app/demos/collectibles | _not yet implemented_ | ⏳ Planned | +## Verticals — persona demos + +Beyond the industry demos above, AuthiChain also ships **vertical** +products that fuse AuthiChain + QRON into a single cannabis-native, art- +native, or sector-native protocol. Each vertical has its own persona demo +tree. The cannabis vertical is **StrainChain** at +[strainchain.io](https://strainchain.io). + +| Vertical | Persona | Demo Path | +|----------|---------|-----------| +| StrainChain | Cultivator | /app/strainchain/demos/cultivator | +| StrainChain | Lab | /app/strainchain/demos/lab | +| StrainChain | Dispensary | /app/strainchain/demos/dispensary | +| StrainChain | Consumer | /app/strainchain/demos/consumer | +| StrainChain | Regulator | /app/strainchain/demos/regulator | + +See [`marketing/strainchain/demo-mapping.md`](./strainchain/demo-mapping.md) +for the full StrainChain persona table and +[`outputs/strainchain-demo-manifest.json`](../outputs/strainchain-demo-manifest.json) +for the canonical persona manifest with `why`/`value` metadata. + ## How to add a new demo 1. Create `app/demos//page.tsx`. diff --git a/marketing/strainchain/README.md b/marketing/strainchain/README.md new file mode 100644 index 0000000..c258653 --- /dev/null +++ b/marketing/strainchain/README.md @@ -0,0 +1,130 @@ +# StrainChain Marketing System + +StrainChain is the **cannabis vertical** of the Authentic Economy — it fuses +two systems this repo already ships: + +- **AuthiChain** for the blockchain authentication layer (COAs, seed-to-sale + chain, on-chain pedigree) +- **QRON** for the AI-generated, brand-aligned identity art that lives on + every cannabis package, label, and certificate + +Together they form a single cannabis-native protocol at **strainchain.io**. +This directory is the single source of truth for how StrainChain presents +its demos, intake, and investor story inside the repository. + +## Purpose + +The StrainChain marketing layer exists to make the cannabis vertical +**self‑documenting, dispensary‑ready, and regulator‑friendly**: + +- Every cannabis persona flow on the site has a matching marketing header + that states *the problem*, *the AuthiChain + QRON solution*, and *the + business value*. +- Every StrainChain-specific demo is tagged with `why` and `value` metadata + in `outputs/strainchain-demo-manifest.json`, so investors, regulators, and + dispensary partners can see exactly what a flow unlocks. +- A shared intake form captures inbound cannabis enquiries (cultivators, + labs, dispensaries, MSOs, regulators) and routes them to the right + persona flow. +- A persona → demo mapping table gives every stakeholder a one-glance view + of which cannabis actors have live flows and where the code lives. + +## How StrainChain combines AuthiChain + QRON + +``` +┌──────────────┐ anchors ┌──────────────┐ labels ┌──────────────┐ +│ AuthiChain │ ───────────▶│ StrainChain │ ◀────────── │ QRON │ +│ (chain / │ │ (cannabis │ │ (identity │ +│ contracts) │ │ vertical) │ │ art layer) │ +└──────────────┘ └──────────────┘ └──────────────┘ + │ │ │ + ▼ ▼ ▼ + COA + seed-to-sale METRC sync, Strain-specific + ledger on Polygon / dispensary verify, QRONs on every + Bitcoin Ordinal MSO multi-state API pack & certificate +``` + +Every cannabis demo walks the same loop: + +1. **Cultivate** — licensed cultivator mints a StrainChain batch, linked to + the facility’s AuthiChain identity. +2. **Test** — the lab uploads the COA and the hash is anchored on-chain. +3. **Package** — QRON generates a strain-specific identity that ships on + the label, bound to the AuthiChain batch record. +4. **Distribute** — every custody hand-off (cultivator → distributor → + dispensary) is signed on-chain and reconciled with METRC. +5. **Dispense** — the budtender scans at POS to confirm licensed provenance + and compliance. +6. **Verify** — the consumer scans the QRON with any phone and sees lab + results, strain story, and scan-to-earn rewards in 2.1 seconds. + +## Cannabis persona flows + +Each persona under `app/strainchain/demos//page.tsx` targets a +single cannabis actor with its own workflow. Use the canonical mapping in +[`demo-mapping.md`](./demo-mapping.md). + +| Persona | Who it’s for | +|--------------|---------------------------------------------| +| Cultivator | Licensed growers and craft flower producers | +| Lab | State-licensed testing laboratories | +| Dispensary | Recreational and medical retail storefronts | +| Consumer | Adult-use and medical patients | +| Regulator | State cannabis control boards (METRC, BCC) | + +## How to use the intake form + +All inbound cannabis — dispensary partnerships, cultivator onboarding, +lab integrations, MSO pilots, regulator briefings — flows through a single +Airtable intake form. See [`intake.md`](./intake.md) for the form link and +cannabis-specific triage instructions. + +Use the intake form when: + +- A licensed dispensary wants a StrainChain partnership or pilot. +- A cultivator or MSO wants to onboard their SKUs with strain QRONs. +- A testing lab wants to integrate COA anchoring. +- A state regulator asks for an audit-ready briefing. +- A cannabis brand wants a custom strain QRON. + +## How to write a new persona demo with a marketing header + +1. Create `app/strainchain/demos//page.tsx` following one of the + existing persona demos (`cultivator`, `lab`, `dispensary`, `consumer`, + `regulator`) as a template. +2. **Prepend a marketing header block** to the very top of the `page.tsx` + file, above any `'use client'` or imports: + + ```tsx + /** + * Demo: StrainChain — + * Problem: <1–2 sentence cannabis-specific problem> + * Solution: AuthiChain + QRON verifies authenticity in 2.1 seconds through the StrainChain protocol. + * Business Value: + */ + ``` + +3. Add a matching row in [`demo-mapping.md`](./demo-mapping.md). +4. Add a matching entry with `why` and `value` fields to + `outputs/strainchain-demo-manifest.json`. +5. Link the new persona from `app/strainchain/demos/page.tsx` (the demos + index). + +## File index + +| File | Purpose | +|------|---------| +| [`README.md`](./README.md) | This file — StrainChain marketing overview | +| [`intake.md`](./intake.md) | Cannabis intake form + triage rules | +| [`demo-mapping.md`](./demo-mapping.md) | Persona → demo path mapping table | + +## Related assets in this repo + +- `app/strainchain/page.tsx` — StrainChain landing page +- `app/strainchain/demos/` — persona demo flows (new) +- `app/solutions/cannabis/page.tsx` — AuthiChain × StrainChain cannabis solution page +- `outputs/strainchain-economy-map.md` — tiers, QRON staking, MSO targets +- `outputs/strainchain-demo-manifest.json` — persona demos with `why`/`value` +- `outputs/storymode-demo-manifest.json` — ships the Zkittlez OG StrainChain storymode +- `supabase/migrations/20260407_strainchain_schema.sql` — StrainChain DB schema +- `public/qron/strainchain-zkittlez-qr.svg` — sample strain QRON diff --git a/marketing/strainchain/demo-mapping.md b/marketing/strainchain/demo-mapping.md new file mode 100644 index 0000000..904e742 --- /dev/null +++ b/marketing/strainchain/demo-mapping.md @@ -0,0 +1,64 @@ +# StrainChain Demo Mapping + +This table maps each cannabis **persona** to the persona-flow demo that +exercises its AuthiChain + QRON authentication workflow through the +StrainChain vertical. Use this as the canonical reference when routing +inbound intake requests (see [`intake.md`](./intake.md)) or when writing +investor / regulator / dispensary-facing material that references live +demos. + +## Canonical persona → demo path + +| Persona | Demo Path | +|--------------|-----------------------------------------| +| Cultivator | /app/strainchain/demos/cultivator | +| Lab | /app/strainchain/demos/lab | +| Dispensary | /app/strainchain/demos/dispensary | +| Consumer | /app/strainchain/demos/consumer | +| Regulator | /app/strainchain/demos/regulator | + +## Current implementation status + +Every canonical persona has a dedicated demo surface under +`app/strainchain/demos/*`. The StrainChain landing page at +`app/strainchain/page.tsx` is the public entry point; the demos gallery at +`app/strainchain/demos/page.tsx` is the persona router. + +| Persona | Target path | Current surface | Status | +|--------------|------------------------------------------|---------------------------------------------------|--------| +| Cultivator | /app/strainchain/demos/cultivator | `app/strainchain/demos/cultivator/page.tsx` | Live | +| Lab | /app/strainchain/demos/lab | `app/strainchain/demos/lab/page.tsx` | Live | +| Dispensary | /app/strainchain/demos/dispensary | `app/strainchain/demos/dispensary/page.tsx` | Live | +| Consumer | /app/strainchain/demos/consumer | `app/strainchain/demos/consumer/page.tsx` | Live | +| Regulator | /app/strainchain/demos/regulator | `app/strainchain/demos/regulator/page.tsx` | Live | + +All five persona demos are indexed from `app/strainchain/demos/page.tsx` +and each carries a marketing header block (Problem / Solution / Business +Value) at the top of its source file. + +## Related files + +- `app/strainchain/page.tsx` — StrainChain landing page +- `app/strainchain/demos/page.tsx` — persona demo gallery (entry point) +- `app/solutions/cannabis/page.tsx` — AuthiChain × StrainChain cannabis solution page +- `outputs/strainchain-demo-manifest.json` — canonical manifest with + `why`/`value` metadata per persona +- `outputs/strainchain-economy-map.md` — StrainChain subscription tiers, + QRON staking ladder, MSO targets +- `outputs/storymode-demo-manifest.json` — ships the Zkittlez OG + StrainChain storymode product entry +- `public/qron/strainchain-zkittlez-qr.svg` — sample strain QRON asset + +## How to add a new persona demo + +1. Create `app/strainchain/demos//page.tsx` following one of the + existing persona demos (`cultivator`, `lab`, `dispensary`, `consumer`, + `regulator`) as a template. +2. Prepend the required marketing header block (see + [`README.md`](./README.md) → *How to write a new persona demo with a + marketing header*). +3. Add the new row to the **Canonical persona → demo path** table above. +4. Add a matching entry with `why` and `value` fields to + `outputs/strainchain-demo-manifest.json`. +5. Link the new demo from `app/strainchain/demos/page.tsx` (the demos + index). diff --git a/marketing/strainchain/intake.md b/marketing/strainchain/intake.md new file mode 100644 index 0000000..bcb6bad --- /dev/null +++ b/marketing/strainchain/intake.md @@ -0,0 +1,82 @@ +# StrainChain Marketing & Demo Intake + +## Purpose + +This document is the internal handbook for the **StrainChain (cannabis +vertical)** intake pipeline. Every inbound request for a demo, pilot, +partnership, press briefing, regulator meeting, or custom strain QRON is +collected through a single Airtable form and triaged from there. + +StrainChain shares the same top-level AuthiChain + QRON intake form — with +an additional cannabis-specific triage overlay so the marketing lead can +route by persona, state, and licence status. + +## Intake form + +All requests must be submitted through the Airtable intake form: + +**Form URL:** https://airtable.com/appERlrcb1RcoPdA7/tblVJgLp2K2Rif08B/viwPH8zIn44lFjuc1 + +Submitters should tag their request with `vertical: cannabis` (or mention +StrainChain in the free-text field) so it lands in the StrainChain triage +queue. + +Share this link externally in: + +- Outbound dispensary / MSO sales emails +- Trade-show booths (MJBizCon, Hall of Flowers, CannaCon) +- LinkedIn / Twitter bios for the StrainChain team +- The public `app/strainchain` landing page +- Cannabis-industry press kits and investor decks + +## Cannabis-specific triage rules + +Every cannabis request must be routed by **persona + state + licence +status** before being assigned an owner. Use this matrix: + +| Persona | Route to | Priority rule | +|-------------|----------------------------------|------------------------------------------------| +| Cultivator | Grower onboarding lead | Prioritise licensed craft flower producers | +| Lab | Lab integrations lead | Prioritise ISO-accredited + state-licensed labs| +| Dispensary | Retail partnerships lead | Prioritise MI, CA, CO, IL, NV first | +| MSO | Enterprise / MSO account lead | Always highest priority | +| Consumer | Marketing — no personal follow-up| Route to brand / QRON gallery CTA | +| Regulator | Compliance + policy lead | Escalate to CEO for state-level briefings | + +## Instructions for internal use + +1. **Triage daily.** The marketing lead reviews new cannabis-tagged + submissions every morning and assigns an owner within Airtable. +2. **Confirm licence status** before any dispensary, cultivator, lab, or + MSO follow-up. We only onboard licensed operators — verify the state + licence number before a demo call. +3. **Tag by persona** using the same labels found in + [`demo-mapping.md`](./demo-mapping.md) (cultivator, lab, dispensary, + consumer, regulator). This keeps the demo requests aligned with the + persona flows that live in `app/strainchain/demos/*`. +4. **Link to the matching persona flow.** When an inbound request lands + for a persona that already has a demo, reply with the direct demo URL + (for example `https://strainchain.io/demos/dispensary`). +5. **Escalate custom strain QRONs.** If the request requires a + brand-specific QRON or storymode, create a follow-up task for + engineering and reference the entry that will be added to + `outputs/strainchain-demo-manifest.json` (or + `outputs/storymode-demo-manifest.json` for storymode products). +6. **Never share operator data externally.** Licence numbers, batch IDs, + and submitter details stay inside the Airtable base. Do not forward or + export without written approval from the StrainChain lead. +7. **Close the loop.** Mark the Airtable record as “Delivered” only after + the prospect has received either a live demo, a recorded walkthrough, or + the requested marketing asset. + +## SLA + +| Request type | First response | Delivery target | +|--------------------------------|----------------|-----------------| +| MSO enterprise pilot | 1 business day | 3 business days | +| Dispensary partnership | 1 business day | 5 business days | +| Cultivator onboarding | 1 business day | 5 business days | +| Lab integration enquiry | 2 business days| 5 business days | +| Regulator / policy briefing | 1 business day | 2 business days | +| Press / media | 1 business day | 2 business days | +| Consumer / general cannabis | 2 business days| 5 business days | diff --git a/outputs/strainchain-demo-manifest.json b/outputs/strainchain-demo-manifest.json new file mode 100644 index 0000000..0d26a78 --- /dev/null +++ b/outputs/strainchain-demo-manifest.json @@ -0,0 +1,79 @@ +{ + "vertical": "StrainChain", + "domain": "strainchain.io", + "stack": ["AuthiChain", "QRON"], + "description": "StrainChain is the cannabis vertical of the Authentic Economy — AuthiChain (blockchain authentication) and QRON (identity art) combined into a single cannabis-native protocol that covers seed-to-sale, lab COA anchoring, METRC sync, dispensary verification, consumer scan-to-earn, and regulator audit trails.", + "personas": [ + { + "persona": "Cultivator", + "demo_id": "strainchain-cultivator", + "demo_path": "/app/strainchain/demos/cultivator", + "demo_url": "https://strainchain.io/demos/cultivator", + "headline": "Clone to exit bag, signed forever", + "qron_theme": "Emerald canopy — living soil earth tones, trichome frost, craft grow room", + "why": "Licensed cultivators have no clean way to prove that a specific batch — from clone to package — was grown, cured, and handled under their licence, leaving craft flower indistinguishable from diverted product on the shelf.", + "value": "Every batch gets a StrainChain identity bound to the cultivator's AuthiChain licence and packaged with a strain-specific QRON, turning craft provenance into a shelf-level marketing asset and a METRC-ready audit trail." + }, + { + "persona": "Lab", + "demo_id": "strainchain-lab", + "demo_path": "/app/strainchain/demos/lab", + "demo_url": "https://strainchain.io/demos/lab", + "headline": "One upload, forever verifiable", + "qron_theme": "Clinical teal — sterile precision, analytical glassware, COA seal", + "why": "State-licensed cannabis testing labs issue thousands of COAs each month on paper and PDF, and those certificates are routinely altered, swapped, or re-used on product that was never actually tested.", + "value": "Every COA is hashed and anchored to AuthiChain at upload, bound to the lab's licence, and linked to the StrainChain batch — so dispensaries, regulators, and consumers can all verify that the potency, terpenes, and pesticide screens on the label are the ones the lab actually signed." + }, + { + "persona": "Dispensary", + "demo_id": "strainchain-dispensary", + "demo_path": "/app/strainchain/demos/dispensary", + "demo_url": "https://strainchain.io/demos/dispensary", + "headline": "Scan to stock, scan to sell", + "qron_theme": "Retail emerald — dispensary counter, budtender glow, gold trim", + "why": "Dispensaries receive product from dozens of distributors every week and have no fast way to confirm that every SKU was grown by a licensed cultivator, tested by a licensed lab, and reconciled with METRC before it hits the shelf.", + "value": "Budtenders scan each package on receipt and at point of sale — confirming licensed origin, COA integrity, and METRC reconciliation in one tap — and the dispensary turns verification into a loyalty loop with consumer scan-to-earn rewards." + }, + { + "persona": "Consumer", + "demo_id": "strainchain-consumer", + "demo_path": "/app/strainchain/demos/consumer", + "demo_url": "https://strainchain.io/demos/consumer", + "headline": "Scan it. Trust it. Earn on it.", + "qron_theme": "Sunset green — consumer friendly, strain art, mobile-first glow", + "why": "Cannabis consumers have almost no way to verify what they paid for — potency, terpenes, origin, and licence status all live on fragile labels and PDFs that are routinely swapped, faked, or out of date.", + "value": "Any consumer, on any phone, scans the strain QRON and sees the full lab panel, cultivator story, and licensed chain of custody — and can earn QRON rewards for every authenticated scan, turning verification into a loyalty and community layer for the brand." + }, + { + "persona": "Regulator", + "demo_id": "strainchain-regulator", + "demo_path": "/app/strainchain/demos/regulator", + "demo_url": "https://strainchain.io/demos/regulator", + "headline": "Audit the whole state in one query", + "qron_theme": "State seal green — authoritative, audit-grade, enforcement-ready", + "why": "State cannabis control boards (California BCC, Colorado MED, Michigan LARA, and 20+ others) depend on METRC data that is manually entered, easy to falsify, and disconnected from the physical packages on dispensary shelves.", + "value": "Regulators get a read-only audit dashboard that reconciles METRC with the AuthiChain-anchored StrainChain ledger, exposes every unlicensed or tampered SKU in the state, and lets field inspectors scan any package to confirm provenance in under 3 seconds." + } + ], + "products": [ + { + "product_name": "Zkittlez OG — Indoor Craft Flower (3.5g)", + "storymode_product_id": "a1000001-0001-4000-a000-000000000020", + "storymode_manifest": "outputs/storymode-demo-manifest.json", + "why": "Cannabis consumers and dispensaries cannot easily verify seed-to-sale provenance, lab results, or licensed origin — exposing regulated markets to diversion and untested product.", + "value": "StrainChain links every package to its cultivator licence, lab results, and terpene profile through an AuthiChain QRON, enabling compliant dispensary scanning, brand loyalty, and regulator-ready audit trails." + } + ], + "related_files": [ + "app/strainchain/page.tsx", + "app/strainchain/demos/page.tsx", + "app/solutions/cannabis/page.tsx", + "outputs/strainchain-economy-map.md", + "outputs/storymode-demo-manifest.json", + "supabase/migrations/20260407_strainchain_schema.sql", + "public/qron/strainchain-zkittlez-qr.svg", + "marketing/strainchain/README.md", + "marketing/strainchain/intake.md", + "marketing/strainchain/demo-mapping.md" + ] +}