87 Commits
Author SHA1 Message Date
zeekay 1d963a8591 Document --chains, and that the three implementations are one repository
The D-Chain opt-in was a boolean named for one chain. It is now a list, because
B and M need the same thing and each was going to arrive with its own flag: the
node runs a consent-requiring chain only when the operator names it, by letter
or alias, and refuses a name no chain answers to rather than ignoring it.

The implementations page said three repositories. It is one now — the Go node,
the Rust runtime and the C++ runtime in a single checkout with the corpus that
compares them, which is the difference between parity you can run and parity you
assert.
2026-09-07 17:02:32 -07:00
zeekay b9edf60962 feat(docs): update all chain endpoints and standards to /v1/chain 2026-09-04 14:29:44 -07:00
zeekayandHanzo Dev 14aa0fb805 docs: describe the three implementations, and how to build and check each
Lux is one protocol realised in Go, Rust and C++, and the docs described only
the Go one — so a reader had no way to tell which implementation a statement
was about, or that two of them are measured against the third rather than
against the spec.

Three new pages, one concern each:

  /implementations  what exists in each language across the six planes
  /build            native build recipes for all three
  /conformance      the corpus, the pinned oracle, the harness and its gaps

Refreshed where the existing pages were wrong or ambiguous:

  /zap          the version word is 2, not 1; the header rules a decoder must
                enforce, including the refusals, which are part of the protocol
  /zap/family   four layers answer to the name ZAP and two of them share no
                bytes; naming them apart is the fix, not a version field
  /gpu          one C++ implementation with bindings, not three; CUDA is not
                cleared for anything entering a state root
  /nodes        a node with no --http-port listens on 9630, not 9650

Every recipe and every port here was run or read out of the source, and the
one failing conformance check is recorded as failing rather than asserted to
be correct.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-29 01:36:13 -07:00
zeekayandHanzo Dev b2b217bdcb docs(zap): generate the ZAP-native package reference from godoc
24 package pages under zap/reference, generated by luxfi/zap tools/docgen
from source comments. Build verified (781+ static pages).

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-22 23:52:44 -07:00
zeekayandHanzo Dev 8640733c4b docs: quote generated frontmatter — build-verified
Regenerated CLI/SDK/MCP/node references with quoted YAML frontmatter so
colons in synopses (e.g. LP-103 links) no longer break the build. Full
`pnpm build` passes: 757+ static pages prerendered, all surfaces
generated from code.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-22 21:50:20 -07:00
zeekayandHanzo Dev 2c6463ed0a docs(node): generate the full node package reference from godoc
229 package pages under nodes/reference, mirroring the import tree with
nested nav, generated by luxfi/node tools/docgen from source comments.
All of the node, from godoc, on docs.lux.network.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-22 21:50:19 -07:00
zeekayandHanzo Dev eb5b3ed85e docs(mcp): generate the MCP tool reference; nav CLI+SDK+MCP together
New mcp section generated by luxfi/mcp tools/docgen from the tool
registry (governance read tools with input schemas). Added under
Developer Tools beside cli and sdk — all three surfaces now generated
from code and aligned on the shared docs framework.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-22 21:50:18 -07:00
zeekayandHanzo Dev cb65d84a99 docs(sdk): generate the Go SDK reference from godoc
40 package pages under sdk/go/packages, generated by luxfi/sdk
tools/docgen straight from source comments; the curated Go SDK landing
and guides (transactions, rpc) stay on top. SDK half of docs.lux.network,
generated from code.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-22 21:50:17 -07:00
zeekayandHanzo Dev 89053b72f4 docs(cli): generate the command reference from the lux binary
Replace the hand-kept, drifted command pages with 36 suites generated by
luxfi/cli tools/docgen straight from the cobra tree (adds node join, the
new suites, current flags; drops the removed wallet page). This is the
CLI section of docs.lux.network, generated from code.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-22 21:50:17 -07:00
zeekayandHanzo Dev 87131c8642 docs-ui 17.0.4: linked headings paint at their own size
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-16 23:27:50 -07:00
zeekayandHanzo Dev eef42c6eef docs-ui 17.0.3
Co-authored-by: Hanzo Dev <[email protected]>
2026-08-16 22:48:13 -07:00
zeekayandHanzo Dev 0796d05a6a The docs are native: gui primitives, design tokens, and Ask AI
@hanzo/docs 17 replaces the Tailwind/Base-UI stack: layout and text are
gui primitives coloured by @hanzo/design, prose is the framework's one
stylesheet, search stays static, llms-full.txt stays, and the header
gains Ask AI grounded in the lux store. The hand-copied palette, the
postcss pipeline and the second generated content dir are gone.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-16 22:35:40 -07:00
zeekayandHanzo Dev 7fb60b95c8 The site can be searched, and read by a model
Search: the export now writes its index as a static file (/api/search) and the
dialog searches it in the browser — this site has no server to ask. ⌘K did
nothing before; the provider mounted no search at all.

