Finding
Stellar Lab documentation does not make the Saved Keypairs storage and offline
boundary prominent enough for a secret-bearing browser tool. Current Laboratory
source serializes saved keypair objects to browser localStorage as
plaintext JSON, and current tests place the S... secret in that object.
The Saved Keypairs page correctly restricts use to Testnet/Futurenet and says
never Mainnet, but it does not state the concrete storage property: the secret
is persisted as plaintext browser storage, not encrypted custody.
Evidence
Both GT-54 verification lanes reviewed the current Lab docs and source. The
pre-read-locked blind lane independently confirmed the browser-storage boundary
before reading the primary report, and the final reconciliation records
plaintext JSON in localStorage as the controlling fact. No secret was
generated, pasted, saved or transmitted during verification.
This is a docs-content gap rather than a claim that local browser storage is a
remote service. It is also separate from wallet/hardware/external-signature
flows, which avoid placing a production seed in Lab.
Additional recorded evidence:
- Lab Saved Keypairs docs inspected 2026-07-11 restrict the feature to Testnet and Futurenet and say never Mainnet
- current stellar/laboratory localStorageSavedKeypairs source serializes saved keypair objects into browser localStorage
- current Laboratory tests persist the S-secret value in the saved object
- rechecked 2026-07-14: the current page says browser local storage but does not state that it is plaintext JSON; current Laboratory source serializes saved keypairs with JSON.stringify
Recommendation
Add one warning beside the existing Saved Keypairs network restriction: an
S... secret is stored as plaintext JSON in browser localStorage, not
encrypted custody. Keep the existing Testnet/Futurenet-only and never-Mainnet
guidance.
Source Record
This was found by the downstream Raven eval/improvements loop and recorded as sd-030 (stellar-docs, discovered 2026-07-11).
Public source record: improvements/stellar-docs/sd-030-lab-saved-keypairs-offline-boundary.md
Immutable source snapshot: bbb0d4f55527
Resolution Handoff
When a fix is deployed, please link the resolving issue or PR to the source record above and notify Raven through:
https://github.com/kalepail/stellar-raven/issues/new?template=upstream-improvement-ready.yml&title=%5Bupstream-ready%5D%20sd-030%3A%20
Include the finding id, resolving issue/PR, deployed version or timestamp, and the smallest live recheck. Raven independently verifies the upstream surface before changing the finding to fixed-upstream; issue closure or a merged PR alone is not treated as proof. After a distinct reviewer repeats the live check, the active finding is retired to Raven's resolved ledger while the immutable snapshot remains available.
Finding
Stellar Lab documentation does not make the Saved Keypairs storage and offline
boundary prominent enough for a secret-bearing browser tool. Current Laboratory
source serializes saved keypair objects to browser
localStorageasplaintext JSON, and current tests place the
S...secret in that object.The Saved Keypairs page correctly restricts use to Testnet/Futurenet and says
never Mainnet, but it does not state the concrete storage property: the secret
is persisted as plaintext browser storage, not encrypted custody.
Evidence
Both GT-54 verification lanes reviewed the current Lab docs and source. The
pre-read-locked blind lane independently confirmed the browser-storage boundary
before reading the primary report, and the final reconciliation records
plaintext JSON in
localStorageas the controlling fact. No secret wasgenerated, pasted, saved or transmitted during verification.
This is a docs-content gap rather than a claim that local browser storage is a
remote service. It is also separate from wallet/hardware/external-signature
flows, which avoid placing a production seed in Lab.
Additional recorded evidence:
Recommendation
Add one warning beside the existing Saved Keypairs network restriction: an
S...secret is stored as plaintext JSON in browserlocalStorage, notencrypted custody. Keep the existing Testnet/Futurenet-only and never-Mainnet
guidance.
Source Record
This was found by the downstream Raven eval/improvements loop and recorded as sd-030 (stellar-docs, discovered 2026-07-11).
Public source record: improvements/stellar-docs/sd-030-lab-saved-keypairs-offline-boundary.md
Immutable source snapshot: bbb0d4f55527
Resolution Handoff
When a fix is deployed, please link the resolving issue or PR to the source record above and notify Raven through:
https://github.com/kalepail/stellar-raven/issues/new?template=upstream-improvement-ready.yml&title=%5Bupstream-ready%5D%20sd-030%3A%20
Include the finding id, resolving issue/PR, deployed version or timestamp, and the smallest live recheck. Raven independently verifies the upstream surface before changing the finding to
fixed-upstream; issue closure or a merged PR alone is not treated as proof. After a distinct reviewer repeats the live check, the active finding is retired to Raven's resolved ledger while the immutable snapshot remains available.