@tokenoftrust/storefront-runner 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +40 -0
  3. package/apps/storefront/.dev.vars.example +41 -0
  4. package/apps/storefront/.env.example +24 -0
  5. package/apps/storefront/astro.config.mjs +245 -0
  6. package/apps/storefront/env.d.ts +155 -0
  7. package/apps/storefront/lib/ensure-preview-reconcile-secret.sh +31 -0
  8. package/apps/storefront/lib/resolve-cf-token.sh +48 -0
  9. package/apps/storefront/lib/resolve-tot-credentials.sh +69 -0
  10. package/apps/storefront/migrations/0000_baseline.sql +54 -0
  11. package/apps/storefront/migrations/0001_products_fts.sql +9 -0
  12. package/apps/storefront/migrations/README.md +54 -0
  13. package/apps/storefront/migrations/meta/0000_snapshot.json +347 -0
  14. package/apps/storefront/migrations/meta/0001_snapshot.json +347 -0
  15. package/apps/storefront/migrations/meta/_journal.json +20 -0
  16. package/apps/storefront/package.json +41 -0
  17. package/apps/storefront/public/brand/northwind-logo-dark.svg +4 -0
  18. package/apps/storefront/public/brand/northwind-logo-light.svg +4 -0
  19. package/apps/storefront/public/brand/northwind-og.svg +13 -0
  20. package/apps/storefront/public/favicon.svg +5 -0
  21. package/apps/storefront/public/js/dashboard-team.js +147 -0
  22. package/apps/storefront/public/js/dashboard-vendor-search.js +115 -0
  23. package/apps/storefront/src/components/Badge.astro +34 -0
  24. package/apps/storefront/src/components/Breadcrumbs.astro +45 -0
  25. package/apps/storefront/src/components/CollectionCard.astro +56 -0
  26. package/apps/storefront/src/components/EmptyState.astro +35 -0
  27. package/apps/storefront/src/components/Img.astro +68 -0
  28. package/apps/storefront/src/components/ProductCard.astro +228 -0
  29. package/apps/storefront/src/components/Section.astro +39 -0
  30. package/apps/storefront/src/components/Seo.astro +70 -0
  31. package/apps/storefront/src/components/WidgetFrame.astro +34 -0
  32. package/apps/storefront/src/components/auth/AuthBadge.astro +44 -0
  33. package/apps/storefront/src/components/chrome/AnnouncementBar.astro +108 -0
  34. package/apps/storefront/src/components/chrome/MegaMenu.astro +26 -0
  35. package/apps/storefront/src/components/chrome/NavDropdown.astro +116 -0
  36. package/apps/storefront/src/components/chrome/SiteFooter.astro +181 -0
  37. package/apps/storefront/src/components/chrome/SiteHeader.astro +181 -0
  38. package/apps/storefront/src/components/chrome/UtilityNav.astro +79 -0
  39. package/apps/storefront/src/components/commerce/FoxyLoader.astro +23 -0
  40. package/apps/storefront/src/components/commerce/PriceDisplay.astro +91 -0
  41. package/apps/storefront/src/components/commerce/ProductCarousel.astro +197 -0
  42. package/apps/storefront/src/components/commerce/ProductGrid.astro +75 -0
  43. package/apps/storefront/src/components/commerce/RatingStars.astro +58 -0
  44. package/apps/storefront/src/components/compliance/NicotineWarning.astro +33 -0
  45. package/apps/storefront/src/components/home/Hero.astro +164 -0
  46. package/apps/storefront/src/components/islands/AgeGate.tsx +105 -0
  47. package/apps/storefront/src/components/islands/ImageGallery.tsx +237 -0
  48. package/apps/storefront/src/components/islands/IsolatedAgeGate.tsx +73 -0
  49. package/apps/storefront/src/components/islands/MobileNav.tsx +239 -0
  50. package/apps/storefront/src/components/islands/QuickView.tsx +138 -0
  51. package/apps/storefront/src/components/islands/RecentlyViewed.tsx +122 -0
  52. package/apps/storefront/src/components/islands/SavedList.tsx +99 -0
  53. package/apps/storefront/src/components/islands/SearchTypeahead.tsx +248 -0
  54. package/apps/storefront/src/components/islands/VariantSelector.tsx +378 -0
  55. package/apps/storefront/src/components/marketing/CardGrid.astro +72 -0
  56. package/apps/storefront/src/components/marketing/CodeSample.astro +20 -0
  57. package/apps/storefront/src/components/marketing/CtaBand.astro +24 -0
  58. package/apps/storefront/src/components/marketing/Faq.astro +37 -0
  59. package/apps/storefront/src/components/marketing/Integrations.astro +63 -0
  60. package/apps/storefront/src/components/marketing/MarketingBlocks.astro +53 -0
  61. package/apps/storefront/src/components/marketing/MarketingCtas.astro +48 -0
  62. package/apps/storefront/src/components/marketing/MarketingHero.astro +72 -0
  63. package/apps/storefront/src/components/marketing/ProofStrip.astro +37 -0
  64. package/apps/storefront/src/components/marketing/SplitCompare.astro +53 -0
  65. package/apps/storefront/src/components/marketing/Steps.astro +36 -0
  66. package/apps/storefront/src/components/marketing/Testimonials.astro +38 -0
  67. package/apps/storefront/src/components/marketing/TrustBar.astro +22 -0
  68. package/apps/storefront/src/components/nav/Footer.astro +148 -0
  69. package/apps/storefront/src/components/nav/Header.astro +190 -0
  70. package/apps/storefront/src/components/plp/ActiveFilters.astro +79 -0
  71. package/apps/storefront/src/components/plp/FacetSidebar.astro +146 -0
  72. package/apps/storefront/src/components/plp/Pagination.astro +99 -0
  73. package/apps/storefront/src/components/plp/SortSelect.astro +64 -0
  74. package/apps/storefront/src/config/devTenants.ts +16 -0
  75. package/apps/storefront/src/config/kvTenantResolver.ts +87 -0
  76. package/apps/storefront/src/config/resolver.ts +46 -0
  77. package/apps/storefront/src/config/tenants.ts +193 -0
  78. package/apps/storefront/src/layouts/Layout.astro +303 -0
  79. package/apps/storefront/src/lib/analytics/index.ts +47 -0
  80. package/apps/storefront/src/lib/auth/brokerAssertion.ts +136 -0
  81. package/apps/storefront/src/lib/auth/devAuth.ts +90 -0
  82. package/apps/storefront/src/lib/auth/gatePage.ts +81 -0
  83. package/apps/storefront/src/lib/auth/identityToken.ts +341 -0
  84. package/apps/storefront/src/lib/auth/loginGate.ts +107 -0
  85. package/apps/storefront/src/lib/auth/route.ts +146 -0
  86. package/apps/storefront/src/lib/auth/session.ts +203 -0
  87. package/apps/storefront/src/lib/auth/totAccessClient.ts +503 -0
  88. package/apps/storefront/src/lib/basePath.ts +41 -0
  89. package/apps/storefront/src/lib/cfImage.ts +55 -0
  90. package/apps/storefront/src/lib/chrome/model.ts +65 -0
  91. package/apps/storefront/src/lib/colors.ts +97 -0
  92. package/apps/storefront/src/lib/content-edit/client.ts +230 -0
  93. package/apps/storefront/src/lib/content-edit/index.ts +14 -0
  94. package/apps/storefront/src/lib/content-edit/route.ts +25 -0
  95. package/apps/storefront/src/lib/content-edit/types.ts +19 -0
  96. package/apps/storefront/src/lib/cspStaticHashes.ts +24 -0
  97. package/apps/storefront/src/lib/d1/catalog.ts +289 -0
  98. package/apps/storefront/src/lib/dashboard/staffAdmission.ts +43 -0
  99. package/apps/storefront/src/lib/dashboard/staffVendorAccess.ts +449 -0
  100. package/apps/storefront/src/lib/dashboard/tenantSelection.ts +136 -0
  101. package/apps/storefront/src/lib/dashboard/vendorQuery.ts +61 -0
  102. package/apps/storefront/src/lib/demoGate.ts +113 -0
  103. package/apps/storefront/src/lib/dev/ai-widget-client.js +127 -0
  104. package/apps/storefront/src/lib/dev/cliSignInCode.ts +132 -0
  105. package/apps/storefront/src/lib/diag/redact.ts +20 -0
  106. package/apps/storefront/src/lib/edgeCache.ts +128 -0
  107. package/apps/storefront/src/lib/email/magicLinkInviteEmail.ts +62 -0
  108. package/apps/storefront/src/lib/env.ts +60 -0
  109. package/apps/storefront/src/lib/fixtures/sampleProducts.ts +130 -0
  110. package/apps/storefront/src/lib/format.ts +29 -0
  111. package/apps/storefront/src/lib/foxyCommerce.ts +49 -0
  112. package/apps/storefront/src/lib/imageAttrs.ts +55 -0
  113. package/apps/storefront/src/lib/jsonld.ts +136 -0
  114. package/apps/storefront/src/lib/maintenance.ts +71 -0
  115. package/apps/storefront/src/lib/memoryKv.ts +32 -0
  116. package/apps/storefront/src/lib/messaging/messagesClient.ts +143 -0
  117. package/apps/storefront/src/lib/placeholder.ts +99 -0
  118. package/apps/storefront/src/lib/previewReload.ts +125 -0
  119. package/apps/storefront/src/lib/rawMarketingHtml.ts +133 -0
  120. package/apps/storefront/src/lib/search/index.ts +74 -0
  121. package/apps/storefront/src/lib/sections.ts +129 -0
  122. package/apps/storefront/src/lib/securityHeaders.ts +31 -0
  123. package/apps/storefront/src/lib/storyblok/content-model.ts +289 -0
  124. package/apps/storefront/src/lib/storyblok/provider.ts +524 -0
  125. package/apps/storefront/src/lib/tenantRouting.ts +91 -0
  126. package/apps/storefront/src/lib/tot/ToTClient.ts +177 -0
  127. package/apps/storefront/src/lib/tot/d1Client.ts +62 -0
  128. package/apps/storefront/src/lib/tot/query.ts +187 -0
  129. package/apps/storefront/src/lib/tot/totClientInterface.ts +30 -0
  130. package/apps/storefront/src/lib/url.ts +119 -0
  131. package/apps/storefront/src/lib/wishlist.ts +63 -0
  132. package/apps/storefront/src/middleware/index.ts +413 -0
  133. package/apps/storefront/src/pages/404.astro +61 -0
  134. package/apps/storefront/src/pages/[...slug].astro +90 -0
  135. package/apps/storefront/src/pages/api/auth/logout.ts +21 -0
  136. package/apps/storefront/src/pages/api/auth/magic-exchange.ts +107 -0
  137. package/apps/storefront/src/pages/api/auth/send.ts +85 -0
  138. package/apps/storefront/src/pages/api/auth/verify.ts +135 -0
  139. package/apps/storefront/src/pages/api/cache-purge.ts +44 -0
  140. package/apps/storefront/src/pages/api/content-edit/ai-edit.ts +64 -0
  141. package/apps/storefront/src/pages/api/csp-report.ts +25 -0
  142. package/apps/storefront/src/pages/api/dashboard/enter-vendor.ts +124 -0
  143. package/apps/storefront/src/pages/api/dashboard/vendor-search.ts +120 -0
  144. package/apps/storefront/src/pages/api/dev/cli-signin-code.ts +44 -0
  145. package/apps/storefront/src/pages/api/newsletter.ts +104 -0
  146. package/apps/storefront/src/pages/api/request-access.ts +172 -0
  147. package/apps/storefront/src/pages/auth/login.astro +149 -0
  148. package/apps/storefront/src/pages/auth/magic.astro +105 -0
  149. package/apps/storefront/src/pages/capabilities.astro +292 -0
  150. package/apps/storefront/src/pages/collections/[handle].astro +154 -0
  151. package/apps/storefront/src/pages/collections/index.astro +59 -0
  152. package/apps/storefront/src/pages/dashboard/[appDomain]/index.astro +100 -0
  153. package/apps/storefront/src/pages/dashboard/[appDomain]/team.astro +154 -0
  154. package/apps/storefront/src/pages/dashboard/index.astro +160 -0
  155. package/apps/storefront/src/pages/dev.astro +653 -0
  156. package/apps/storefront/src/pages/index.astro +290 -0
  157. package/apps/storefront/src/pages/llms.txt.ts +92 -0
  158. package/apps/storefront/src/pages/products/[handle].astro +443 -0
  159. package/apps/storefront/src/pages/robots.txt.ts +24 -0
  160. package/apps/storefront/src/pages/saved.astro +35 -0
  161. package/apps/storefront/src/pages/search.astro +150 -0
  162. package/apps/storefront/src/pages/sitemap.xml.ts +78 -0
  163. package/apps/storefront/src/pages/style-guide/[tenant]/[theme].astro +646 -0
  164. package/apps/storefront/src/pages/style-guide/[tenant]/index.astro +85 -0
  165. package/apps/storefront/src/pages/style-guide/index.astro +94 -0
  166. package/apps/storefront/src/pages/tenants/[id]/[...path].ts +57 -0
  167. package/apps/storefront/src/styles/global.css +277 -0
  168. package/apps/storefront/src/themes/reference.ts +61 -0
  169. package/apps/storefront/src/themes/schema.ts +111 -0
  170. package/apps/storefront/src/themes/tenants/index.ts +51 -0
  171. package/apps/storefront/tsconfig.json +16 -0
  172. package/apps/storefront/vitest.config.ts +22 -0
  173. package/apps/storefront/wrangler.toml +175 -0
  174. package/package.json +23 -0
  175. package/packages/public-runtime/LICENSE +58 -0
  176. package/packages/public-runtime/package.json +22 -0
  177. package/packages/public-runtime/src/binary-path.ts +68 -0
  178. package/packages/public-runtime/src/capabilities.ts +89 -0
  179. package/packages/public-runtime/src/catalog-api.ts +81 -0
  180. package/packages/public-runtime/src/catalog-d1.ts +192 -0
  181. package/packages/public-runtime/src/csp.ts +109 -0
  182. package/packages/public-runtime/src/customization-preview.ts +197 -0
  183. package/packages/public-runtime/src/customization-reconcile.ts +63 -0
  184. package/packages/public-runtime/src/customization-runtime.ts +157 -0
  185. package/packages/public-runtime/src/customization-scripts.ts +64 -0
  186. package/packages/public-runtime/src/customization-versioning.ts +95 -0
  187. package/packages/public-runtime/src/foxy.ts +184 -0
  188. package/packages/public-runtime/src/index.ts +30 -0
  189. package/packages/public-runtime/src/product.ts +159 -0
  190. package/packages/public-runtime/src/search.ts +45 -0
  191. package/packages/public-runtime/src/tenant-assets.ts +444 -0
  192. package/packages/public-runtime/src/tenant.ts +243 -0
  193. package/packages/public-runtime/tsconfig.json +8 -0
  194. package/packages/public-runtime/vitest.config.ts +8 -0
  195. package/pnpm-workspace.yaml +7 -0
  196. package/scripts/build/copy-tenant-assets.mjs +69 -0
  197. package/scripts/tot-dev.mjs +439 -0
  198. package/tenants/bigdvapor/content/blog.json +52 -0
  199. package/tenants/bigdvapor/content/chrome.html +149 -0
  200. package/tenants/bigdvapor/content/chrome.json +47 -0
  201. package/tenants/bigdvapor/content/home.html +463 -0
  202. package/tenants/bigdvapor/content/home.json +73 -0
  203. package/tenants/bigdvapor/content/pages/about.json +5 -0
  204. package/tenants/bigdvapor/content/pages/privacy.json +6 -0
  205. package/tenants/bigdvapor/content/pages/shipping-returns.json +6 -0
  206. package/tenants/bigdvapor/content/pages-html/blogs/news.html +86 -0
  207. package/tenants/bigdvapor/content/pages-html/pages/about-us.html +106 -0
  208. package/tenants/bigdvapor/content/pages-html/pages/contact-us.html +61 -0
  209. package/tenants/bigdvapor/content/pages-html/pages/privacy-policy.html +72 -0
  210. package/tenants/bigdvapor/content/pages-html/pages/shipping-returns.html +172 -0
  211. package/tenants/bigdvapor/content/themes/bigd-navy.json +109 -0
  212. package/tenants/bigdvapor/public/img/brands/adjust-vape-disposable.png +0 -0
  213. package/tenants/bigdvapor/public/img/brands/again-vape-disposable.png +0 -0
  214. package/tenants/bigdvapor/public/img/brands/al-fakher-vape-disposable.png +0 -0
  215. package/tenants/bigdvapor/public/img/brands/arro-vape-disposable.png +0 -0
  216. package/tenants/bigdvapor/public/img/brands/cookies-vape-disposable.png +0 -0
  217. package/tenants/bigdvapor/public/img/brands/core-vape-disposable.png +0 -0
  218. package/tenants/bigdvapor/public/img/brands/cyclone-vape-disposable.png +0 -0
  219. package/tenants/bigdvapor/public/img/brands/dinner-lady-vape-disposable.png +0 -0
  220. package/tenants/bigdvapor/public/img/brands/extre-bar-vape-disposable.png +0 -0
  221. package/tenants/bigdvapor/public/img/brands/fifty-bar-vape-disposable.jpg +0 -0
  222. package/tenants/bigdvapor/public/img/brands/firerose-vape-disposable.jpg +0 -0
  223. package/tenants/bigdvapor/public/img/brands/flavor-beast-vape-disposable.jpg +0 -0
  224. package/tenants/bigdvapor/public/img/brands/foger-vape-disposable.png +0 -0
  225. package/tenants/bigdvapor/public/img/brands/kk-energy-vape-disposable.png +0 -0
  226. package/tenants/bigdvapor/public/img/brands/kumi-vape-disposable.png +0 -0
  227. package/tenants/bigdvapor/public/img/brands/lost-vape-dispoable.png +0 -0
  228. package/tenants/bigdvapor/public/img/brands/melo-labs-vape-disposable.png +0 -0
  229. package/tenants/bigdvapor/public/img/brands/mixo-vape-disposable.webp +0 -0
  230. package/tenants/bigdvapor/public/img/brands/one-tank-vape-disposable.jpg +0 -0
  231. package/tenants/bigdvapor/public/img/brands/oxbar-vape-disposable.webp +0 -0
  232. package/tenants/bigdvapor/public/img/brands/pillow-talk-vape-disposable.jpg +0 -0
  233. package/tenants/bigdvapor/public/img/brands/pod-king-vape-disposable.jpg +0 -0
  234. package/tenants/bigdvapor/public/img/brands/raz-vape-disposable.png +0 -0
  235. package/tenants/bigdvapor/public/img/hero-texas.jpg +0 -0
  236. package/tenants/bigdvapor/public/img/og.jpg +0 -0
  237. package/tenants/bigdvapor/public/img/pages/AdobeStock_202106312_web.jpg +0 -0
  238. package/tenants/bigdvapor/public/img/pages/CREW_web.jpg +0 -0
  239. package/tenants/bigdvapor/public/img/pages/Hero-Image.jpg +0 -0
  240. package/tenants/bigdvapor/public/img/tiles/adjust.png +0 -0
  241. package/tenants/bigdvapor/public/img/tiles/again.png +0 -0
  242. package/tenants/bigdvapor/public/img/tiles/al-fakher.png +0 -0
  243. package/tenants/bigdvapor/public/img/tiles/arro.png +0 -0
  244. package/tenants/bigdvapor/public/img/tiles/cookies.png +0 -0
  245. package/tenants/bigdvapor/public/img/tiles/core.png +0 -0
  246. package/tenants/bigdvapor/public/img/tiles/cyclone.png +0 -0
  247. package/tenants/bigdvapor/public/img/tiles/disposables.svg +23 -0
  248. package/tenants/bigdvapor/public/logo-wordmark.png +0 -0
  249. package/tenants/bigdvapor/public/pages/home.css +118 -0
  250. package/tenants/bigdvapor/public/pages/mkt.css +185 -0
  251. package/tenants/bigdvapor/public/pages/page.css +148 -0
  252. package/tenants/bigdvapor/public/themes/bigd-navy.css +73 -0
  253. package/tenants/bigdvapor/theme.json +12 -0
  254. package/tenants/giantvapes/content/chrome.html +152 -0
  255. package/tenants/giantvapes/content/chrome.json +94 -0
  256. package/tenants/giantvapes/content/home.html +194 -0
  257. package/tenants/giantvapes/content/home.json +50 -0
  258. package/tenants/giantvapes/content/pages/about.json +10 -0
  259. package/tenants/giantvapes/content/pages/privacy.json +6 -0
  260. package/tenants/giantvapes/content/pages/shipping-returns.json +6 -0
  261. package/tenants/giantvapes/content/pages-html/blogs/news.html +68 -0
  262. package/tenants/giantvapes/content/pages-html/pages/about-us.html +95 -0
  263. package/tenants/giantvapes/content/pages-html/pages/contact-us.html +68 -0
  264. package/tenants/giantvapes/content/pages-html/pages/privacy-policy.html +65 -0
  265. package/tenants/giantvapes/content/pages-html/pages/shipping-returns.html +77 -0
  266. package/tenants/giantvapes/content/themes/giant-navy.json +73 -0
  267. package/tenants/giantvapes/public/img/hero-suicide-bunny.jpg +0 -0
  268. package/tenants/giantvapes/public/img/hero.webp +0 -0
  269. package/tenants/giantvapes/public/img/og.jpg +0 -0
  270. package/tenants/giantvapes/public/logo-wordmark.png +0 -0
  271. package/tenants/giantvapes/public/pages/home.css +120 -0
  272. package/tenants/giantvapes/public/pages/mkt.css +185 -0
  273. package/tenants/giantvapes/public/pages/page.css +155 -0
  274. package/tenants/giantvapes/public/themes/giant-navy.css +76 -0
  275. package/tenants/giantvapes/theme.json +39 -0
  276. package/tenants/home/content/chrome.json +11 -0
  277. package/tenants/home/content/home.html +304 -0
  278. package/tenants/home/content/home.json +13 -0
  279. package/tenants/home/public/js/storefront.js +210 -0
  280. package/tenants/home/public/logo-wordmark.png +0 -0
  281. package/tenants/home/public/pages/storefront.css +212 -0
  282. package/tenants/home/theme.json +6 -0
  283. package/tenants/tokenoftrust/.tot/config.json +9 -0
  284. package/tenants/tokenoftrust/content/chrome.json +55 -0
  285. package/tenants/tokenoftrust/content/home.html +723 -0
  286. package/tenants/tokenoftrust/content/home.json +233 -0
  287. package/tenants/tokenoftrust/content/pages-html/careers.html +231 -0
  288. package/tenants/tokenoftrust/content/pages-html/company.html +275 -0
  289. package/tenants/tokenoftrust/content/pages-html/contact/contact-sales.html +188 -0
  290. package/tenants/tokenoftrust/content/pages-html/contact/startup-apply.html +206 -0
  291. package/tenants/tokenoftrust/content/pages-html/contact.html +178 -0
  292. package/tenants/tokenoftrust/content/pages-html/industries/adult-content-age-verification.html +286 -0
  293. package/tenants/tokenoftrust/content/pages-html/industries/cannabis.html +277 -0
  294. package/tenants/tokenoftrust/content/pages-html/pact-act-pricing.html +289 -0
  295. package/tenants/tokenoftrust/content/pages-html/pricing.html +483 -0
  296. package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-estimation.html +278 -0
  297. package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-gate.html +279 -0
  298. package/tenants/tokenoftrust/content/pages-html/product/age-assurance/age-verification.html +265 -0
  299. package/tenants/tokenoftrust/content/pages-html/product/age-assurance.html +173 -0
  300. package/tenants/tokenoftrust/content/pages-html/product/compliance/aml.html +214 -0
  301. package/tenants/tokenoftrust/content/pages-html/product/compliance/pact-act.html +226 -0
  302. package/tenants/tokenoftrust/content/pages-html/product/fraud-prevention.html +254 -0
  303. package/tenants/tokenoftrust/content/pages-html/product/social-profile-verification.html +212 -0
  304. package/tenants/tokenoftrust/content/pages-html/product/tax/excise-tax.html +213 -0
  305. package/tenants/tokenoftrust/content/pages-html/product/verification/aml.html +259 -0
  306. package/tenants/tokenoftrust/content/pages-html/product/verification/biometric-selfie.html +305 -0
  307. package/tenants/tokenoftrust/content/pages-html/product/verification/coverage.html +254 -0
  308. package/tenants/tokenoftrust/content/pages-html/product/verification/document-verification.html +306 -0
  309. package/tenants/tokenoftrust/content/pages-html/product/verification/electronic-identity-verification.html +304 -0
  310. package/tenants/tokenoftrust/content/pages-html/product/verification/government-id-verification.html +308 -0
  311. package/tenants/tokenoftrust/content/pages-html/product/verification.html +183 -0
  312. package/tenants/tokenoftrust/content/pages-html/product.html +228 -0
  313. package/tenants/tokenoftrust/content/pages-html/resources/integrations/bigcommerce-integration.html +220 -0
  314. package/tenants/tokenoftrust/content/pages-html/resources/integrations/shopify-integration.html +221 -0
  315. package/tenants/tokenoftrust/content/pages-html/resources/integrations/wordpress.html +220 -0
  316. package/tenants/tokenoftrust/content/pages-html/resources/integrations.html +172 -0
  317. package/tenants/tokenoftrust/content/pages-html/resources/refer-a-friend-program.html +317 -0
  318. package/tenants/tokenoftrust/content/pages-html/resources.html +177 -0
  319. package/tenants/tokenoftrust/content/pages-html/reviews.html +273 -0
  320. package/tenants/tokenoftrust/content/pages-html/solutions.html +292 -0
  321. package/tenants/tokenoftrust/content/pages-html/vlp-alcohol.html +289 -0
  322. package/tenants/tokenoftrust/content/pages-html/vlp-cigars-and-tobacco.html +286 -0
  323. package/tenants/tokenoftrust/content/pages-html/vlp-firearm-accessories.html +267 -0
  324. package/tenants/tokenoftrust/content/pages-html/vlp-peptides.html +273 -0
  325. package/tenants/tokenoftrust/content/themes/tot-navy.json +88 -0
  326. package/tenants/tokenoftrust/public/favicon.png +0 -0
  327. package/tenants/tokenoftrust/public/logo-icon.png +0 -0
  328. package/tenants/tokenoftrust/public/logo-wordmark.png +0 -0
  329. package/tenants/tokenoftrust/public/pages/company.css +108 -0
  330. package/tenants/tokenoftrust/public/pages/home.css +457 -0
  331. package/tenants/tokenoftrust/public/pages/mkt.css +482 -0
  332. package/tenants/tokenoftrust/public/pages/pricing.css +214 -0
  333. package/tenants/tokenoftrust/public/pages/solutions.css +66 -0
  334. package/tenants/tokenoftrust/public/themes/tot-navy-1.0.0.css +136 -0
  335. package/tenants/tokenoftrust/public/themes/tot-navy.css +358 -0
  336. package/tenants/tokenoftrust/theme.json +31 -0
  337. package/tsconfig.base.json +20 -0
