Three layers. One launch.
18 static HTML pages
Deploy as static site behind Cloudflare or Vercel. All pages share m5-chrome.css, m5-chrome.js, and m5-shader.js. Mobile-tested at 375 / 768 / desktop.
Supabase + Resend
Single edge function /functions/v1/submit handles every form. Writes to Postgres tables, mints placeholder TCID, sends notification to the TitleChain Foundation inbox. Full spec in devin-spec.html.
Base Mainnet · L2
M5x402 settlement, TitleChain TCID anchor, Ricardian contract attestations. Bitcoin notary for permanence. Contracts deployed to Base Mainnet, witnessed via wyomingchain.eth namespace.
18 launch pages + 4 whitepapers. All canonical.
Build target: every row below must respond 200 OK at the canonical URL, render correctly at 375px / 768px / desktop, and route every CTA without dead ends.
| File | Canonical URL | Role | Status | Form? | On-chain? |
|---|---|---|---|---|---|
| home.html | / | Front door · Three Doors hero | Live | — | — |
| wsw-activation.html | /reserve | Reserve block · Founding wave | Form Chain | reserveBlock | TCID issue |
| iam-activate.html | /iam | Pick jurisdiction chain · Mint TCID | Form Chain | activateIAM | TCID mint |
| bom-onboard.html | /bom-onboard | Bank of Me onboarding · jurisdiction + ENS + WSW | Form Chain | onboardBom | — |
| bank-of-me.html | /me | Door 01 · Individual sovereignty | Live | — | — |
| bank-of-business.html | /business | Door 02 · Org sovereignty | Live | — | — |
| bank-of-us.html | /build | Door 03 · Build / work / power | Live | — | — |
| onboard-business.html | /onboard-business | Business onboarding · TCID held / registration pending · BOB/BOU/BOI/BOG | Form Chain | onboardBiz | — |
| circle.html | /circle | Investor relations · Private invite | Form | circleApply | — |
| learn.html | /learn | Credentials · 28 SOPHIA tracks | Form | learnSignup | SOPHIA cred |
| trust.html | /trust | How M5 protects you | Live | — | — |
| governance.html | /governance | Pax Economica · Cyrus Protocol | Live | — | — |
| sovereign-web-map.html | /map | 15 standards corridors | Live | — | — |
| library.html | /library | Whitepapers + research index | Live | — | — |
| dev-docs.html | /docs | M5x402 · M5-MCP · M5-A2A | Live | — | Mintlify mirror |
| agents.html | /agents | 30 M5Agents | Live | — | — |
| m5-capital.html | /capital | Value rails · Valoris protocol | Live | — | VSP anchor |
| member-dashboard.html | /dashboard | Post-activation dashboard | Member | auth-only | read TCID |
| contact.html | /contact | Contact + routed forms | Form | contact | — |
| whitepaper-m5x402.html | /whitepapers/m5x402 | M5x402 public spec | Live | — | — |
| whitepaper-m5x402-dev.html | /whitepapers/m5x402-dev | M5x402 dev spec | Live | — | — |
| whitepaper-sovereign-internet.html | /whitepapers/sovereign-internet | Sovereign internet architecture | Live | — | — |
| PaxEconomica_Part1–5.html | /pax/part-1 … /pax/part-5 | Pax Economica · 5 parts | Live | — | — |
all_html/, m5-site/, uploads/, standalone/, screenshots/, and files ending in v1.html / v2.html are archive/backup. Disallowed in robots.txt. Do not deploy.
What lives on Base.
M5 operates Base Mainnet as its L2 settlement layer. Three on-chain primitives ship with launch.
TitleChain Identifier — soul-bound NFT
One TCID per sovereign entity (human, business, asset, agent). Non-transferable ERC-5192. Storage: just the identifier + jurisdiction-chain reference. Zero PII on-chain — PII lives in the M5POD vault, only proof hashes are anchored.
- Contract:
TCID.sol· ERC-721 + ERC-5192 (soul-bound) - Anchor: Base Mainnet · CL chainId 8453
- Mock contract:
0x4MOCK0a7b32c1d8e9f1A2b3C4d5E6f7A8B9c0D1e2(staging) - Witness: every mint mirrored to Bitcoin notary every 24h
- Mint trigger: WSW Activation success state in
/reserveform
Machine-native payment protocol
HTTP-402 settlement on Base. Stablecoin-denominated (USDC). Every M5-OpenAPI endpoint can be priced. Receipts written to the M5 ledger and anchored to Base every block.
- Spec: /whitepapers/m5x402
- Dev: /whitepapers/m5x402-dev
- Sandbox:
sandbox.m5x402.titlechainfoundation.eth(Base Sepolia) - Live:
m5x402.titlechainfoundation.eth(Base Mainnet, July 4)
Human-readable, machine-executable
Every M5 agreement is a Ricardian contract — human prose + machine clauses + on-chain attestation. Contracts deployed via TitleChain Foundation, never by M5Capital LLC.
- Schema:
ricardian-v1.json - Attestor: TitleChain Foundation multisig (3-of-5)
- Storage: IPFS (content) + Base (attestation hash)
M5 never touches member value
This is non-negotiable. Members hold their own keys via self-custody options: Arculus card (Block / Compsecure), Ledger, or Gnosis Safe on Base Mainnet. M5 wallet flow signs locally — no server-side custody, ever.
Base agent · environment (mock for staging — swap for real on cutover)
0x*MOCK* is a staging placeholder so the front-end renders end-to-end without a deployed contract. On launch day, Base agent ships real contracts and pushes the actual addresses in one PR — search for MOCK in env. The ENS roots (titlechainfoundation.eth and m5x402.titlechainfoundation.eth) are already reserved and resolve to the multisig.
Every submission lands in Supabase. Every submission emails the team.
Full schema, edge-function source, and client-helper code are in devin-spec.html. This section is the executive summary + smoke-test checklist.
One inbox, one sending domain
- Sending domain: titlechainfoundation.org (Resend verified)
- SPF · DKIM · DMARC: all three must be green before launch
- From: Foundation no-reply sender (
FOUNDATION_FROMenv) - To: Foundation routing inbox (
FOUNDATION_INBOXenv · real distribution group)
Single POST · dispatched by form field
- Endpoint:
POST /functions/v1/submit - Body:
{ form: 'reserveBlock', ...payload } - Rate limit: 5 req/min/IP for waitlist, 1/min for Circle
- Returns:
{ ok: true, tcid?, block_account? }
Smoke test before cutover
- Reserve block — submit
/reserveform, confirm row inreservationstable, confirm email in inbox, confirm success state shows generated TCID + block account. - IAM activate — submit
/iam, confirm chain selection round-trips, success state shows TCID on chosen chain. - Circle application — submit
/circle, confirm row incircle_applications, confirm gated email (delayed 5 min for review). - Onboard / Onboard Business — confirm row in
onboarding_starts, confirm immediate confirmation email to applicant. - Learn signup — confirm row in
learn_signupswith track selection. - Contact form — confirm row in
contacts, confirm routed email tohello@. - Bot honeypot — submit with hidden
websitefield filled → must 200 silently, no row, no email. - Rate limit — hammer endpoint, confirm 429 after 5 / 1 / min thresholds.
Crawlable. Shareable. Indexable.
Every launch page has been swept with canonical URL, full OG / Twitter meta, and a description. Sitemap and robots are at the project root.
<link rel="canonical">→https://m5bank.app/[route]<meta property="og:type|site_name|url|title|description|image"><meta name="twitter:card|title|description|image">(summary_large_image)<meta name="description">per-page, 140–180 chars
- /sitemap.xml — 25 URLs, priority + changefreq tagged
- /robots.txt — allow all, disallow archives + member surfaces, sitemap referenced
- GPTBot · PerplexityBot · ClaudeBot allowed · CCBot blocked
- Still TODO: ship
/assets/og-default.png(1200×630 brand image)
Launch-day SEO checklist
- Set up Google Search Console for
m5bank.app, verify via DNS TXT, submit/sitemap.xml. - Set up Bing Webmaster Tools, import from Google Search Console.
- Create the OG image — 1200×630 PNG, gold M5 wordmark on dark cosmic shader, save as
assets/og-default.png. (Pages already reference this path.) - Plausible / GA4 — install before launch so day-1 traffic is captured.
- Schema.org JSON-LD — add
Organization+WebSiteschema to home.html (optional but recommended for rich results). - Open Graph debugger — verify each canonical URL renders correctly in Twitter Card Validator, LinkedIn Post Inspector, and Facebook Debugger.
- Lighthouse — must score ≥90 on every page for SEO + Best Practices. Performance target ≥80 (shaders cost some).
The full canonical tree, with cross-references.
The full visual map lives at site-map.html. This is the launch reference.
In order. Tick as you go.
Full backend spec in devin-spec.html. This is the launch sequence.
- Deploy static site to Cloudflare Pages or Vercel. Point
m5bank.appto it. Confirm HTTPS, HSTS, and 200 status on every URL in the sitemap. - Spin up Supabase project. Run DDL from devin-spec.html §03. Enable RLS. Generate service-role key. Store in 1Password.
- Verify Resend domain.
titlechainfoundation.orgwith SPF, DKIM, DMARC. Confirmhello@distribution group has real recipients. - Deploy edge function
/functions/v1/submit. Test every form branch with curl. Confirm DB row + Resend email both arrive. - Wire
m5-submit.jsintom5-chrome.jsbundle so every page has the helper. - Rewire client forms:
submitReserve(),submitIAM(),submitCircle(),submitOnboard(),submitLearn(),submitContact(). Replace existing no-ops. - Mint dev TCID contract on Base Sepolia. Smoke-test full reservation → mint flow end-to-end.
- Deploy production TCID contract on Base Mainnet (chain 8453). Update env var, verify on Basescan.
- Generate OG image at
/assets/og-default.png. Run all canonical URLs through Twitter Card Validator + LinkedIn Post Inspector. - Search Console + Bing Webmaster: verify domain, submit sitemap, request indexing on the 4 priority-1.0 URLs.
- Analytics: install Plausible or GA4 before opening day-1 traffic.
- Final QA pass: Lighthouse ≥90 SEO on every page. No console errors. Mobile/iPad layouts verified.
- Cutover at 2026-07-04 00:00 UTC. M5x402 gateway → mainnet endpoint. TCID minting → mainnet contract. WSW Activation copy switches "founding wave" → "live".
Known gaps that need a human decision.
OG share image
Generated and shipped at /assets/og-default.png (1200×630). Auto-renders on Twitter, LinkedIn, iMessage, Slack, etc. Brand team can replace with a polished version pre-launch — every page already references this path.
Base mainnet contract addresses
Staging unblocked: mock addresses are wired in env so the front-end renders end-to-end. Real Base Mainnet TCID + Ricardian attestor addresses must be deployed and the env vars updated before 2026-07-04 cutover. Search MOCK in env to swap.
Pax Economica Part 3
Now shipped — was "Coming soon" placeholder. Live at /pax/part-3.
Mintlify mirror
Dev_Docs page links to titlechain.mintlify.io. Mintlify space needs M5x402 / M5-MCP / M5-A2A docs imported by launch.
M5 · Sovereign Internet · Mainnet 2026-07-04 · Briefed for Devin + Base Agent · v2026.05.22