/llms-full.txt is the whole site as one document, for a model's context window,
built from the same processed markdown each page compiled from.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-16 16:42:30 -07:00
zeekayandHanzo Dev f35d34352b The docs render again, and build somewhere that exists
Every page shipped without its layout: the sidebar ran full width, icon names
printed as text beside their pages ("LayersStaking"), and the home page's card
titles were near-white on white. Tailwind was told where to find the UI's
classes by @hanzo/docs' copy of preset.css, whose @source paths are relative to
a package that holds no components. The stylesheet is imported from the package
that does. Frontmatter icons resolve through the loader, by their lucide name.
The home page uses the theme's tokens instead of a dark palette written in hex,
sits inside the home layout so it has a header, and its mark is the mark.

Every internal link that pointed at nothing now points at its page: the SDK,
wallet and netrunner pages linked under a /docs prefix the site does not have;
Cloud linked its own children at the root. Chains are chains — the page, the
CLI command, the guide and the section carry that name — and the P-Chain API
reference lists the methods the node answers (platform.getNets, getNet, netID),
not ones it never had.

The image is built on the forge, tagged by semver, pinned in universe. The
GitHub lane named a runner pool that no longer exists and every push since July
queued for a day and was cancelled.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-16 14:59:02 -07:00
zeekayandHanzo Dev d04f0dd24d kms.lux.cloud is the brand host; kms.lux.network is retired
The .network host was retired 2026-07-27 and no longer resolves at all (a
request to it now returns nothing, not an error), so every reference to it named
an address that cannot answer. The brand host is .cloud, matching kms.zoo.cloud
and the rest of the white-label convention.

Left alone deliberately, because rewriting them would invert what they say:
the LLM.md line that RECORDS the retirement, the e2e spec that ASSERTS
kms.lux.network must not resolve, and the recorded applies + cluster backups,
which are faithful accounts of what was applied and are not config.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-05 07:50:38 -07:00
zeekayandHanzo Dev 9417a849ba docs: sweep the whole site to /v1/, one canonical form
81 pages still published /ext/ URLs, a /{network}/ path segment, or a
chain-alias route under api.lux.network. All three 404 today; measured:

  api.lux.network/v1/bc/C/rpc        200  0x17871
  api.lux.network/ext/bc/C/rpc       404
  api.lux.network/mainnet/v1/bc/C/rpc 404
  api.lux.network/v1/bc/zoo/rpc      404   (Zoo is api.zoo.network)
  api.zoo.network/v1/bc/Zoo/rpc      404   (no alias even on its own host)
  api.lux.network/v1/bogus-control   404   (control: 404 means no route)

api-reference/index.mdx is deliberately excluded from the mechanical
transform: it states the rule, so it must keep naming /ext/ and the dead
hostnames as prose.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 18:16:21 -07:00
zeekayandHanzo Dev 35d509cdfc docs(iam): publish /v1/iam OAuth endpoints; read them from discovery
Hand-built identity URLs are the same class of bug as a published /ext/ RPC
URL, but they fail silently instead of 404ing. Measured on lux.id today:

  /v1/iam/oauth/authorize   400 text/plain  "unknown client_id"  <- real IdP
  /oauth/authorize          200 text/html   SPA shell            <- silent break
  /login/oauth/authorize    200 text/html   SPA shell            <- silent break
  /v1/iam/.well-known/jwks  200 application/json  real keys
  /.well-known/jwks         200 text/html   SPA shell            <- silent break