@@ -0,0 +1,254 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <link rel="icon" type="image/png" href="/tenants/tokenoftrust/favicon.png">
7
+ <title>Fraud Prevention Software for Ecommerce | Token of Trust</title>
8
+ <meta name="description" content="Protect orders against fraud, verify users quickly, reduce chargebacks and ensure compliance with Token of Trust's fraud prevention software for ecommerce.">
9
+ <link rel="canonical" href="https://tokenoftrust.com/product/fraud-prevention/">
10
+ <meta name="robots" content="index,follow,max-image-preview:large">
11
+ <meta property="og:type" content="website">
12
+ <meta property="og:site_name" content="Token of Trust">
13
+ <meta property="og:title" content="Fraud Prevention Software for Ecommerce | Token of Trust">
14
+ <meta property="og:description" content="Protect orders against fraud, verify users quickly, reduce chargebacks and ensure compliance with Token of Trust's fraud prevention software for ecommerce.">
15
+ <meta property="og:url" content="https://tokenoftrust.com/product/fraud-prevention/">
16
+ <meta name="twitter:card" content="summary_large_image">
17
+ <meta name="twitter:title" content="Fraud Prevention Software — Token of Trust">
18
+ <meta name="twitter:description" content="Protect orders against fraud and chargebacks with automated identity verification and customizable order rules.">
19
+ <script type="application/ld+json">
20
+ {
21
+ "@context": "https://schema.org",
22
+ "@graph": [
23
+ {
24
+ "@type": "Organization",
25
+ "@id": "https://tokenoftrust.com/#org",
26
+ "name": "Token of Trust",
27
+ "url": "https://tokenoftrust.com/",
28
+ "logo": "/tenants/tokenoftrust/logo-icon.png",
29
+ "slogan": "Real Customers. Less Fraud. More Trust."
30
+ },
31
+ {
32
+ "@type": "WebPage",
33
+ "name": "Fraud Prevention Software for Ecommerce",
34
+ "url": "https://tokenoftrust.com/product/fraud-prevention/"
35
+ }
36
+ ]
37
+ }
38
+ </script>
39
+ <link rel="stylesheet" href="/tenants/tokenoftrust/themes/tot-navy.css">
40
+ <link rel="stylesheet" href="/tenants/tokenoftrust/pages/mkt.css">
41
+ </head>
42
+ <body>
43
+ <a class="skip-link" href="#main">Skip to main content</a>
44
+
45
+ <header class="site">
46
+ <div class="container nav-row">
47
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
48
+ <nav class="primary" id="primaryNav" aria-label="Primary">
49
+ <ul>
50
+ <li><a class="active" href="/product/" aria-current="page">Platform</a></li>
51
+ <li><a href="/solutions/">Industries</a></li>
52
+ <li><a href="/company/">Company</a></li>
53
+ <li><a href="/resources/">Resources</a></li>
54
+ <li><a href="/pricing/">Pricing</a></li>
55
+ <li><a href="https://app.tokenoftrust.com">Login</a></li>
56
+ </ul>
57
+ </nav>
58
+ <div class="nav-cta">
59
+ <a class="btn btn-line" href="/contact/">Book Demo</a>
60
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
61
+ <button class="hamburger" id="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primaryNav"><span></span><span></span><span></span></button>
62
+ </div>
63
+ </div>
64
+ </header>
65
+
66
+ <main id="main">
67
+ <div class="container">
68
+ <nav class="crumbs" aria-label="Breadcrumb">
69
+ <a href="/">Home</a><span class="sep">&rsaquo;</span><a href="/product/">Platform</a><span class="sep">&rsaquo;</span>Fraud
70
+ Prevention
71
+ </nav>
72
+ </div>
73
+
74
+ <section class="hero" aria-labelledby="hero-heading">
75
+ <div class="container">
76
+ <span class="eyebrow"><span class="dot"></span>Fraud Prevention</span>
77
+ <h1 id="hero-heading">Ecommerce fraud prevention <span class="grad">software.</span></h1>
78
+ <p class="lede">
79
+ Defend your business against chargebacks and ecommerce fraud with Token of Trust. Tailor your protection
80
+ strategy using customizable order rules and automated identity verification.
81
+ </p>
82
+ <div class="cta-row">
83
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
84
+ <a class="btn btn-line" href="/contact/">Talk to an expert</a>
85
+ </div>
86
+ </div>
87
+ </section>
88
+
89
+ <div class="proof">
90
+ <div class="container">
91
+ <span><b>Verify users</b> quickly and easily</span><span class="sep">·</span>
92
+ <span><b>Global compliance</b> built in</span><span class="sep">·</span>
93
+ <span><b>Data security &amp; privacy</b> first</span>
94
+ </div>
95
+ </div>
96
+
97
+ <section aria-labelledby="feat-heading">
98
+ <div class="container">
99
+ <div class="center reveal">
100
+ <span class="kicker">Features</span>
101
+ <h2 id="feat-heading">Turnkey fraud prevention that works the way you do</h2>
102
+ <p class="section-lede">
103
+ Token of Trust analyzes a spectrum of risk indicators and lets you set the rules — so you stay one
104
+ step ahead without manual effort.
105
+ </p>
106
+ </div>
107
+ <div class="feature-grid">
108
+ <article class="feat-card accent reveal">
109
+ <h3>Auto-flagging high-risk orders</h3>
110
+ <p>Instantly identify potential threats with our automated system. High-risk orders are flagged so you
111
+ stay one step ahead in fraud prevention without manual effort.</p>
112
+ </article>
113
+ <article class="feat-card accent reveal">
114
+ <h3>Rule customization for precise protection</h3>
115
+ <p>Take control with rule-setting capabilities. Customize conditions like identity verification for high-value
116
+ orders or extra checks for mismatched addresses, tailored to your business.</p>
117
+ </article>
118
+ <article class="feat-card accent reveal">
119
+ <h3>Comprehensive risk analysis</h3>
120
+ <p>We go beyond the basics — analyzing geographical checks, device-based verification, and identity corroboration
121
+ for a thorough examination of potential threats.</p>
122
+ </article>
123
+ <article class="feat-card accent reveal">
124
+ <h3>Restrict repeat offenders</h3>
125
+ <p>Block repeat offenders at the gate. Token of Trust identifies and restricts access for those attempting
126
+ fraudulent activity repeatedly, fortifying your defenses.</p>
127
+ </article>
128
+ <article class="feat-card accent reveal">
129
+ <h3>VIP treatment for loyal customers</h3>
130
+ <p>Reward loyalty effortlessly. Recognize and prioritize loyal customers with expedited order placement
131
+ for a seamless, efficient experience.</p>
132
+ </article>
133
+ <article class="feat-card accent reveal">
134
+ <h3>Seamless, turnkey integration</h3>
135
+ <p>Integrate Token of Trust with popular ecommerce platforms. Our turnkey solution simplifies fraud prevention
136
+ so you can focus on growth. <a class="card-link" href="/product/">View the platform &rarr;</a></p>
137
+ </article>
138
+ </div>
139
+ </div>
140
+ </section>
141
+
142
+ <section class="alt-bg" aria-labelledby="threats-heading">
143
+ <div class="container">
144
+ <div class="center reveal">
145
+ <span class="kicker">Targeted solutions</span>
146
+ <h2 id="threats-heading">Protecting your business against diverse threats</h2>
147
+ <p class="section-lede">As your ecommerce business faces diverse threats, Token of Trust stands ready with
148
+ targeted solutions.</p>
149
+ </div>
150
+ <div class="feature-grid four">
151
+ <article class="feat-card reveal">
152
+ <h3>Chargebacks &amp; friendly fraud</h3>
153
+ <p>Real-time analysis and identity verification help you dispute and win chargeback cases for financial
154
+ stability.</p>
155
+ </article>
156
+ <article class="feat-card reveal">
157
+ <h3>Return abuse</h3>
158
+ <p>Secure your returns process with stringent policies, advanced analytics, and identity verification
159
+ to authenticate customers.</p>
160
+ </article>
161
+ <article class="feat-card reveal">
162
+ <h3>Account takeover (ATO)</h3>
163
+ <p>Stay ahead of identity theft with multi-factor authentication, behavior monitoring, and identity verification.</p>
164
+ </article>
165
+ <article class="feat-card reveal">
166
+ <h3>Promotional abuse</h3>
167
+ <p>Set limits, monitor user activity, and add identity verification to protect promotions from exploitation.</p>
168
+ </article>
169
+ </div>
170
+ </div>
171
+ </section>
172
+
173
+ <section aria-labelledby="privacy-heading">
174
+ <div class="container">
175
+ <div class="split reveal">
176
+ <div class="split-copy">
177
+ <span class="kicker">Privacy</span>
178
+ <h2 id="privacy-heading">Fostering trust through privacy</h2>
179
+ <p>
180
+ Our commitment to privacy runs deep within the fabric of our solutions. Through cutting-edge
181
+ security and encryption, Token of Trust provides a trustworthy foundation for businesses seeking
182
+ reliable solutions across identity and compliance.
183
+ </p>
184
+ <a class="btn btn-line" href="https://help.tokenoftrust.com">How we protect data</a>
185
+ </div>
186
+ <ul class="check-list">
187
+ <li><b>Case studies</b><span>See real-world benefits Token of Trust has delivered for businesses like
188
+ yours. <a href="/resources/">View case studies</a></span></li>
189
+ <li><b>Latest fraud insights</b><span>Expert ecommerce fraud-prevention insights, trends, and tips. <a href="/resources/">Read
190
+ the blog</a></span></li>
191
+ <li><b>Rave reviews &amp; awards</b><span>Hear from the businesses we've impressed. <a href="/resources/">Read
192
+ our reviews</a></span></li>
193
+ </ul>
194
+ </div>
195
+ </div>
196
+ </section>
197
+
198
+ <section aria-labelledby="cta-heading">
199
+ <div class="container">
200
+ <div class="cta-band reveal">
201
+ <span class="kicker">Get started</span>
202
+ <h2 id="cta-heading">Ready to safely acquire new customers?</h2>
203
+ <p>Free trial. No credit card needed. Start protecting orders against fraud today.</p>
204
+ <div class="cta-row">
205
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
206
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
207
+ </div>
208
+ </div>
209
+ </div>
210
+ </section>
211
+ </main>
212
+
213
+ <footer class="site">
214
+ <div class="container">
215
+ <div class="foot-grid">
216
+ <div>
217
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
218
+ <p class="foot-note">Customer verification and compliance for regulated ecommerce. 256-bit SSL. We will
219
+ NEVER sell your data. GDPR · CCPA · PIPEDA.</p>
220
+ </div>
221
+ <nav aria-label="Platform footer"><h3>Platform</h3><ul>
222
+ <li><a href="/product/verification/">Identity Verification</a></li>
223
+ <li><a href="/product/age-assurance/">Age Assurance</a></li>
224
+ <li><a href="/product/fraud-prevention/">Fraud Prevention</a></li>
225
+ <li><a href="/product/">All products</a></li>
226
+ </ul></nav>
227
+ <nav aria-label="Industries footer"><h3>Industries</h3><ul>
228
+ <li><a href="/solutions/">All industries</a></li>
229
+ <li><a href="/vlp-cigars-and-tobacco/">Tobacco &amp; Vape</a></li>
230
+ <li><a href="/vlp-alcohol/">Wine &amp; Spirits</a></li>
231
+ <li><a href="/industries/cannabis/">Cannabis</a></li>
232
+ </ul></nav>
233
+ <nav aria-label="Company footer"><h3>Company</h3><ul>
234
+ <li><a href="/company/">Company</a></li>
235
+ <li><a href="/careers/">Careers</a></li>
236
+ <li><a href="/pricing/">Pricing</a></li>
237
+ <li><a href="/contact/">Contact Sales</a></li>
238
+ </ul></nav>
239
+ </div>
240
+ <p class="copyright">© 2026 Token of Trust®. All rights reserved.</p>
241
+ </div>
242
+ </footer>
243
+
244
+ <script>
245
+ (function(){
246
+ var burger = document.getElementById('hamburger');
247
+ var nav = document.getElementById('primaryNav');
248
+ burger.addEventListener('click', function(){ var open = nav.classList.toggle('open'); burger.setAttribute('aria-expanded', open ? 'true' : 'false'); });
249
+ var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } }); }, {threshold:.12});
250
+ document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); });
251
+ })();
252
+ </script>
253
+ </body>
254
+ </html>
@@ -0,0 +1,212 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <link rel="icon" type="image/png" href="/tenants/tokenoftrust/favicon.png">
7
+ <title>Social Media Profile Verification | Token of Trust</title>
8
+ <meta name="description" content="Token of Trust verifies social media profiles, ensuring authenticity and credibility in individuals' online presence.">
9
+ <link rel="canonical" href="https://tokenoftrust.com/product/social-profile-verification/">
10
+ <meta name="robots" content="index,follow,max-image-preview:large">
11
+ <meta property="og:type" content="website">
12
+ <meta property="og:site_name" content="Token of Trust">
13
+ <meta property="og:title" content="Social Media Profile Verification | Token of Trust">
14
+ <meta property="og:description" content="Token of Trust verifies social media profiles, ensuring authenticity and credibility in individuals' online presence.">
15
+ <meta property="og:url" content="https://tokenoftrust.com/product/social-profile-verification/">
16
+ <meta name="twitter:card" content="summary_large_image">
17
+ <meta name="twitter:title" content="Social Profile Verification — Token of Trust">
18
+ <meta name="twitter:description" content="Leverage social media integrations to verify an identity in moments.">
19
+ <script type="application/ld+json">
20
+ {
21
+ "@context": "https://schema.org",
22
+ "@graph": [
23
+ {
24
+ "@type": "Organization",
25
+ "@id": "https://tokenoftrust.com/#org",
26
+ "name": "Token of Trust",
27
+ "url": "https://tokenoftrust.com/",
28
+ "logo": "/tenants/tokenoftrust/logo-icon.png",
29
+ "slogan": "Real Customers. Less Fraud. More Trust."
30
+ },
31
+ {
32
+ "@type": "WebPage",
33
+ "name": "Social Profile Verification",
34
+ "url": "https://tokenoftrust.com/product/social-profile-verification/"
35
+ }
36
+ ]
37
+ }
38
+ </script>
39
+ <link rel="stylesheet" href="/tenants/tokenoftrust/themes/tot-navy.css">
40
+ <link rel="stylesheet" href="/tenants/tokenoftrust/pages/mkt.css">
41
+ </head>
42
+ <body>
43
+ <a class="skip-link" href="#main">Skip to main content</a>
44
+
45
+ <header class="site">
46
+ <div class="container nav-row">
47
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
48
+ <nav class="primary" id="primaryNav" aria-label="Primary">
49
+ <ul>
50
+ <li><a class="active" href="/product/" aria-current="page">Platform</a></li>
51
+ <li><a href="/solutions/">Industries</a></li>
52
+ <li><a href="/company/">Company</a></li>
53
+ <li><a href="/resources/">Resources</a></li>
54
+ <li><a href="/pricing/">Pricing</a></li>
55
+ <li><a href="https://app.tokenoftrust.com">Login</a></li>
56
+ </ul>
57
+ </nav>
58
+ <div class="nav-cta">
59
+ <a class="btn btn-line" href="/contact/">Book Demo</a>
60
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
61
+ <button class="hamburger" id="hamburger" aria-label="Toggle navigation menu" aria-expanded="false" aria-controls="primaryNav"><span></span><span></span><span></span></button>
62
+ </div>
63
+ </div>
64
+ </header>
65
+
66
+ <main id="main">
67
+ <div class="container">
68
+ <nav class="crumbs" aria-label="Breadcrumb">
69
+ <a href="/">Home</a><span class="sep">&rsaquo;</span><a href="/product/">Platform</a><span class="sep">&rsaquo;</span>Social
70
+ Profile Verification
71
+ </nav>
72
+ </div>
73
+
74
+ <section class="hero" aria-labelledby="hero-heading">
75
+ <div class="container">
76
+ <span class="eyebrow"><span class="dot"></span>Verification</span>
77
+ <h1 id="hero-heading">Social profile <span class="grad">verification.</span></h1>
78
+ <p class="lede">
79
+ Leverage social media integrations to verify an identity in moments. Build a workflow that gives you the
80
+ identity certainty you desire while offering customers the transparency they prefer.
81
+ </p>
82
+ <div class="cta-row">
83
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
84
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
85
+ </div>
86
+ </div>
87
+ </section>
88
+
89
+ <div class="proof">
90
+ <div class="container">
91
+ <span><b>KYC-qualified</b> screens</span><span class="sep">·</span>
92
+ <span><b>256-bit SSL</b> encryption</span><span class="sep">·</span>
93
+ <span><b>Secure archival</b> up to 7 years</span>
94
+ </div>
95
+ </div>
96
+
97
+ <section aria-labelledby="why-heading">
98
+ <div class="container">
99
+ <div class="split reveal">
100
+ <div class="split-copy">
101
+ <span class="kicker">Why it matters</span>
102
+ <h2 id="why-heading">Endless information, handled responsibly</h2>
103
+ <p>
104
+ The amount of information available to validate within social profiles is endless — and with that
105
+ comes a critical level of responsibility and accountability. Token of Trust helps you build a
106
+ workflow that balances identity certainty with customer transparency.
107
+ </p>
108
+ <a class="btn btn-line" href="/product/verification/">Explore verification</a>
109
+ </div>
110
+ <ul class="check-list">
111
+ <li><b>Identity certainty</b><span>Confirm the person behind a profile is who they claim to be.</span></li>
112
+ <li><b>Customer transparency</b><span>Give customers a clear, respectful verification experience.</span></li>
113
+ <li><b>Fits your flow</b><span>Add social profile checks to your existing verification workflow.</span></li>
114
+ </ul>
115
+ </div>
116
+ </div>
117
+ </section>
118
+
119
+ <section class="alt-bg" aria-labelledby="feat-heading">
120
+ <div class="container">
121
+ <div class="center reveal">
122
+ <span class="kicker">Features</span>
123
+ <h2 id="feat-heading">Social profile checks, tied to a verified identity</h2>
124
+ <p class="section-lede">Every screen is qualified by our Know Your Customer (KYC) process and archived
125
+ securely.</p>
126
+ </div>
127
+ <div class="feature-grid">
128
+ <article class="feat-card accent reveal">
129
+ <h3>KYC-qualified screens</h3>
130
+ <p>Screens are qualified by our Know Your Customer (KYC) process, tying results to a verified identity.</p>
131
+ </article>
132
+ <article class="feat-card accent reveal">
133
+ <h3>Add to your verification flow</h3>
134
+ <p>Layer social profile verification into your existing identity workflow with minimal friction.</p>
135
+ </article>
136
+ <article class="feat-card accent reveal">
137
+ <h3>Secure archival options</h3>
138
+ <p>Retain results with secure archival options for up to 7 years to satisfy audit and legal needs.</p>
139
+ </article>
140
+ <article class="feat-card accent reveal">
141
+ <h3>256-bit SSL encryption</h3>
142
+ <p>Data is protected in transit and at rest with 256-bit SSL encryption.</p>
143
+ </article>
144
+ <article class="feat-card accent reveal">
145
+ <h3>Reputation Report™ results</h3>
146
+ <p>Consolidated Reputation Report™ results give you the identity certainty you need in one place.</p>
147
+ </article>
148
+ <article class="feat-card accent reveal">
149
+ <h3>Verify in moments</h3>
150
+ <p>Use social media integrations to confirm an identity quickly, without lengthy manual review.</p>
151
+ </article>
152
+ </div>
153
+ </div>
154
+ </section>
155
+
156
+ <section aria-labelledby="cta-heading">
157
+ <div class="container">
158
+ <div class="cta-band reveal">
159
+ <span class="kicker">Get started</span>
160
+ <h2 id="cta-heading">Verify identities in moments</h2>
161
+ <p>Ensure authenticity and credibility in your customers' online presence. Start free or talk to sales.</p>
162
+ <div class="cta-row">
163
+ <a class="btn btn-green" href="https://app.tokenoftrust.com">Start For Free</a>
164
+ <a class="btn btn-line" href="/contact/">Contact Sales</a>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </section>
169
+ </main>
170
+
171
+ <footer class="site">
172
+ <div class="container">
173
+ <div class="foot-grid">
174
+ <div>
175
+ <a class="brand" href="/" aria-label="Token of Trust home"><img src="/tenants/tokenoftrust/logo-wordmark.png" alt="Token of Trust" width="156" height="34" style="height:34px;width:auto;display:block"></a>
176
+ <p class="foot-note">Customer verification and compliance for regulated ecommerce. 256-bit SSL. We will
177
+ NEVER sell your data. GDPR · CCPA · PIPEDA.</p>
178
+ </div>
179
+ <nav aria-label="Platform footer"><h3>Platform</h3><ul>
180
+ <li><a href="/product/verification/">Identity Verification</a></li>
181
+ <li><a href="/product/age-assurance/">Age Assurance</a></li>
182
+ <li><a href="/product/fraud-prevention/">Fraud Prevention</a></li>
183
+ <li><a href="/product/">All products</a></li>
184
+ </ul></nav>
185
+ <nav aria-label="Industries footer"><h3>Industries</h3><ul>
186
+ <li><a href="/solutions/">All industries</a></li>
187
+ <li><a href="/vlp-cigars-and-tobacco/">Tobacco &amp; Vape</a></li>
188
+ <li><a href="/vlp-alcohol/">Wine &amp; Spirits</a></li>
189
+ <li><a href="/industries/cannabis/">Cannabis</a></li>
190
+ </ul></nav>
191
+ <nav aria-label="Company footer"><h3>Company</h3><ul>
192
+ <li><a href="/company/">Company</a></li>
193
+ <li><a href="/careers/">Careers</a></li>
194
+ <li><a href="/pricing/">Pricing</a></li>
195
+ <li><a href="/contact/">Contact Sales</a></li>
196
+ </ul></nav>
197
+ </div>
198
+ <p class="copyright">© 2026 Token of Trust®. All rights reserved.</p>
199
+ </div>
200
+ </footer>
201
+
202
+ <script>
203
+ (function(){
204
+ var burger = document.getElementById('hamburger');
205
+ var nav = document.getElementById('primaryNav');
206
+ burger.addEventListener('click', function(){ var open = nav.classList.toggle('open'); burger.setAttribute('aria-expanded', open ? 'true' : 'false'); });
207
+ var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } }); }, {threshold:.12});
208
+ document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); });
209
+ })();
210
+ </script>
211
+ </body>
212
+ </html>