From e394789e171342b1100a9c5a9302e0d1389dd227 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 20:29:28 -0800 Subject: [PATCH 01/13] added doc --- docs/learning-lit/threshold-cryptography.mdx | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/learning-lit/threshold-cryptography.mdx diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx new file mode 100644 index 0000000000..e69de29bb2 From 58c143e81d4a00d04e7bf99d034be86290843aba Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 20:54:49 -0800 Subject: [PATCH 02/13] start crypto docs --- docs/learning-lit/threshold-cryptography.mdx | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index e69de29bb2..d25a8d847f 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -0,0 +1,24 @@ +--- +title: "Threshold Cryptography" +--- + +Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus. + +## Supported Elliptic Curves and Signing Schemes + +| Curve | Algorithms (TSS) | Crates (Rust) | Lit enums | Example chains | +|---|---|---|---|---| +| secp256k1 | ECDSA (DamFast), Schnorr (FROST, Taproot) | [`k256`](https://crates.io/crates/k256) | `CurveType::K256`; `SigningScheme::{EcdsaK256Sha256,SchnorrK256Sha256,SchnorrK256Taproot}` | Bitcoin, Ethereum | +| P-256 (secp256r1) | ECDSA (DamFast), Schnorr (FROST) | [`p256`](https://crates.io/crates/p256) | `CurveType::P256`; `SigningScheme::{EcdsaP256Sha256,SchnorrP256Sha256}` | Flow, Hyperledger Fabric | +| P-384 (secp384r1) | ECDSA (DamFast), Schnorr (FROST) | [`p384`](https://crates.io/crates/p384) | `CurveType::P384`; `SigningScheme::{EcdsaP384Sha384,SchnorrP384Sha384}` | Enterprise/PKI contexts | +| Ed25519 | Schnorr (FROST/EdDSA) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `CurveType::Ed25519`; `SigningScheme::SchnorrEd25519Sha512` | Solana, Stellar | +| Ristretto25519 | Schnorr (FROST, Schnorrkel/Substrate) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `CurveType::Ristretto25519`; `SigningScheme::{SchnorrRistretto25519Sha512,SchnorrkelSubstrate}` | Polkadot/Substrate (sr25519) | +| Ed448 | Schnorr (FROST) | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `CurveType::Ed448`; `SigningScheme::SchnorrEd448Shake256` | Research/interop | +| RedJubjub | Schnorr (FROST) | [`jubjub`](https://crates.io/crates/jubjub) | `CurveType::RedJubjub`; `SigningScheme::SchnorrRedJubjubBlake2b512` | Zcash (Sapling/RedJubjub) | +| RedDecaf377 | Schnorr (FROST) | [`decaf377`](https://crates.io/crates/decaf377) | `CurveType::RedDecaf377`; `SigningScheme::SchnorrRedDecaf377Blake2b512` | Penumbra (RedDSA) | +| BLS12-381 (G1/G2) | BLS (Basic, MsgAug, PoP) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `CurveType::{BLS,BLS12381G1}`; `SigningScheme::{Bls12381,Bls12381G1ProofOfPossession}` | Ethereum consensus, Filecoin | + +Notes +- ECDSA TSS uses Damgård et al. “Fast Threshold ECDSA with Honest Majority” (ePrint 2020/501). See `rust/lit-core/lit-fast-ecdsa/README.md`. +- Schnorr TSS uses FROST across curves; helpers via `lit-frost` and `frost-dkg`. +- BLS supports multiple schemes including Proof of Possession. \ No newline at end of file From b59c88a584cd1b2320a76baef4caf77c63c26c42 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 20:56:17 -0800 Subject: [PATCH 03/13] more docs --- docs/docs.json | 3 ++- docs/learning-lit/threshold-cryptography.mdx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/docs.json b/docs/docs.json index 70b355044c..01d696da43 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -24,7 +24,8 @@ "learning-lit/on-chain-coordination-mechanisms", "learning-lit/communicating-with-lit-nodes", "learning-lit/cryptoeconomic-security", - "learning-lit/backup-and-recovery" + "learning-lit/backup-and-recovery", + "learning-lit/threshold-cryptography" ] } ] diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index d25a8d847f..0925fd8d92 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -2,7 +2,7 @@ title: "Threshold Cryptography" --- -Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus. +Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). ## Supported Elliptic Curves and Signing Schemes From fb9bf2f5a25083d8874ef9633ba6f51139af9cc4 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 21:39:19 -0800 Subject: [PATCH 04/13] wide mode --- docs/learning-lit/threshold-cryptography.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index 0925fd8d92..1958663dc9 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -1,5 +1,6 @@ --- title: "Threshold Cryptography" +mode: "wide" --- Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). From 110639ae287073952744d18abca9c0009b7e0259 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 21:52:57 -0800 Subject: [PATCH 05/13] link to paper --- docs/learning-lit/threshold-cryptography.mdx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index 1958663dc9..b158e64dd3 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -1,6 +1,6 @@ --- title: "Threshold Cryptography" -mode: "wide" +mode: "center" --- Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). @@ -9,9 +9,9 @@ Lit Protocol supports a wide range of elliptic curves and signing schemes, all s | Curve | Algorithms (TSS) | Crates (Rust) | Lit enums | Example chains | |---|---|---|---|---| -| secp256k1 | ECDSA (DamFast), Schnorr (FROST, Taproot) | [`k256`](https://crates.io/crates/k256) | `CurveType::K256`; `SigningScheme::{EcdsaK256Sha256,SchnorrK256Sha256,SchnorrK256Taproot}` | Bitcoin, Ethereum | -| P-256 (secp256r1) | ECDSA (DamFast), Schnorr (FROST) | [`p256`](https://crates.io/crates/p256) | `CurveType::P256`; `SigningScheme::{EcdsaP256Sha256,SchnorrP256Sha256}` | Flow, Hyperledger Fabric | -| P-384 (secp384r1) | ECDSA (DamFast), Schnorr (FROST) | [`p384`](https://crates.io/crates/p384) | `CurveType::P384`; `SigningScheme::{EcdsaP384Sha384,SchnorrP384Sha384}` | Enterprise/PKI contexts | +| secp256k1 | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST, Taproot) | [`k256`](https://crates.io/crates/k256) | `CurveType::K256`; `SigningScheme::{EcdsaK256Sha256,SchnorrK256Sha256,SchnorrK256Taproot}` | Bitcoin, Ethereum | +| P-256 (secp256r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p256`](https://crates.io/crates/p256) | `CurveType::P256`; `SigningScheme::{EcdsaP256Sha256,SchnorrP256Sha256}` | Flow, Hyperledger Fabric | +| P-384 (secp384r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p384`](https://crates.io/crates/p384) | `CurveType::P384`; `SigningScheme::{EcdsaP384Sha384,SchnorrP384Sha384}` | Enterprise/PKI contexts | | Ed25519 | Schnorr (FROST/EdDSA) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `CurveType::Ed25519`; `SigningScheme::SchnorrEd25519Sha512` | Solana, Stellar | | Ristretto25519 | Schnorr (FROST, Schnorrkel/Substrate) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `CurveType::Ristretto25519`; `SigningScheme::{SchnorrRistretto25519Sha512,SchnorrkelSubstrate}` | Polkadot/Substrate (sr25519) | | Ed448 | Schnorr (FROST) | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `CurveType::Ed448`; `SigningScheme::SchnorrEd448Shake256` | Research/interop | @@ -19,7 +19,4 @@ Lit Protocol supports a wide range of elliptic curves and signing schemes, all s | RedDecaf377 | Schnorr (FROST) | [`decaf377`](https://crates.io/crates/decaf377) | `CurveType::RedDecaf377`; `SigningScheme::SchnorrRedDecaf377Blake2b512` | Penumbra (RedDSA) | | BLS12-381 (G1/G2) | BLS (Basic, MsgAug, PoP) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `CurveType::{BLS,BLS12381G1}`; `SigningScheme::{Bls12381,Bls12381G1ProofOfPossession}` | Ethereum consensus, Filecoin | -Notes -- ECDSA TSS uses Damgård et al. “Fast Threshold ECDSA with Honest Majority” (ePrint 2020/501). See `rust/lit-core/lit-fast-ecdsa/README.md`. -- Schnorr TSS uses FROST across curves; helpers via `lit-frost` and `frost-dkg`. -- BLS supports multiple schemes including Proof of Possession. \ No newline at end of file +BLS supports multiple schemes including Proof of Possession. \ No newline at end of file From 26bfd70483c1710966769aaaf083fafbb8bd108d Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 21:58:01 -0800 Subject: [PATCH 06/13] back to wide mode --- docs/learning-lit/threshold-cryptography.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index b158e64dd3..0c51fdf3d1 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -1,6 +1,6 @@ --- title: "Threshold Cryptography" -mode: "center" +mode: "wide" --- Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). From 9c59dd95bc3dda307942f731c3f8aa51eef304d1 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:02:09 -0800 Subject: [PATCH 07/13] will this make wide mode work? --- docs/custom.css | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ docs/docs.json | 1 + 2 files changed, 85 insertions(+) create mode 100644 docs/custom.css diff --git a/docs/custom.css b/docs/custom.css new file mode 100644 index 0000000000..bd5f83c164 --- /dev/null +++ b/docs/custom.css @@ -0,0 +1,84 @@ +/* Custom CSS for wide mode pages */ +/* Override max-width constraints for wide mode */ + +/* Target wide mode pages - Mintlify may use body class or data attribute */ +body[data-mode="wide"], +html[data-mode="wide"], +[data-mode="wide"], +.wide-mode, +body.wide-mode { + /* Ensure page-level containers can expand */ +} + +/* Target the main content container in wide mode */ +/* Mintlify uses various container classes - target them all */ +body[data-mode="wide"] .mint-content, +body[data-mode="wide"] .mint-main-content, +body[data-mode="wide"] main, +body[data-mode="wide"] article, +body[data-mode="wide"] .mint-container, +body[data-mode="wide"] .content-container, +body[data-mode="wide"] .mint-content-wrapper, +body[data-mode="wide"] .mint-page-content, +[data-mode="wide"] .mint-content, +[data-mode="wide"] .mint-main-content, +[data-mode="wide"] main, +[data-mode="wide"] article, +[data-mode="wide"] .mint-container, +[data-mode="wide"] .content-container, +[data-mode="wide"] .mint-content-wrapper, +[data-mode="wide"] .mint-page-content, +.wide-mode .mint-content, +.wide-mode .mint-main-content, +.wide-mode main, +.wide-mode article { + max-width: 100% !important; + width: 100% !important; +} + +/* Ensure tables in wide mode can expand fully */ +body[data-mode="wide"] table, +[data-mode="wide"] table, +.wide-mode table { + width: 100% !important; + max-width: 100% !important; + table-layout: auto !important; +} + +/* Override any wrapper constraints */ +body[data-mode="wide"] .mint-wrapper, +body[data-mode="wide"] .mint-page-wrapper, +[data-mode="wide"] .mint-wrapper, +[data-mode="wide"] .mint-page-wrapper, +.wide-mode .mint-wrapper, +.wide-mode .mint-page-wrapper { + max-width: 100% !important; +} + +/* Target the page content area specifically */ +body[data-mode="wide"] .mint-page-content > *, +body[data-mode="wide"] .mint-content > *, +[data-mode="wide"] .mint-page-content > *, +[data-mode="wide"] .mint-content > *, +.wide-mode .mint-page-content > *, +.wide-mode .mint-content > * { + max-width: 100% !important; +} + +/* More aggressive targeting - override any max-width on content containers */ +body[data-mode="wide"] [class*="content"], +body[data-mode="wide"] [class*="container"], +[data-mode="wide"] [class*="content"], +[data-mode="wide"] [class*="container"] { + max-width: 100% !important; +} + +/* Ensure proper spacing while allowing full width */ +body[data-mode="wide"] .mint-content-wrapper, +body[data-mode="wide"] .mint-page-wrapper, +[data-mode="wide"] .mint-content-wrapper, +[data-mode="wide"] .mint-page-wrapper { + padding-left: 2rem; + padding-right: 2rem; +} + diff --git a/docs/docs.json b/docs/docs.json index 01d696da43..89f4b14dd8 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -8,6 +8,7 @@ "dark": "#EA580C" }, "favicon": "/favicon.svg", + "css": "/custom.css", "navigation": { "tabs": [ { From 3b0ebbd32f55050ea8ac4b78f5839ec0b8062465 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:06:22 -0800 Subject: [PATCH 08/13] undo that --- docs/custom.css | 84 ------------------------------------------------- docs/docs.json | 1 - 2 files changed, 85 deletions(-) delete mode 100644 docs/custom.css diff --git a/docs/custom.css b/docs/custom.css deleted file mode 100644 index bd5f83c164..0000000000 --- a/docs/custom.css +++ /dev/null @@ -1,84 +0,0 @@ -/* Custom CSS for wide mode pages */ -/* Override max-width constraints for wide mode */ - -/* Target wide mode pages - Mintlify may use body class or data attribute */ -body[data-mode="wide"], -html[data-mode="wide"], -[data-mode="wide"], -.wide-mode, -body.wide-mode { - /* Ensure page-level containers can expand */ -} - -/* Target the main content container in wide mode */ -/* Mintlify uses various container classes - target them all */ -body[data-mode="wide"] .mint-content, -body[data-mode="wide"] .mint-main-content, -body[data-mode="wide"] main, -body[data-mode="wide"] article, -body[data-mode="wide"] .mint-container, -body[data-mode="wide"] .content-container, -body[data-mode="wide"] .mint-content-wrapper, -body[data-mode="wide"] .mint-page-content, -[data-mode="wide"] .mint-content, -[data-mode="wide"] .mint-main-content, -[data-mode="wide"] main, -[data-mode="wide"] article, -[data-mode="wide"] .mint-container, -[data-mode="wide"] .content-container, -[data-mode="wide"] .mint-content-wrapper, -[data-mode="wide"] .mint-page-content, -.wide-mode .mint-content, -.wide-mode .mint-main-content, -.wide-mode main, -.wide-mode article { - max-width: 100% !important; - width: 100% !important; -} - -/* Ensure tables in wide mode can expand fully */ -body[data-mode="wide"] table, -[data-mode="wide"] table, -.wide-mode table { - width: 100% !important; - max-width: 100% !important; - table-layout: auto !important; -} - -/* Override any wrapper constraints */ -body[data-mode="wide"] .mint-wrapper, -body[data-mode="wide"] .mint-page-wrapper, -[data-mode="wide"] .mint-wrapper, -[data-mode="wide"] .mint-page-wrapper, -.wide-mode .mint-wrapper, -.wide-mode .mint-page-wrapper { - max-width: 100% !important; -} - -/* Target the page content area specifically */ -body[data-mode="wide"] .mint-page-content > *, -body[data-mode="wide"] .mint-content > *, -[data-mode="wide"] .mint-page-content > *, -[data-mode="wide"] .mint-content > *, -.wide-mode .mint-page-content > *, -.wide-mode .mint-content > * { - max-width: 100% !important; -} - -/* More aggressive targeting - override any max-width on content containers */ -body[data-mode="wide"] [class*="content"], -body[data-mode="wide"] [class*="container"], -[data-mode="wide"] [class*="content"], -[data-mode="wide"] [class*="container"] { - max-width: 100% !important; -} - -/* Ensure proper spacing while allowing full width */ -body[data-mode="wide"] .mint-content-wrapper, -body[data-mode="wide"] .mint-page-wrapper, -[data-mode="wide"] .mint-content-wrapper, -[data-mode="wide"] .mint-page-wrapper { - padding-left: 2rem; - padding-right: 2rem; -} - diff --git a/docs/docs.json b/docs/docs.json index 89f4b14dd8..01d696da43 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -8,7 +8,6 @@ "dark": "#EA580C" }, "favicon": "/favicon.svg", - "css": "/custom.css", "navigation": { "tabs": [ { From f09719747f7eac389d1610b40ea2452b51a0b6c7 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:12:30 -0800 Subject: [PATCH 09/13] claude's attempt at fixing wide mode --- docs/custom.css | 34 ++++++++++++++++++++++++++++++++++ docs/docs.json | 6 +++++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 docs/custom.css diff --git a/docs/custom.css b/docs/custom.css new file mode 100644 index 0000000000..8ca08a9cb8 --- /dev/null +++ b/docs/custom.css @@ -0,0 +1,34 @@ +/* Fix wide mode layout to allow content to expand into TOC area */ + +/* Override the xl:w-[calc(100%-19rem)] constraint on content area */ +@media (min-width: 1280px) { + html[data-page-mode="wide"] #content-area { + width: 100% !important; + max-width: 96rem !important; /* 6xl = 1536px */ + min-width: 100% !important; + } +} + +/* Ensure the main content container uses full width in wide mode */ +html[data-page-mode="wide"] #content-container { + max-width: 100% !important; +} + +html[data-page-mode="wide"] .mdx-content { + max-width: 100% !important; +} + +/* Allow tables in wide mode to use full available width */ +html[data-page-mode="wide"] [data-table-wrapper="true"] { + max-width: none !important; +} + +html[data-page-mode="wide"] [data-table-wrapper="true"] > div { + max-width: none !important; +} + +html[data-page-mode="wide"] [data-table-wrapper="true"] table { + width: 100% !important; + max-width: none !important; +} + diff --git a/docs/docs.json b/docs/docs.json index 01d696da43..5146d6ff9b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -221,5 +221,9 @@ "x": "https://twitter.com/litprotocol", "discord": "https://litgateway.com/discord" } - } + }, + "styling": { + "codeblocks": "system" + }, + "customCSS": "/custom.css" } From 7bd752f2de9473e7da7cc27d79668b8336b4aafc Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:18:48 -0800 Subject: [PATCH 10/13] debugging wide mode fixes --- docs/custom.css | 30 +++++++++++--------- docs/docs.json | 6 ++-- docs/learning-lit/threshold-cryptography.mdx | 25 ++++++++++++++++ 3 files changed, 45 insertions(+), 16 deletions(-) diff --git a/docs/custom.css b/docs/custom.css index 8ca08a9cb8..d9cf524b75 100644 --- a/docs/custom.css +++ b/docs/custom.css @@ -1,34 +1,38 @@ /* Fix wide mode layout to allow content to expand into TOC area */ -/* Override the xl:w-[calc(100%-19rem)] constraint on content area */ +/* Override the xl:w-[calc(100%-19rem)] Tailwind constraint */ @media (min-width: 1280px) { - html[data-page-mode="wide"] #content-area { + html[data-page-mode="wide"] div#content-area, + html[data-page-mode="wide"] #content-area.relative { width: 100% !important; - max-width: 96rem !important; /* 6xl = 1536px */ + max-width: 100% !important; min-width: 100% !important; } + + /* Adjust padding to account for sidebar */ + html[data-page-mode="wide"] div#content-area { + padding-right: 3rem !important; + } } -/* Ensure the main content container uses full width in wide mode */ -html[data-page-mode="wide"] #content-container { - max-width: 100% !important; -} - +/* Ensure the content container expands fully */ +html[data-page-mode="wide"] #content-container, html[data-page-mode="wide"] .mdx-content { max-width: 100% !important; + width: 100% !important; } /* Allow tables in wide mode to use full available width */ -html[data-page-mode="wide"] [data-table-wrapper="true"] { - max-width: none !important; -} - -html[data-page-mode="wide"] [data-table-wrapper="true"] > div { +html[data-page-mode="wide"] [data-table-wrapper="true"], +html[data-page-mode="wide"] [data-table-wrapper="true"] > div, +html[data-page-mode="wide"] [data-table-wrapper="true"] .table { max-width: none !important; + width: 100% !important; } html[data-page-mode="wide"] [data-table-wrapper="true"] table { width: 100% !important; max-width: none !important; + table-layout: auto !important; } diff --git a/docs/docs.json b/docs/docs.json index 5146d6ff9b..96c90917c9 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -223,7 +223,7 @@ } }, "styling": { - "codeblocks": "system" - }, - "customCSS": "/custom.css" + "codeblocks": "system", + "custom": "/custom.css" + } } diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index 0c51fdf3d1..a2b290f824 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -3,6 +3,31 @@ title: "Threshold Cryptography" mode: "wide" --- + + Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). ## Supported Elliptic Curves and Signing Schemes From 6265a81a07473c654a74387727806792f3432d1d Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:20:40 -0800 Subject: [PATCH 11/13] didn't work, giving up on wide mode --- docs/custom.css | 38 -------------------- docs/docs.json | 4 --- docs/learning-lit/threshold-cryptography.mdx | 25 ------------- 3 files changed, 67 deletions(-) delete mode 100644 docs/custom.css diff --git a/docs/custom.css b/docs/custom.css deleted file mode 100644 index d9cf524b75..0000000000 --- a/docs/custom.css +++ /dev/null @@ -1,38 +0,0 @@ -/* Fix wide mode layout to allow content to expand into TOC area */ - -/* Override the xl:w-[calc(100%-19rem)] Tailwind constraint */ -@media (min-width: 1280px) { - html[data-page-mode="wide"] div#content-area, - html[data-page-mode="wide"] #content-area.relative { - width: 100% !important; - max-width: 100% !important; - min-width: 100% !important; - } - - /* Adjust padding to account for sidebar */ - html[data-page-mode="wide"] div#content-area { - padding-right: 3rem !important; - } -} - -/* Ensure the content container expands fully */ -html[data-page-mode="wide"] #content-container, -html[data-page-mode="wide"] .mdx-content { - max-width: 100% !important; - width: 100% !important; -} - -/* Allow tables in wide mode to use full available width */ -html[data-page-mode="wide"] [data-table-wrapper="true"], -html[data-page-mode="wide"] [data-table-wrapper="true"] > div, -html[data-page-mode="wide"] [data-table-wrapper="true"] .table { - max-width: none !important; - width: 100% !important; -} - -html[data-page-mode="wide"] [data-table-wrapper="true"] table { - width: 100% !important; - max-width: none !important; - table-layout: auto !important; -} - diff --git a/docs/docs.json b/docs/docs.json index 96c90917c9..01d696da43 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -221,9 +221,5 @@ "x": "https://twitter.com/litprotocol", "discord": "https://litgateway.com/discord" } - }, - "styling": { - "codeblocks": "system", - "custom": "/custom.css" } } diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index a2b290f824..0c51fdf3d1 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -3,31 +3,6 @@ title: "Threshold Cryptography" mode: "wide" --- - - Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). ## Supported Elliptic Curves and Signing Schemes From 6b5d07a17f7f78346c5e36ede91e3a2cc94ebe16 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:24:51 -0800 Subject: [PATCH 12/13] move chains to their own section --- docs/learning-lit/threshold-cryptography.mdx | 135 +++++++++++++++++-- 1 file changed, 121 insertions(+), 14 deletions(-) diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index 0c51fdf3d1..b79ef7553b 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -1,22 +1,129 @@ --- title: "Threshold Cryptography" -mode: "wide" --- Lit Protocol supports a wide range of elliptic curves and signing schemes, all securely implemented using threshold cryptography and threshold consensus within a trusted execution environment (TEE). ## Supported Elliptic Curves and Signing Schemes -| Curve | Algorithms (TSS) | Crates (Rust) | Lit enums | Example chains | -|---|---|---|---|---| -| secp256k1 | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST, Taproot) | [`k256`](https://crates.io/crates/k256) | `CurveType::K256`; `SigningScheme::{EcdsaK256Sha256,SchnorrK256Sha256,SchnorrK256Taproot}` | Bitcoin, Ethereum | -| P-256 (secp256r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p256`](https://crates.io/crates/p256) | `CurveType::P256`; `SigningScheme::{EcdsaP256Sha256,SchnorrP256Sha256}` | Flow, Hyperledger Fabric | -| P-384 (secp384r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p384`](https://crates.io/crates/p384) | `CurveType::P384`; `SigningScheme::{EcdsaP384Sha384,SchnorrP384Sha384}` | Enterprise/PKI contexts | -| Ed25519 | Schnorr (FROST/EdDSA) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `CurveType::Ed25519`; `SigningScheme::SchnorrEd25519Sha512` | Solana, Stellar | -| Ristretto25519 | Schnorr (FROST, Schnorrkel/Substrate) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `CurveType::Ristretto25519`; `SigningScheme::{SchnorrRistretto25519Sha512,SchnorrkelSubstrate}` | Polkadot/Substrate (sr25519) | -| Ed448 | Schnorr (FROST) | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `CurveType::Ed448`; `SigningScheme::SchnorrEd448Shake256` | Research/interop | -| RedJubjub | Schnorr (FROST) | [`jubjub`](https://crates.io/crates/jubjub) | `CurveType::RedJubjub`; `SigningScheme::SchnorrRedJubjubBlake2b512` | Zcash (Sapling/RedJubjub) | -| RedDecaf377 | Schnorr (FROST) | [`decaf377`](https://crates.io/crates/decaf377) | `CurveType::RedDecaf377`; `SigningScheme::SchnorrRedDecaf377Blake2b512` | Penumbra (RedDSA) | -| BLS12-381 (G1/G2) | BLS (Basic, MsgAug, PoP) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `CurveType::{BLS,BLS12381G1}`; `SigningScheme::{Bls12381,Bls12381G1ProofOfPossession}` | Ethereum consensus, Filecoin | - -BLS supports multiple schemes including Proof of Possession. \ No newline at end of file +| Curve | Algorithms (TSS) | Crates (Rust) | Lit enums | +|---|---|---|---| +| secp256k1 | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST, Taproot) | [`k256`](https://crates.io/crates/k256) | `CurveType::K256`; `SigningScheme::{EcdsaK256Sha256,SchnorrK256Sha256,SchnorrK256Taproot}` | +| P-256 (secp256r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p256`](https://crates.io/crates/p256) | `CurveType::P256`; `SigningScheme::{EcdsaP256Sha256,SchnorrP256Sha256}` | +| P-384 (secp384r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p384`](https://crates.io/crates/p384) | `CurveType::P384`; `SigningScheme::{EcdsaP384Sha384,SchnorrP384Sha384}` | +| Ed25519 | Schnorr (FROST/EdDSA) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `CurveType::Ed25519`; `SigningScheme::SchnorrEd25519Sha512` | +| Ristretto25519 | Schnorr (FROST, Schnorrkel/Substrate) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `CurveType::Ristretto25519`; `SigningScheme::{SchnorrRistretto25519Sha512,SchnorrkelSubstrate}` | +| Ed448 | Schnorr (FROST) | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `CurveType::Ed448`; `SigningScheme::SchnorrEd448Shake256` | +| RedJubjub | Schnorr (FROST) | [`jubjub`](https://crates.io/crates/jubjub) | `CurveType::RedJubjub`; `SigningScheme::SchnorrRedJubjubBlake2b512` | +| RedDecaf377 | Schnorr (FROST) | [`decaf377`](https://crates.io/crates/decaf377) | `CurveType::RedDecaf377`; `SigningScheme::SchnorrRedDecaf377Blake2b512` | +| BLS12-381 (G1/G2) | BLS (Basic, MsgAug, PoP) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `CurveType::{BLS,BLS12381G1}`; `SigningScheme::{Bls12381,Bls12381G1ProofOfPossession}` | + +BLS supports multiple schemes including Proof of Possession. + +## Supported Chains + +### secp256k1 (K256) with ECDSA + +**Bitcoin Ecosystem:** +- Bitcoin (BTC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Bitcoin Cash (BCH) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Bitcoin SV (BSV) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Litecoin (LTC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Dogecoin (DOGE) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Zcash (ZEC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Dash (DASH) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Decred (DCR) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` + +**Ethereum Ecosystem:** +- Ethereum (ETH) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Ethereum Classic (ETC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Polygon (MATIC) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Binance Smart Chain (BNB) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Avalanche (AVAX) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Fantom (FTM) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Arbitrum - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Optimism - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Base - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- zkSync - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Linea - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Scroll - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Gnosis Chain (xDai) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` + +**Cosmos Ecosystem:** +- Cosmos (ATOM) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` + +**Other secp256k1 Chains:** +- Tron (TRX) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- VeChain (VET) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- EOS - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Theta Network (THETA) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Qtum (QTUM) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Zilliqa (ZIL) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- ICON (ICX) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- DigiByte (DGB) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Komodo (KMD) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Verge (XVG) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Ravencoin (RVN) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` +- Horizen (ZEN) - `CurveType::K256`, `SigningScheme::EcdsaK256Sha256` + +### secp256k1 (K256) with Schnorr + +- Bitcoin (Taproot) - `CurveType::K256`, `SigningScheme::SchnorrK256Taproot` + +### P-256 (secp256r1) with ECDSA + +- Flow - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` +- NEO - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` +- Ontology (ONT) - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` +- Hyperledger Fabric - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` +- Tezos (optional) - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` +- WebAuthn / Passkeys - `CurveType::P256`, `SigningScheme::EcdsaP256Sha256` + +### P-384 (secp384r1) with ECDSA + +- Enterprise PKI systems - `CurveType::P384`, `SigningScheme::EcdsaP384Sha384` +- Government and high-security applications - `CurveType::P384`, `SigningScheme::EcdsaP384Sha384` + +### Ed25519 with EdDSA (Schnorr) + +- Solana (SOL) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Stellar (XLM) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Cardano (ADA) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Algorand (ALGO) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Hedera Hashgraph (HBAR) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Elrond (EGLD) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Tezos (optional) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Ripple (XRP, optional) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- NEM (XEM) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Waves (WAVES) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Lisk (LSK) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Nano (NANO) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Siacoin (SC) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` +- Monero (XMR, variant) - `CurveType::Ed25519`, `SigningScheme::SchnorrEd25519Sha512` + +### Ristretto25519 with Schnorr/Schnorrkel + +- Polkadot (DOT, sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` +- Kusama (KSM, sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` +- All Polkadot Parachains (sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` +- All Substrate-based chains (sr25519) - `CurveType::Ristretto25519`, `SigningScheme::SchnorrkelSubstrate` + +### Ed448 with Schnorr + +- Research and experimental protocols - `CurveType::Ed448`, `SigningScheme::SchnorrEd448Shake256` +- High-security government applications - `CurveType::Ed448`, `SigningScheme::SchnorrEd448Shake256` + +### RedJubjub with Schnorr + +- Zcash (Sapling shielded transactions) - `CurveType::RedJubjub`, `SigningScheme::SchnorrRedJubjubBlake2b512` + +### RedDecaf377 with Schnorr (RedDSA) + +- Penumbra - `CurveType::RedDecaf377`, `SigningScheme::SchnorrRedDecaf377Blake2b512` + +### BLS12-381 with BLS Signatures + +- Ethereum (Consensus Layer / Beacon Chain) - `CurveType::BLS`, `SigningScheme::Bls12381` +- Filecoin (FIL) - `CurveType::BLS`, `SigningScheme::Bls12381` +- Chia (XCH) - `CurveType::BLS`, `SigningScheme::Bls12381` +- Dfinity (ICP) - `CurveType::BLS`, `SigningScheme::Bls12381` \ No newline at end of file From 217c78d1f12d76ae6653f9cd0690d4f1eed751b1 Mon Sep 17 00:00:00 2001 From: Chris Cassano Date: Fri, 7 Nov 2025 22:33:40 -0800 Subject: [PATCH 13/13] better table --- docs/learning-lit/threshold-cryptography.mdx | 30 +++++++++++--------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/docs/learning-lit/threshold-cryptography.mdx b/docs/learning-lit/threshold-cryptography.mdx index b79ef7553b..f53d0adb1f 100644 --- a/docs/learning-lit/threshold-cryptography.mdx +++ b/docs/learning-lit/threshold-cryptography.mdx @@ -6,19 +6,23 @@ Lit Protocol supports a wide range of elliptic curves and signing schemes, all s ## Supported Elliptic Curves and Signing Schemes -| Curve | Algorithms (TSS) | Crates (Rust) | Lit enums | -|---|---|---|---| -| secp256k1 | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST, Taproot) | [`k256`](https://crates.io/crates/k256) | `CurveType::K256`; `SigningScheme::{EcdsaK256Sha256,SchnorrK256Sha256,SchnorrK256Taproot}` | -| P-256 (secp256r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p256`](https://crates.io/crates/p256) | `CurveType::P256`; `SigningScheme::{EcdsaP256Sha256,SchnorrP256Sha256}` | -| P-384 (secp384r1) | ECDSA ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)), Schnorr (FROST) | [`p384`](https://crates.io/crates/p384) | `CurveType::P384`; `SigningScheme::{EcdsaP384Sha384,SchnorrP384Sha384}` | -| Ed25519 | Schnorr (FROST/EdDSA) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `CurveType::Ed25519`; `SigningScheme::SchnorrEd25519Sha512` | -| Ristretto25519 | Schnorr (FROST, Schnorrkel/Substrate) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `CurveType::Ristretto25519`; `SigningScheme::{SchnorrRistretto25519Sha512,SchnorrkelSubstrate}` | -| Ed448 | Schnorr (FROST) | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `CurveType::Ed448`; `SigningScheme::SchnorrEd448Shake256` | -| RedJubjub | Schnorr (FROST) | [`jubjub`](https://crates.io/crates/jubjub) | `CurveType::RedJubjub`; `SigningScheme::SchnorrRedJubjubBlake2b512` | -| RedDecaf377 | Schnorr (FROST) | [`decaf377`](https://crates.io/crates/decaf377) | `CurveType::RedDecaf377`; `SigningScheme::SchnorrRedDecaf377Blake2b512` | -| BLS12-381 (G1/G2) | BLS (Basic, MsgAug, PoP) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `CurveType::{BLS,BLS12381G1}`; `SigningScheme::{Bls12381,Bls12381G1ProofOfPossession}` | - -BLS supports multiple schemes including Proof of Possession. +| Signing Scheme | Curves | Crates (Rust) | `CurveType` | `SigningScheme` | +|---|---|---|---|---| +| **ECDSA** ([Damgård et al.](https://eprint.iacr.org/2020/501.pdf)) | secp256k1 | [`k256`](https://crates.io/crates/k256) | `K256` | `EcdsaK256Sha256` | +| | P-256 (secp256r1) | [`p256`](https://crates.io/crates/p256) | `P256` | `EcdsaP256Sha256` | +| | P-384 (secp384r1) | [`p384`](https://crates.io/crates/p384) | `P384` | `EcdsaP384Sha384` | +| **Schnorr** (FROST) | secp256k1 | [`k256`](https://crates.io/crates/k256) | `K256` | `SchnorrK256Sha256` | +| | secp256k1 (Taproot) | [`k256`](https://crates.io/crates/k256) | `K256` | `SchnorrK256Taproot` | +| | P-256 (secp256r1) | [`p256`](https://crates.io/crates/p256) | `P256` | `SchnorrP256Sha256` | +| | P-384 (secp384r1) | [`p384`](https://crates.io/crates/p384) | `P384` | `SchnorrP384Sha384` | +| | Ed25519 | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek), [`ed25519-dalek`](https://crates.io/crates/ed25519-dalek) | `Ed25519` | `SchnorrEd25519Sha512` | +| | Ristretto25519 | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `Ristretto25519` | `SchnorrRistretto25519Sha512` | +| | Ristretto25519 (sr25519) | [`curve25519-dalek`](https://crates.io/crates/curve25519-dalek) | `Ristretto25519` | `SchnorrkelSubstrate` | +| | Ed448 | [`ed448-goldilocks`](https://crates.io/crates/ed448-goldilocks) | `Ed448` | `SchnorrEd448Shake256` | +| | RedJubjub | [`jubjub`](https://crates.io/crates/jubjub) | `RedJubjub` | `SchnorrRedJubjubBlake2b512` | +| | RedDecaf377 | [`decaf377`](https://crates.io/crates/decaf377) | `RedDecaf377` | `SchnorrRedDecaf377Blake2b512` | +| **BLS** (Basic, MsgAug, PoP) | BLS12-381 (G2) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `BLS` | `Bls12381` | +| | BLS12-381 (G1) | [`blstrs-plus`](https://crates.io/crates/blstrs-plus), `blsful` | `BLS12381G1` | `Bls12381G1ProofOfPossession` | ## Supported Chains