/.well-known/openid-configuration is correct at the root (RFC 8414 fixes it
there) and already advertises the /v1/iam/... values, so discovery and the
docs disagreed. Point the docs at what discovery says, and record that an
identity endpoint is verified by content-type and body, never by status.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 18:08:02 -07:00
zeekayandHanzo Dev 3e0fb25be4 docs: publish /v1/bc/C/rpc, drop dead /ext/ URLs
/ext/ is gone from api.lux.network, api.zoo.network and api.hanzo.network
(all 404 today), so every published /ext/ URL was already broken. Convert
to the one canonical path and fix the URL forms that were dead for other
reasons at the same time:

  /mainnet|/testnet|/devnet path prefix -> the per-network host (404 today)
  api.testnet.lux.network, testnet-api.lux.network -> api.lux-test.network
  /ext/C/rpc (missing bc/) -> /v1/bc/C/rpc
  chain aliases + blockchain IDs under api.lux.network -> the L1s own host

Third-party RPC hosts (Avalanche, Flare, blastapi) are left untouched.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-27 18:06:03 -07:00
zeekayandHanzo Dev b3c3352306 docs(kms): the HTTP and ZAP planes do not store the same bytes
The encryption section I just wrote said every secret gets a per-secret DEK
sealed under the REK. That is true of the ZAP plane and NOT of the HTTP plane,
and the difference is observable.

pkg/zapserver/server.go seals and unseals for real: store.Seal(s.masterKey, ...)
on put (:536), store.Open(s.masterKey, sec) on get (:509).

cmd/kms/main.go does neither. putSecretHandler assigns Ciphertext:
[]byte(req.Value) and the GET handler returns string(sec.Ciphertext). The field
is named Ciphertext but on this path it holds the value as given. What protects
it is whole-keyspace encryption at rest (KMS_ENCRYPTION_KEY_B64 via the storage
engine) plus org-scoped JWT and TLS — no per-secret key, no AAD address binding.

So mixing transports against one store misbehaves in both directions: write over
ZAP and read over HTTP and you get the sealed bytes back instead of the value;
write over HTTP and read over ZAP and the unseal fails for want of a wrapped DEK.
The page now says this plainly and tells readers to pick one transport per
secret, rather than implying an envelope that half the API does not apply.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-26 08:19:05 -07:00
zeekayandHanzo Dev 9894fccfdb docs(kms): document the API this service actually serves
All three KMS pages described Infisical: /api/v3/secrets, /api/v3/transit,
/api/v3/pki, /api/v1/secrets with secretValue bodies, plus workspaces you had to
create first. luxfi/kms serves none of it. These pages are where several broken
clients came from — a reader followed them, got 200 text/html back from the
embedded console SPA that answered every unmatched path, and concluded the call
had worked. luxfi/kms 1.12.8 removed that catch-all, so those paths now 404 in
JSON, and the docs are the last place still teaching them.

Replaced with the real surface, verified against cmd/kms/main.go and live:

  POST   /v1/kms/auth/login                              {clientId, clientSecret}
  GET    /v1/kms/orgs/{org}/secrets?path=&env=           -> {"names": []}
  GET    /v1/kms/orgs/{org}/secrets/{path}/{name}?env=   -> {"secret":{"value"}}
  POST   /v1/kms/orgs/{org}/secrets                      {path,name,env,value}
  DELETE /v1/kms/orgs/{org}/secrets/{path}/{name}?env=

Also documented because each one has cost someone time: env is a field and not a
hostname; the URL splits at its LAST slash so segments must be escaped
individually; create and update are one upsert; responses are never HTML.

secrets.mdx additionally promised versioning, automatic rotation with providers,
point-in-time recovery, and folder/tag objects. pkg/store/secrets.go has exactly
Put/Get/List/Delete and the Secret struct has no version field, so the page now
says plainly that those four do not exist rather than leaving readers to
discover it. The KMSSecret CRD example went too — there is no such CRD in the
tree.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-26 08:13:08 -07:00
zeekayandHanzo Dev 2054d186b8 docs(compliance): native Lux AML engine reference + drop external-Jube scorer
Add compliance/aml.mdx documenting the Lux AML engine (github.com/luxfi/aml,
amld) — real-time transaction monitoring: rules DSL, weight-of-evidence
scoring, sanctions screening, cases, /v1/aml API, admin UI, deployment.
Wire into compliance nav.

