mirror of
https://github.com/luxfi/bridge.git
synced 2026-09-24 00:26:46 +00:00
* docs: fold loose docs/*.md into Nextra content/docs/ tree (issue #391)
The four MPC-migration .md files plus BRIDGE-STATUS / LOCAL-SETUP /
DEPLOYMENT / CI-CD-DOCKER-IMAGES were already deleted in 2b9f899 (v1.1.12).
The remaining loose docs at docs/ root (INTEGRATIONS, LUX-ID-INTEGRATION,
operator-runbook, operator-deploy-phase-1-4) were still current but lived
outside the Nextra page tree, so the site only ever served Home + Architecture.
Move them into docs/content/docs/*.mdx so the Nextra build can surface them:
docs/INTEGRATIONS.md -> docs/content/docs/integrations.mdx
docs/LUX-ID-INTEGRATION.md -> docs/content/docs/lux-id-integration.mdx
docs/operator-runbook.md -> docs/content/docs/operator-runbook.mdx
docs/operator-deploy-phase-1-4.md -> docs/content/docs/operator-deploy.mdx
docs/LLM.md stays at docs/ root because it's the symlink target for
AGENTS.md (and any future CLAUDE.md / GEMINI.md), per the .gitignore.
Content of the moved files is unchanged in this commit.
* docs: wire content/docs/* into Nextra pages, refresh _meta + index (issue #391)
Add Nextra page wrappers for each moved doc so the site sidebar surfaces the
full set:
docs/pages/integrations.mdx -> imports content/docs/integrations.mdx
docs/pages/lux-id-integration.mdx -> imports content/docs/lux-id-integration.mdx
docs/pages/operator-runbook.mdx -> imports content/docs/operator-runbook.mdx
docs/pages/operator-deploy.mdx -> imports content/docs/operator-deploy.mdx
Refresh docs/pages/_meta.json to list the new pages in display order:
Home -> Architecture -> Integrations -> Operator Runbook -> Deploy Guide
-> Lux ID -> (External) LLM Knowledge Base, GitHub.
Refresh docs/pages/index.mdx:
- replace the legacy "make up && make start-mpc-nodes" quickstart (predates
the unified Go binary) with the docker run pattern for ghcr.io/luxfi/bridge.
- point SDK consumers at pkg/bridge README + mountBridge.
- call out the post-quantum-safe protocol options (pulsar, corona, magnetar)
alongside the classical cggmp21/doerner/frost/bls set.
- link docs/LLM.md as the canonical AI/onboarding source of truth.
Build verified: pnpm install && pnpm build prerenders 8 static pages
(index, docs, integrations, lux-id-integration, operator-runbook,
operator-deploy, plus _app and 404).
* docs: update README/LLM.md/REQUIREMENTS pointers for the new layout (issue #391)
The loose docs/*.md set at docs/ root was folded into docs/content/docs/*.mdx
in the previous two commits. Update the three places that still point at the
old paths or describe the old layout:
- README.md: drop the direct link to docs/LUX-ID-INTEGRATION.md; point
readers at the Nextra site (`pnpm --filter @luxfi/bridge-docs build`)
and call out the new content/docs/ + pages/ split.
- docs/LLM.md: refresh "Key Documentation Files" to list every
content/docs/*.mdx page and explain why docs/LLM.md stays at root.
- REQUIREMENTS.md: update the §4 tree comment and the §7 row 1.5 status
note so they reflect the v1.1.13 fold.
No file content moves in this commit — pointers only.
* docs: regenerate docs/out static site for the 8-page Nextra build (issue #391)
`docs/out/` is the static export served at the GitHub Pages mirror. Rebuild
it with `pnpm --filter @luxfi/bridge-docs build` so the artifact contains
all six content pages (index, docs, integrations, lux-id-integration,
operator-runbook, operator-deploy) plus _app and 404.
No source code or docs content changes in this commit — build artefacts only.
1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{6674:function(e,n,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return i(9346)}])},9346:function(e,n,i){"use strict";i.r(n),i.d(n,{__toc:function(){return a}});var t=i(2676),r=i(9552),s=i(161),o=i(6735);i(3571);var l=i(605);let a=[{depth:2,value:"Quick Links",id:"quick-links"},{depth:2,value:"What is Lux Bridge?",id:"what-is-lux-bridge"},{depth:2,value:"Supported Networks",id:"supported-networks"},{depth:3,value:"Layer 1",id:"layer-1"},{depth:3,value:"Layer 2",id:"layer-2"},{depth:2,value:"Getting Started",id:"getting-started"},{depth:2,value:"Canonical AI / Onboarding Doc",id:"canonical-ai--onboarding-doc"},{depth:2,value:"Need Help?",id:"need-help"}];function d(e){let n=Object.assign({h1:"h1",p:"p",strong:"strong",h2:"h2",ul:"ul",li:"li",a:"a",code:"code",h3:"h3",pre:"pre",span:"span",hr:"hr",em:"em"},(0,l.a)(),e.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{children:"Lux Bridge Documentation"}),"\n",(0,t.jsxs)(n.p,{children:["Welcome to the documentation for the ",(0,t.jsx)(n.strong,{children:"Lux Bridge"})," — a decentralized cross-chain\nbridge using Multi-Party Computation (MPC) for secure, trustless asset transfers\nacross 15+ blockchain networks."]}),"\n",(0,t.jsx)(n.h2,{id:"quick-links",children:"Quick Links"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"/docs",children:"Architecture"})," — System design, MPC model, packages, and components"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"/integrations",children:"Integrations"})," — Add a new source chain (Go-side plugin guide)"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"/operator-runbook",children:"Operator Runbook"})," — Run the unified ",(0,t.jsx)(n.code,{children:"cmd/bridge"})," daemon"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"/operator-deploy",children:"Deploy Guide"})," — Production deploy to ",(0,t.jsx)(n.code,{children:"bridge.lux.network"})]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.a,{href:"/lux-id-integration",children:"Lux ID"})," — Casdoor-based unified auth"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"what-is-lux-bridge",children:"What is Lux Bridge?"}),"\n",(0,t.jsx)(n.p,{children:"The Lux Bridge enables:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Secure asset transfers"})," — move tokens between 15+ chains with 2-of-3 threshold signatures"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Multi-Party Computation"})," — distributed key generation, no single point of failure"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Post-quantum-safe option"})," — lattice-based MPC protocols (",(0,t.jsx)(n.code,{children:"pulsar"}),", ",(0,t.jsx)(n.code,{children:"corona"}),", ",(0,t.jsx)(n.code,{children:"magnetar"}),")"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Optional layered cosigners"})," — Utila or Fireblocks on top of native MPC"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Universal message passing"})," — arbitrary cross-chain messages, not just token transfers"]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.strong,{children:"Low fees & fast finality"})," — competitive bridge fee with caps, minutes not hours"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"supported-networks",children:"Supported Networks"}),"\n",(0,t.jsx)(n.h3,{id:"layer-1",children:"Layer 1"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Lux Network"}),"\n",(0,t.jsx)(n.li,{children:"Ethereum"}),"\n",(0,t.jsx)(n.li,{children:"BNB Smart Chain"}),"\n",(0,t.jsx)(n.li,{children:"Polygon"}),"\n",(0,t.jsx)(n.li,{children:"Avalanche"}),"\n",(0,t.jsx)(n.li,{children:"Fantom"}),"\n"]}),"\n",(0,t.jsx)(n.h3,{id:"layer-2",children:"Layer 2"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Arbitrum One"}),"\n",(0,t.jsx)(n.li,{children:"Optimism"}),"\n",(0,t.jsx)(n.li,{children:"zkSync Era"}),"\n",(0,t.jsx)(n.li,{children:"Polygon zkEVM"}),"\n",(0,t.jsx)(n.li,{children:"Base"}),"\n",(0,t.jsx)(n.li,{children:"Blast"}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,t.jsxs)(n.p,{children:["The bridge ships as a single Go binary (",(0,t.jsx)(n.code,{children:"cmd/bridge"}),") that embeds the SPA and\nserves both the UI and the native ",(0,t.jsx)(n.code,{children:"/v1/bridge/*"})," API on one port."]}),"\n",(0,t.jsx)(n.pre,{"data-language":"bash","data-theme":"default",hasCopyCode:!0,children:(0,t.jsxs)(n.code,{"data-language":"bash","data-theme":"default",children:[(0,t.jsx)(n.span,{className:"line",children:(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-comment)"},children:"# Pull and run the unified bridge image"})}),"\n",(0,t.jsxs)(n.span,{className:"line",children:[(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"docker"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:"run"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:"--rm"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:"-p"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-constant)"},children:"8080"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:":8080"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" \\"})]}),"\n",(0,t.jsxs)(n.span,{className:"line",children:[(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:"-v"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:"$("}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-function)"},children:"pwd"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string-expression)"},children:")"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:"/networks.yaml:/etc/bridge/networks.yaml"}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" \\"})]}),"\n",(0,t.jsxs)(n.span,{className:"line",children:[(0,t.jsx)(n.span,{style:{color:"var(--shiki-color-text)"},children:" "}),(0,t.jsx)(n.span,{style:{color:"var(--shiki-token-string)"},children:"ghcr.io/luxfi/bridge:latest"})]})]})}),"\n",(0,t.jsxs)(n.p,{children:["Visit ",(0,t.jsx)(n.a,{href:"http://localhost:8080",children:"http://localhost:8080"})," for the bridge UI; the\nnative API is at ",(0,t.jsx)(n.a,{href:"http://localhost:8080/v1/bridge",children:"http://localhost:8080/v1/bridge"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["For SDK consumers (Lux, Hanzo, Zoo, white-label tenants), import the public\n",(0,t.jsx)(n.code,{children:"@luxfi/bridge"})," package and call ",(0,t.jsx)(n.code,{children:"mountBridge(...)"})," — see the ",(0,t.jsxs)(n.a,{href:"https://github.com/luxfi/bridge/tree/main/pkg/bridge",children:[(0,t.jsx)(n.code,{children:"pkg/bridge"}),"\nREADME"]})," for tenant usage."]}),"\n",(0,t.jsxs)(n.p,{children:["For local dev (workspace install, watcher fleet, tenant SPAs), see the top-level\n",(0,t.jsx)(n.a,{href:"https://github.com/luxfi/bridge/blob/main/README.md",children:(0,t.jsx)(n.code,{children:"README.md"})}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"canonical-ai--onboarding-doc",children:"Canonical AI / Onboarding Doc"}),"\n",(0,t.jsxs)(n.p,{children:["The single source of truth for the architecture and conventions of this repo\nis ",(0,t.jsx)(n.a,{href:"https://github.com/luxfi/bridge/blob/main/docs/LLM.md",children:(0,t.jsx)(n.code,{children:"docs/LLM.md"})}),". It\nis consumed verbatim by AI assistants (via ",(0,t.jsx)(n.code,{children:"AGENTS.md"})," symlink) and is the\nfirst thing a new contributor should read."]}),"\n",(0,t.jsx)(n.h2,{id:"need-help",children:"Need Help?"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["Join our ",(0,t.jsx)(n.a,{href:"https://discord.gg/luxnetwork",children:"Discord"})]}),"\n",(0,t.jsxs)(n.li,{children:["Follow us on ",(0,t.jsx)(n.a,{href:"https://twitter.com/luxnetwork",children:"Twitter"})]}),"\n",(0,t.jsxs)(n.li,{children:["Email support: ",(0,t.jsx)(n.a,{href:"mailto:[email protected]",children:"[email protected]"})]}),"\n"]}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.em,{children:"Docs last refreshed in v1.1.12 — see issue #391."})})]})}let c={MDXContent:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:n}=Object.assign({},(0,l.a)(),e.components);return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)},pageOpts:{filePath:"pages/index.mdx",route:"/",timestamp:1766614792e3,pageMap:[{kind:"Meta",data:{index:{title:"Home",type:"page"},docs:{title:"Architecture",type:"page"},integrations:{title:"Integrations",type:"page"},"operator-runbook":{title:"Operator Runbook",type:"page"},"operator-deploy":{title:"Deploy Guide",type:"page"},"lux-id-integration":{title:"Lux ID",type:"page"},"-- External":{type:"separator",title:"External"},llm:{title:"LLM Knowledge Base",href:"https://github.com/luxfi/bridge/blob/main/docs/LLM.md",newWindow:!0},github:{title:"GitHub ↗",href:"https://github.com/luxfi/bridge",newWindow:!0}}},{kind:"MdxPage",name:"docs",route:"/docs"},{kind:"MdxPage",name:"index",route:"/"},{kind:"MdxPage",name:"integrations",route:"/integrations"},{kind:"MdxPage",name:"lux-id-integration",route:"/lux-id-integration"},{kind:"MdxPage",name:"operator-deploy",route:"/operator-deploy"},{kind:"MdxPage",name:"operator-runbook",route:"/operator-runbook"}],flexsearch:{codeblocks:!0},title:"Lux Bridge Documentation",headings:a},pageNextRoute:"/",nextraLayout:s.ZP,themeConfig:o.Z};n.default=(0,r.j)(c)},6735:function(e,n,i){"use strict";var t=i(2676);i(5271);let r={logo:(0,t.jsx)("span",{children:"Lux Bridge"}),project:{link:"https://github.com/luxfi/bridge"},chat:{link:"https://discord.gg/luxnetwork"},docsRepositoryBase:"https://github.com/luxfi/bridge/tree/main/docs",footer:{text:"Lux Bridge Documentation"},head:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),(0,t.jsx)("meta",{property:"og:title",content:"Lux Bridge Documentation"}),(0,t.jsx)("meta",{property:"og:description",content:"Comprehensive documentation for the Lux Bridge - a decentralized cross-chain bridge using MPC"})]}),sidebar:{titleComponent(e){let{title:n,type:i}=e;return"separator"===i?(0,t.jsx)("span",{className:"cursor-default",children:n}):(0,t.jsx)(t.Fragment,{children:n})},defaultMenuCollapseLevel:1,toggleButton:!0},toc:{backToTop:!0},navigation:{prev:!0,next:!0},darkMode:!0,primaryHue:200,banner:{key:"bridge-v1",text:(0,t.jsx)("a",{href:"https://lux.network",target:"_blank",children:"\uD83D\uDE80 Lux Bridge v1.0 is now live! Learn more →"})}};n.Z=r},5184:function(){}},function(e){e.O(0,[455,888,774,179],function(){return e(e.s=6674)}),_N_E=e.O()}]); |