Verifies who owns an agent Β· what itβs allowed to do Β· creates an auditable record before it acts, spends, transacts, or represents a business.
Other tools control a tool call. We control the whole mission lifecycle.
This is the marketing site for KYA Mission Control by MAS-AI Technologies Inc. β the trust and execution layer for AI agent missions. Birth certificate to signed receipt across MCP, APIs, browsers, and payment rails.
The site is built to feel like the product: dark, technical, mission-control. No cartoon robots, no generic AI gradients, no hype. Cards, dashboards, glow, grid lines, motion β exactly enough.
| Section | What it does |
|---|---|
| Hero | Simulated mission-control dashboard β agent passport Β· trust meter (animated SVG) Β· multi-dimensional budget bars Β· 5-child lineage tree with animated dataflow Β· 9-step audit timeline Β· Ed25519-verified anchor strip |
| Killer line | βOther tools control a tool call. We control the whole mission lifecycle.β β full-bleed strip with gold-radial glow |
| Problem | Five questions every CISO is about to ask, five answers no one ships |
| Product | Eight primitives β agent identity registry, ownership verification, permission policies, risk scoring, audit logs, compliance reports, platform API, reputation |
| How it works | Five-step mission lifecycle + a 5-line SDK preview that wraps any LangChain / Anthropic Tools / OpenAI Assistants agent |
| Architecture | Owner β Entity β Agent β Mission Policy Engine β Surfaces β Audit Ledger block diagram |
| Live Mission Lab | 9 scenario cards deep-linked to a running Cloud Run console β admit / block / checkpoint / verify, on real RFC 9421 signed requests |
| Use cases | Marketplaces, SaaS, fintech, enterprise, freelance, AI insurance |
| Why now | Standards rush Β· distribution moment Β· production pain |
| Comparison | KYA vs AWS AgentCore vs Cloudflare WBA vs ERC-8004 |
| Founder + Daena traction | 10 departments Γ 60 capabilities Γ 3,086 tests Β· customer-zero on day one |
| Waitlist | /api/waitlist Edge route with Resend / Slack / webhook fan-out |
The whole page is server-rendered, fully responsive, scroll-reactive (parallax glow orbs + drifting grid + descending scanline), and respects prefers-reduced-motion.
The hero section deep-links into our running Mission Lab on Cloud Run. Click any card to open it on the right scenario:
| # | Scenario | Outcome | Question it answers |
|---|---|---|---|
| 1 | Verified mission | β Admit | What does a green-light mission look like? |
| 2 | No passport | β Block | Which agent is this β and who owns it? |
| 3 | Revoked passport | β Block | How do I kill a key after it leaks? |
| 4 | Child scope escalation | β Block | What authority can a child claim? |
| 5 | Budget exceeded | βΈοΈ Checkpoint | How much has it spent on what? |
| 6 | High-risk action | βΈοΈ Checkpoint | What needs a human signature? |
| 7 | Stuck browser | βΈοΈ Checkpoint | How do I stop a wedged agent? |
| 8 | Replay blocked | β Block | Can a captured request be reused? |
| 9 | Verify offline | π Verify | Can I prove this tomorrow without your servers? |
Every click runs against a real FastAPI service, real Ed25519 keys, the real 12-state mission engine. The receipts are downloadable and offline-verifiable.
Prerequisites: Node.js β₯ 18.
git clone https://github.com/Mas-AI-Official/kYA_website.git
cd kYA_website
npm install
npm run devOpen http://localhost:3000.
The waitlist form on #join-beta works locally without any env vars β submissions are written to console.log (and to the browserβs localStorage as a defensive backup).
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BROWSER (visitor) β
β dark slate Β· gold Β· teal Β· framer-motion scroll FX β
ββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js 14 (App Router Β· static + Edge) β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β / ......... statically prerendered (SEO-friendly, LCP < 1.5s) β
β /api/waitlist .. Edge runtime function (V8 isolate, ~5ms cold) β
ββββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
β RESEND β β SLACK β β WEBHOOK (any) β
β HTML email β β Channel ping β β Zapier / Notion β
β (optional) β β (optional) β β (optional) β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
β
βΌ
ββββββββββββββββββββββ
β stdout JSON log β
β (always) β
ββββββββββββββββββββββ
Vercel / Cloudflare Logs surface these
/api/waitlist validates β checks honeypot β checks rate-limit (1/IP/min, after validation so a typo doesnβt lock you out) β fans out to all configured providers via Promise.all. Every provider is optional. The form succeeds with zero configuration.
| Token | Value | Used for |
|---|---|---|
| Background | #05080B ink + layered radial gradients |
Page base |
| Slate 900 | #0F1419 |
Panel surfaces |
| Slate 800 | #1A2129 |
Raised cards |
| Gold | #D4A843 |
Primary CTA, brand mark, "admit" signals |
| Teal | #2DD4BF |
Secondary accents, "verify" signals |
| Signal green | #34D399 |
Policy PASS, success |
| Signal amber | #FBBF24 |
Checkpoint pending, warning |
| Signal red | #F87171 |
Block, deny |
| Signal blue | #60A5FA |
Human-loop signal |
| Display | Inter | Headings, dashboard text |
| Mono | JetBrains Mono | Code, IDs, addresses |
Animation language: parallax glow orbs that drift with scroll Β· drifting grid Β· descending scanline Β· staggered card reveals Β· animated trust-meter SVG Β· audit-trail line-by-line. All motion respects prefers-reduced-motion.
.
βββ public/
β βββ kya-logo.png # Brand mark (gold-on-black)
β βββ favicon.svg
βββ src/
β βββ app/
β β βββ api/
β β β βββ waitlist/
β β β βββ route.ts # Edge function: validation + fan-out
β β βββ globals.css # Tailwind + glow / grid / scanline
β β βββ layout.tsx # Root layout, metadata, OG
β β βββ page.tsx # Composed landing page
β βββ components/
β β βββ AnimatedBackground.tsx # Scroll-reactive orbs + grid
β β βββ MissionDashboard.tsx # Hero dashboard simulation
β β βββ Nav.tsx # Sticky nav with KYA mark
β β βββ Footer.tsx
β β βββ sections/
β β βββ Hero.tsx
β β βββ Problem.tsx
β β βββ Product.tsx
β β βββ HowItWorks.tsx
β β βββ Architecture.tsx
β β βββ LiveLab.tsx # 9 deep-linked scenario cards
β β βββ UseCases.tsx
β β βββ WhyNow.tsx
β β βββ Comparison.tsx
β β βββ Founder.tsx
β β βββ CTA.tsx
β βββ lib/
β βββ cn.ts
βββ .env.example # All optional providers documented
βββ next.config.mjs
βββ package.json
βββ tailwind.config.ts # MAS-AI palette + animations
βββ tsconfig.json
βββ vercel.json # Security headers + Edge cache
βββ wrangler.toml # Cloudflare Pages config
Same provider as your DNS, free tier covers anything this site will see, and the Edge /api/waitlist runs as a Cloudflare Worker bundle for free.
npx wrangler login # one-time, opens browser
npm run cf:deploy # builds via @cloudflare/next-on-pages and uploadsAfter the first deploy:
-
Cloudflare Dashboard β Pages β
kya-mission-controlβ Custom Domains β enterkya.mas-ai.co. The CNAME is already set on themas-ai.cozone, so Cloudflare validates and issues the TLS cert in ~30 s. -
Settings β Environment Variables β paste any of:
Var Effect RESEND_API_KEY+WAITLIST_NOTIFY_TOBranded HTML email per signup WAITLIST_FROMOverride From:(default uses Resend onboarding)SLACK_WEBHOOK_URLInstant Slack channel ping WAITLIST_WEBHOOK_URLForward raw JSON to Zapier / n8n / Notion See
.env.example.
Containerized Next.js (standalone output) on a serverless region in Toronto. Same region as Daena, scale-to-zero, ~150 MB image, sub-second cold starts.
# One-time:
gcloud auth login
gcloud config set project mas-ai-kya
# Build + push + deploy + smoke-test (one shot):
npm run gcp:deployThe script:
- Enables
run.googleapis.com+artifactregistry.googleapis.com(no-op if already on) - Creates the Artifact Registry repo
kya-websiteinnorthamerica-northeast1(idempotent) - Builds the multi-stage
Dockerfileand tags with<version>-<git-sha>+latest - Pushes both tags
- Deploys to Cloud Run service
kya-website(cpu=1, memory=512Mi, concurrency=80, scale-to-zero) - Curls the live URL + the honeypot path on
/api/waitlistto confirm it works
No local Docker? Use Cloud Build instead β same result, runs entirely on Google's side:
npm run gcp:deploy:remoteAfter deploy, attach the custom domain in Cloud Run β kya-website β Custom Domains (this also issues a managed cert), or update your Cloudflare CNAME from kya-mission-control.pages.dev to ghs.googlehosted.com (Cloud Run's domain-mapping target).
Or via CLI:
npx vercel login
npx vercel --prodAfter deploy: Project Settings β Domains β add kya.mas-ai.co β add the DNS record Vercel shows (or keep the existing CNAME; both work).
npm run build && npm run startOutputs /.next (server) β wire to any Node host, or next export if you donβt need the API route.
POST /api/waitlist
{
"name": "Jane Doe", // required
"email": "jane@acme.com", // required, RFC-ish regex
"company": "ACME Agents", // optional
"use_case": "Procurement bot needs receipts", // optional, β€ 4000 chars
"website": "" // honeypot β must be empty
}Responses:
| Status | Meaning |
|---|---|
200 {ok:true, delivered:{resend, slack, webhook}} |
Accepted; per-provider booleans show what fired |
200 {ok:true} |
Honeypot tripped (silent β no slot consumed) |
400 {error:"missing_fields"} |
name or email blank |
400 {error:"invalid_email"} |
email failed regex |
400 {error:"invalid_json"} |
body not valid JSON |
429 {error:"rate_limited", retry_after_s} |
> 1 request from this IP this minute |
405 {error:"method_not_allowed"} |
not a POST |
Validation runs before rate-limiting so a typo doesnβt burn your slot. Honeypot bots are silently 200βd so they donβt retry.
| Metric | Target | Measured |
|---|---|---|
| First Load JS | < 200 kB | 154 kB |
| LCP | < 1.5 s | (depends on host) |
| Lighthouse | > 95 | (run yours) |
| Third-party trackers | 0 | 0 |
| External font requests | 0 | 0 (system stack) |
This is the marketing site. The product itself lives at Mas-AI-Official/KYA_Mission_Control (Apache 2.0, mission state machine + receipt spec + lab demo).
If you spot a copy bug, a typo, or a layout issue here, open an issue or a PR β anything that makes the site sharper is welcome. For product feedback (the protocol, the receipt format, the lab scenarios), open issues on the product repo.
Apache 2.0 β see LICENSE.
Β© 2026 MAS-AI Technologies Inc. Β· Toronto, Ontario, Canada
Built by Masoud Masoori Β· MAS-AI Technologies Inc.
mas-ai.co Β· hello@mas-ai.co Β· security@mas-ai.co
Two patents pending: Sunflower-Honeycomb Memory Architecture Β· Neural-Backed Memory Fabric (NBMF)