Replace the external-Jube ML-scorer references in regulated/{index,
compliance-integration,ats}.mdx with the native luxfi/aml engine (AML_ENGINE_URL,
POST /v1/aml/transactions). Clean-room boundary: zero jube in the docs.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-17 00:42:33 -07:00
zeekayandHanzo Dev 8d22051724 docs(consensus): align finality framing to canonical LP-305
The page framed the ConsensusCert as "finality" (the certificate-as-decider
model). Per LP-305 (merged), Nova/Nebula sampling DECIDES (VM.Accept at
β-confidence = local finality, leaderless, no certificate needed); the
ConsensusCert is a POST-ACCEPT attestation that authorizes EXPORT (bridges,
0x9999 DEX receipt) and never gates chain progress. Corrected the intro and
the §Finality opening; cite LP-305/LP-306 as normative. Certificate mechanics
(legs/policy/KeyEra) unchanged — they were already accurate.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-15 02:33:15 -07:00
zeekayandHanzo Dev f1225b3b85 docs(lux-node): protobuf fully retired — .proto codegen path gone, ZAP schemas only
Co-authored-by: Hanzo Dev <[email protected]>
2026-07-14 18:02:44 -07:00
zeekayandHanzo Dev f1be1cf82f docs(lux-node): serialization is ZAP zero-copy wire, not protobuf
The flagship node reference listed Serialization as 'Protocol Buffers' only and
luxfi/codec as 'Binary codec and serialization' — both stale post codec-kill.
Every tx/block/VM-transport message is now native ZAP (struct = wire, no
reflection); luxfi/codec remains only as the leaf byte-packer + Warp codec.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-14 17:40:16 -07:00
zeekay f30f9431df docs: align cc/attestation refs to luxfi/cc v0.2.0 (6 production vendors)
- architecture.mdx, wallet/security.mdx: v0.1.0 -> v0.2.0; note the six
  production CPU/GPU vendors (SEV-SNP, TDX, SGX, nvtrust, Nitro, ARM CCA)
- confidential-compute.mdx: fix Nitro Vendor string aws.nitro -> aws.nitro.enclaves
  (matches attest/nitro.go nitroVendor)

Verified against luxfi/[email protected] attest/{doc.go,verifier.go,*.go}: six Kinds,
one self-registering registry, fail-closed Dispatch.
2026-06-27 15:43:40 -07:00
zeekay 4ddaa6f911 docs(cc): correct attestation matrix to released v0.2.0 — 6 live vendors, one registry
The confidential-compute page was written mid-synthesis and documented cc as
3 Kinds (2 live + TDX stub). Verified against cc main v0.2.0 (0e55918): all six
Kinds are real verifiers — AMD SEV-SNP, Intel TDX (real DCAP v4), Intel SGX
(pure-Go DCAP), NVIDIA nvtrust (SPDM+RIM), ARM CCA (RATS CBOR/COSE), AWS Nitro
(COSE_Sign1). Dispatch is one registry (init() self-registration, no switch).
Updated vendor matrix, report fields, topology tree, custody card. next build green (460 pages).
2026-06-27 14:42:51 -07:00
zeekay e41ef79c47 docs: update consensus + attestation to released PQ architecture
Bring the user-facing docs in line with the released, semver-tagged
post-quantum consensus + confidential-compute architecture, cross-checked
against the actual code/tags.

Consensus finality (consensus v1.26.0):
- Quasar finality is the typed compact-certificate envelope (ConsensusCert),
  not the old "triple consensus" model. Four evidence kinds (Beam BLS / Pulsar
  M-LWE / Corona R-LWE / P3Q rollup), orthogonal LegKind x EvidenceMode axes,
  KeyEra (one group key per era, value-not-place), and the four operator
  postures (BLS_FAST / HYBRID_PQ_CHECKPOINT / STRICT_QUASAR / RECOVERY_MODE).
- Fix the flat error that Pulsar is Ring-LWE: Pulsar is Module-LWE (FIPS-204
  ML-DSA, luxfi/pulsar); Corona is Ring-LWE (Ringtail, luxfi/corona).
