mirror of
https://github.com/luxfi/mpc.git
synced 2026-09-24 00:26:24 +00:00
Measured on the rendered pixels, not the source: the MPC dashboard's home page
carried 1.05% of every frame in hue at mean chroma 1.279, against explore's
0.004 next door. It came from four places, all literals no hostname could
retheme:
app/page.tsx violet→blue gradient wordmark (from-violet-500 to-blue-500)
feature headings text-violet-400 / text-blue-400 /
text-emerald-400, and ten chain chips on border-violet-500/20
bg-violet-500/10 text-violet-300 — the #ece7f7 wash that was
10,776 pixels of one screenshot
app/docs/page.tsx the same violet, plus border-violet/blue/emerald/purple-500/30
and 15 more files reaching for Tailwind's chromatic ramps directly. Those now
resolve through the tokens @luxfi/ui owns: green/emerald → --color-status-good,
red/rose → --color-status-bad, yellow/amber → --color-status-warn (achromatic —
attention is the loudest neutral in Lux, not a hue), everything else onto
foreground / muted / border.
After: warm 0%, tinted-neutral 0%, mean chroma 0.000 at 1440x900 and 390x844,
in light and dark. Distinction is carried by the LABEL, which already read
CGGMP21 / FROST / Bridge.
@luxfi/ui 7.4.5 -> 7.4.9.
Co-authored-by: Hanzo Dev <[email protected]>
123 lines
4.5 KiB
TypeScript
123 lines
4.5 KiB
TypeScript
import Link from 'next/link'
|
|
|
|
const sections = [
|
|
{
|
|
title: 'Introduction',
|
|
description: 'Overview of the Lux MPC threshold signing service, architecture, and core concepts.',
|
|
color: 'border-border',
|
|
},
|
|
{
|
|
title: 'Quick Start',
|
|
description: 'Get up and running in minutes — create a vault, generate a wallet, and sign your first transaction.',
|
|
color: 'border-border',
|
|
},
|
|
{
|
|
title: 'Installation',
|
|
description: 'Deploy MPC nodes via Docker, Kubernetes, or build from source. Configuration and networking setup.',
|
|
color: 'border-border',
|
|
},
|
|
{
|
|
title: 'Protocol Overview',
|
|
description: 'Deep dive into CGGMP21 (ECDSA) and FROST (EdDSA) threshold signing protocols.',
|
|
color: 'border-border',
|
|
},
|
|
{
|
|
title: 'API Reference',
|
|
description: 'Complete REST API documentation — authentication, wallets, transactions, bridge, and webhooks.',
|
|
color: 'border-[var(--border)]',
|
|
},
|
|
{
|
|
title: 'Security Model',
|
|
description: 'Threat model, key management, HSM integration, audit logging, and compliance considerations.',
|
|
color: 'border-border',
|
|
},
|
|
{
|
|
title: 'Use Cases',
|
|
description: 'Institutional custody, cross-chain bridges, smart wallet automation, and recurring payments.',
|
|
color: 'border-border',
|
|
},
|
|
]
|
|
|
|
export default function DocsPage() {
|
|
return (
|
|
<div className="mx-auto max-w-4xl px-4 py-16">
|
|
<Link
|
|
href="/"
|
|
className="mb-8 inline-flex items-center text-sm text-muted-foreground transition-colors hover:text-foreground"
|
|
>
|
|
← Back to home
|
|
</Link>
|
|
|
|
<h1 className="text-4xl font-bold tracking-tight">Documentation</h1>
|
|
<p className="mt-3 text-lg text-muted-foreground">
|
|
Everything you need to integrate with the Lux MPC threshold signing service.
|
|
</p>
|
|
|
|
<div className="mt-12 grid gap-4 sm:grid-cols-2">
|
|
{sections.map((s) => (
|
|
<div
|
|
key={s.title}
|
|
className={`rounded-xl border ${s.color} bg-card p-6 transition-colors hover:bg-card/80`}
|
|
>
|
|
<h3 className="mb-2 font-semibold">{s.title}</h3>
|
|
<p className="text-sm leading-relaxed text-muted-foreground">
|
|
{s.description}
|
|
</p>
|
|
</div>
|
|
))}
|
|
</div>
|
|
|
|
<div className="mt-12 rounded-xl border border-border bg-card p-6">
|
|
<h2 className="mb-3 text-lg font-semibold">API Base URL</h2>
|
|
<code className="rounded bg-background px-3 py-1.5 text-sm text-foreground">
|
|
https://mpc-api.lux.network/api/v1
|
|
</code>
|
|
<p className="mt-3 text-sm text-muted-foreground">
|
|
Authenticate with JWT (via Lux ID / Pars ID / Zoo ID) or API keys.
|
|
All endpoints require the <code className="text-foreground">Authorization: Bearer <token></code> header
|
|
or <code className="text-foreground">X-API-Key: <key></code> header.
|
|
</p>
|
|
</div>
|
|
|
|
<div className="mt-8 rounded-xl border border-border bg-card p-6">
|
|
<h2 className="mb-3 text-lg font-semibold">Supported Chains</h2>
|
|
<div className="flex flex-wrap gap-2">
|
|
{['Bitcoin', 'Ethereum', 'Lux', 'Solana', 'XRPL', 'TON', 'Polygon', 'Arbitrum', 'Base', 'BNB'].map((c) => (
|
|
<span
|
|
key={c}
|
|
className="rounded-full border border-border bg-muted px-3 py-1 text-xs font-medium text-muted-foreground"
|
|
>
|
|
{c}
|
|
</span>
|
|
))}
|
|
</div>
|
|
</div>
|
|
|
|
<div className="mt-8 rounded-xl border border-border bg-card p-6">
|
|
<h2 className="mb-3 text-lg font-semibold">Quick Example</h2>
|
|
<pre className="overflow-x-auto rounded-lg bg-background p-4 text-sm leading-relaxed">
|
|
<code>{`# 1. Authenticate
|
|
curl -X POST https://mpc-api.lux.network/api/v1/auth/login \\
|
|
-H "Content-Type: application/json" \\
|
|
-d '{"email":"[email protected]","password":"..."}'
|
|
|
|
# 2. Create a vault
|
|
curl -X POST https://mpc-api.lux.network/api/v1/vaults \\
|
|
-H "Authorization: Bearer <token>" \\
|
|
-d '{"name":"My Vault"}'
|
|
|
|
# 3. Generate a wallet (triggers MPC keygen across 5 nodes)
|
|
curl -X POST https://mpc-api.lux.network/api/v1/vaults/<id>/wallets \\
|
|
-H "Authorization: Bearer <token>" \\
|
|
-d '{"name":"my-wallet","curve":"secp256k1","protocol":"cggmp21"}'
|
|
|
|
# 4. Sign a transaction (3-of-5 threshold signature)
|
|
curl -X POST https://mpc-api.lux.network/api/v1/transactions \\
|
|
-H "Authorization: Bearer <token>" \\
|
|
-d '{"wallet_id":"<id>","tx_type":"transfer","chain":"ethereum",...}'`}</code>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|