@@ -14,8 +14,9 @@ import CardUI from "@/components/ui/card-content";
1414import RowLabelInfo from "@/components/common/row-label-info" ;
1515import Image from "next/image" ;
1616import { useEffect , useRef , useState } from "react" ;
17- import { Database , Bot , Code , Download , Check } from "lucide-react" ;
17+ import { Database , Bot , Code , Download , Check , Sparkles } from "lucide-react" ;
1818import { Reveal } from "@/components/ui/reveal" ;
19+ import { Typewriter } from "@/components/ui/typewriter" ;
1920import {
2021 MultisigWalletPreview ,
2122 WalletListPreview ,
@@ -28,6 +29,16 @@ import {
2829 StakingPreview ,
2930} from "@/components/pages/homepage/previews" ;
3031
32+ // Example prompts cycled by the "Connect your AI agent" typewriter. The first
33+ // is the literal flow most users start with; the rest hint at what an agent can
34+ // do once it holds the multisig skill.
35+ const AGENT_PROMPTS = [
36+ "Connect to my https://multisig.meshjs.dev/ wallet" ,
37+ "List the pending transactions on our treasury" ,
38+ "Draft a 200 ₳ payout to the dev fund and request signatures" ,
39+ "Show who still needs to sign the pending payout" ,
40+ ] ;
41+
3142// DApp Card Component
3243function DappCard ( { title, description, url } : { title : string ; description : string ; url : string } ) {
3344 const [ ogImage , setOgImage ] = useState < string | null > ( null ) ;
@@ -282,6 +293,64 @@ export function PageHomepage() {
282293 </ Reveal >
283294 </ section >
284295
296+ { /* Connect your AI agent – skill download + live prompt demo, up top */ }
297+ < section className = "container mx-auto px-4 pb-8" >
298+ < Reveal className = "mx-auto max-w-5xl" >
299+ < div className = "overflow-hidden rounded-2xl border border-zinc-200/70 bg-white/60 p-6 shadow-sm backdrop-blur-sm dark:border-zinc-800/70 dark:bg-zinc-900/40 sm:p-8 md:p-10" >
300+ < div className = "grid items-center gap-8 md:grid-cols-2" >
301+ { /* Copy + actions */ }
302+ < div >
303+ < div className = "inline-flex items-center gap-2 rounded-full border border-zinc-200 bg-muted/60 px-3 py-1 text-xs font-medium text-muted-foreground dark:border-zinc-800" >
304+ < Sparkles className = "h-3.5 w-3.5" />
305+ AI-native multisig
306+ </ div >
307+ < h2 className = "mt-4 text-3xl font-bold tracking-tight sm:text-4xl" >
308+ Connect your AI agent
309+ </ h2 >
310+ < p className = "mt-3 text-muted-foreground" >
311+ Drop the multisig skill into Claude Code, Cursor, or any agent and let
312+ it work alongside your treasury — read pending transactions, draft
313+ payouts, and track approvals through the authenticated v1 API. The
314+ agent can't sign for you: keys and signatures always stay with you
315+ and your co-signers.
316+ </ p >
317+ < div className = "mt-6 flex flex-col gap-3 sm:flex-row sm:items-center" >
318+ < Button asChild size = "lg" >
319+ < a href = "/api/skill" download = "multisig-skill.md" >
320+ < Download className = "mr-2 h-4 w-4" />
321+ Download skill
322+ </ a >
323+ </ Button >
324+ < Button asChild size = "lg" variant = "outline" >
325+ < Link href = "#developers-and-bots" >
326+ < Bot className = "mr-2 h-4 w-4" />
327+ Developer & bot docs
328+ </ Link >
329+ </ Button >
330+ </ div >
331+ </ div >
332+
333+ { /* Animated agent prompt */ }
334+ < div className = "rounded-xl border border-zinc-800 bg-zinc-950 p-4 font-mono text-sm text-zinc-100 shadow-lg sm:p-5" >
335+ < div className = "flex items-center gap-1.5 pb-3" >
336+ < span className = "h-3 w-3 rounded-full bg-red-400/80" />
337+ < span className = "h-3 w-3 rounded-full bg-yellow-400/80" />
338+ < span className = "h-3 w-3 rounded-full bg-green-400/80" />
339+ < span className = "ml-2 text-xs text-zinc-500" > agent</ span >
340+ </ div >
341+ < div className = "flex min-h-[5rem] items-start gap-2 leading-relaxed" >
342+ < span className = "select-none text-emerald-400" > ›</ span >
343+ < Typewriter phrases = { AGENT_PROMPTS } className = "text-zinc-100" />
344+ </ div >
345+ < div className = "mt-3 border-t border-zinc-800 pt-3 text-xs text-zinc-500" >
346+ Read & draft only — signing stays with you and your co-signers.
347+ </ div >
348+ </ div >
349+ </ div >
350+ </ div >
351+ </ Reveal >
352+ </ section >
353+
285354 < Separator className = "my-8" />
286355
287356 { /* Multisig signing explainer */ }
0 commit comments