- O(1) compaction (one group sig regardless of committee size).
- Correct PQ precompile slots (0x012202/03/04/05) and stale go.mod pins
  (crypto v1.19.26, pulsar v1.1.5, corona v0.7.9).

New page confidential-compute.mdx (+ nav): the luxfi/cc attestation verifier
(one Verifier, orthogonal Kinds). Honest vendor matrix: AMD SEV-SNP and NVIDIA
nvtrust are production; Intel TDX is a tracked stub. Custody (TEE) vs
confidential-AI (NVIDIA GPU) use cases.

Decomplect (architecture.mdx, wallet/security.mdx): dealerless PQ-threshold core
+ optional luxfi/mpc (CGGMP21/FROST) and luxfi/tee custody extensions; the core
depends on neither.

HSM (hsm/index.mdx, reference/lux-hsm.mdx): document all 16 registered backends
(cloud KMS, PKCS#11/KMIP/YubiHSM/Nitrokey, hardware-wallet secure elements,
air-gap, ML-DSA PQ, TR-31), the FIPS subset, and the cgo-gated backends.

Bridge multi-vendor MPC (mpc/bridge.mdx): layered external-custodian cosigning
(Utila/Fireblocks) as an optional institutional feature over native MPC; secrets
via KMS; permissionless bridge runs on native MPC alone.
2026-06-27 14:31:57 -07:00
zeekay c843087a73 docs: add Go-Live Standard + correct precompile slot map to match code
New go-live.mdx: the canonical developer/agent go-live spec (chains/VMs,
slot map, two-tier finality, VM/engine boundary, GPU byte-identity gate,
value conservation). Replace the retired 0x0600 PQ block (and the bogus
0x0604 QUASAR precompile) with the real 0x012200 block (ML-KEM..HQC +
STARK-FRI) in pq-crypto/index/api/lux-evm. Align the C-nibble chain-slot
table to the genesis registry (D-Chain at C=3, no phantom M-Chain,
Zoo/Hanzo/SPC = sovereign-L1 EVM). Add VM/engine-boundary + go-live-status
notes to dexvm/zkvm/aivm/bridgevm. P3Q = rollup-commit verifier (0x012205);
STARK-FRI = STARK (0x012220) — never conflated.
2026-06-25 14:22:43 -07:00
zeekay 03503ed2a4 fix: prerender every doc topic to its own path; build on lux-build ARC
Two unescaped <tenant> placeholders in regulated/ats.mdx and regulated/bd.mdx
were parsed as JSX and broke the MDX/static-export build. With the build
failing, the shipped image carried only the home hub, so every deep topic
(/architecture, /consensus, /sdk/quickstart, ...) fell through the SPA index
fallback and rendered the hub instead of its own page. Escaping the
placeholders restores the export: generateStaticParams now emits all 458
topic pages (architecture.html, consensus.html, sdk/quickstart.html, ...),
each distinct, which the hanzoai/spa server resolves directly (verified with
the real spa binary locally — /architecture -> 'Architecture | Lux Docs', no
longer the hub).

CI: rebuild on the luxfi self-hosted ARC pool (runs-on: lux-build) and push
ghcr.io/luxfi/lux-docs:latest — the exact image the live deployment pulls.
GitHub-hosted runners are billing-blocked for luxfi. Removed the old
ubuntu-latest deploy.yml (billing-blocked) and the cross-org workflow-sanity
call that luxfi/docs cannot resolve (startup_failure).
2026-06-24 18:20:14 -07:00
zeekay a9737052b2 docs(dex): settlement section → D matches / C settles via 0x9999; link LP-9999 2026-06-20 12:14:37 -07:00
zeekay 06c70ef0fb chore: scrub Partner DEX / Liquidity chain IDs from docs/dex/api.mdx
- Replace 'Partner DEX V4 precompile' with 'Lux DEX V4 precompile'
- Replace Liquidity chain IDs (8675309/10/11) with Lux chain IDs
  (96369/96368/96370) in the chain-IDs table and curl-example payloads
2026-06-10 12:25:53 -07:00
zeekay 24cc32a123 docs: networks/chains/validators decomplected — AddValidatorTx universal
Validators validate networks, chains live on networks. Under LP-018
sovereign-L1, AddValidatorTx is the universal add-validator tx.
AddChainValidatorTx is legacy + retained for one release cycle.

- chains/pchain.mdx: new 'Networks, Chains, and Validators' concept
  section laying out network has validators / chains live on networks
  / L1 vs L2 / AddValidatorTx universal; Purpose paragraph reworded;
  fee-schedule rows retitled 'Add network validator' / 'Add network
  delegator'.
- cloud/subnets.mdx: 'Adding Validators' rewritten to call out
  validators validate networks; CLI example switched to
  'lux network addValidator'.
- warp/{index,messages,integration}.mdx: 'source chain validator set'
  → 'source network validator set'; RegisterL1Validator description
  clarifies 'adds a validator to an L1 network'.
- reference/lux-netrunner.mdx: RemoveChainValidator marked legacy.
2026-06-08 16:04:09 -07:00
zeekay 126bb01d8f corona → corona total rename — no alias, no wire compat
Per CTO directive: kill any alias, any shim. R-LWE threshold sig is
named Corona across all live code. Forward-only.

Sweep covers Go + TS + Sol + k8s YAML + JSON + LP markdown + skills
+ docs. Skipped: papers/audits/legal/licenses/blog/HISTORY (immutable
historical record).
2026-06-06 13:56:42 -07:00
zeekay d562e9feb5 WIP: session checkpoint 2026-06-05 (codec rip in flight) 2026-06-05 15:33:53 -07:00
zeekay d281e1e18b docs: rename etnaTimestamp → quasarTimestamp in cchain.mdx
Documentation example mirrors the SoT rename in luxfi/upgrade +
luxfi/genesis.
2026-06-02 23:30:50 -07:00
zeekay ed4fd1b052 docs(fhe): correct FHEVM stack (Go primary, not Rust) + drop "NEVER use Zama"
Two corrections:

1. lux-fhevm.mdx claimed the coprocessor was Rust-based with the Zama tfhe
   crate. The actual lux/fhe-coprocessor is pure Go (luxfi/fhe + luxfi/lattice)
   with C++ / GPU (Metal+CUDA) / FPGA acceleration paths. No Rust toolchain;
   no Zama crate. Quick-reference table updated to match reality.

2. lux-fhe-coprocessor.mdx had the negative "NEVER use Zama tfhe-rs" framing
   in the hard requirements + a Related Skills entry pointing at a
   "Rust-based FHEVM coprocessor (alternative architecture using Zama tfhe
   crate)" that doesn't exist. Reframed positively: Lux-native FHE; the
   FHEVM specification points at the same Go primary + C++/GPU/FPGA accel
   stack.
2026-05-29 12:37:24 -07:00
zeekay 65f6376aab chore: brand-neutral cleanup — remove cross-tenant references 2026-05-25 15:13:25 -07:00
zeekay eb10c8ca70 docs: canonical Quasar naming (drop "umbrella" / "composition" qualifiers; add supermassive black-hole framing) 2026-05-19 08:15:19 -07:00
zeekay 5d952127b4 docs(reference): rip Avalanche-upgrade-name framing; fix MDX <URL> bug
lux-upgrade.mdx rewritten as "header-schema compatibility" tool; the
Apricot/Banff/Cortina/Durango/Etna/Fortuna/Granite fork-history table is
deleted because Lux activates every feature at genesis (LP-3641). The
Config-struct field names are retained — they are the on-wire header
schema and cannot be renamed without breaking historical replay.

lux-precompile.mdx, lux-evm.mdx, lux-lps.mdx, cchain.mdx: drop "Durango+",
"Etna activated", "ACP-181" framing. EVM hardfork gates (Shanghai/Cancun)
stay — they gate opcode behavior.

Side fix: 5 reference MDX files (corona/magnetar/proto/pulsar/quasar) had
<https://github.com/luxfi/X> raw-autolink syntax that Turbopack's MDX
parser was rejecting (Unexpected `/` before local name), failing the
docs build entirely. Switched to [text](url) form. Docs site now builds
(453 paths prerendered).
2026-05-19 07:54:07 -07:00
zeekay 96e54df785 docs(reference): add lux-pulsar/quasar/corona/magnetar/proto MDX; remove lux-corona (repo archived); update sidebar (Threshold Signatures (PQ) section) 2026-05-18 22:22:23 -07:00
zeekayandGitHub 3e9222bdf3 docs(licensing): clarify runtime gate vs license tier (#12)
Mirror of upstream luxfi/.github profile changes. Some prior phrasing
conflated "no runtime token check" with "no license", which is wrong:
every Lux artifact is licensed — tiers 1+2 just don't carry a runtime
token gate, while tier 3 does. Adds the canonical 3-row table to
/licensing and cross-references it from /open-core.

No license tier classifications change. No LICENSE files change. No
runtime-check behavior changes. Documentation correction only.
2026-05-16 13:34:17 -07:00
zeekayandGitHub 8b4dddae2d docs: Corona → Corona cascade in lux-precompile reference (matches luxfi/threshold v1.6.13 + luxfi/corona v0.4.0) (#11) 2026-05-16 10:50:57 -07:00
zeekay a7e2fa94a9 docs: drop LUX_ env prefix; iam package moved to hanzoai
Two stale references cleaned up after recent upstream renames:

- cli reference: luxfi/constants v1.5.4 + luxfi/cli v1.99.23 dropped
  the LUX_ prefix from EnvNodePath/EnvNetrunnerPath/EnvEVMPath/
  EnvPluginsDir. Update the env-var documentation accordingly.

- iam reference: identity provider package moved from luxfi/iam to
  hanzoai/iam as part of the IAM consolidation under hanzoai (per
  CLAUDE.md). Update the github.com path in the IAM overview page.
2026-05-16 02:41:00 -07:00
zeekayandGitHub 67d750809a docs: mirror canonical IP/licensing strategy + open-core EE pages (#8)
Mirror github.com/luxfi/.github/profile/{README,OPEN-CORE-EE}.md to the
docs.lux.network source tree so the three-tier IP strategy is
discoverable from docs without needing to know the GitHub URL.

- apps/docs/content/docs/licensing.mdx — mirrors profile README
- apps/docs/content/docs/open-core.mdx — mirrors OPEN-CORE-EE
- meta.json: new "Strategy" sidebar section
- (home)/page.tsx: new "Strategy" tile section for homepage discovery

The .github profile READMEs remain canonical; this is a navigational
mirror. LICENSE file in each repo is the binding artifact.
2026-05-15 17:31:22 -07:00
zeekay 9a1c789b33 canonical: scrub upstream 'Subnet-EVM' / 'subnet-evm' brand language
Lux uses 'Lux EVM' (the canonical luxfi/evm plugin) for both C-Chain
and EVM-based L2 chains. The upstream 'subnet-evm' / 'Subnet-EVM' brand
was a separate codebase we don't use anymore.
2026-05-05 20:26:07 -07:00
zeekay bf7be5f293 canonical: single Lux EVM VM ID = mgj786NP… (CB58 of ids.ID{'e','v','m'})
Removed legacy 'srEXi…' (upstream Subnet-EVM ID) — Lux uses one canonical
EVM VM ID for both C-Chain and EVM-based subnets per luxfi/constants.EVMID.
Plugin filename is mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6 only;
no dual install, no aliases.
2026-05-05 20:16:26 -07:00
zeekay 6b2e593b3c docs: snow.Context → consensus.Context, frost icon kept 2026-05-05 19:14:45 -07:00
zeekay d0fbce1e67 docs: Warp 2.0 canonical naming in netrunner reference 2026-05-05 17:56:49 -07:00
zeekay 91fd5eccd3 docs: PQ canonical terminology (FIPS 203/204/205 + Pulsar + Lamport) 2026-05-05 17:55:55 -07:00
zeekay ade6e1e0dd docs: final canonical-naming pass (Lux EVM / Pulsar in reference docs)
Replace Coreth/Corona prose with canonical Lux EVM / Pulsar
in lux-cli, lux-plugins, lux-lps reference docs. Subnet-EVM
clarified as legacy alias for sovereign-L1 Lux EVM mode.
2026-05-05 17:49:51 -07:00