A Backup solution for anything needing backup via hardware / security keys
TypeScript
0
127 commits
updated Oct 12, 2026
Permanent, non-custodial backup for the secrets you can't afford to lose (seed phrases, 2FA backup codes, recovery codes).
Status: testnet only (OP Sepolia), at https://cryoshield-web-dev.fly.dev. Not audited. Test ETH for local work: Superchain faucet.
tools/recover/README.md explains how to install or download cryoshield-recover and unlock a vault with one of your keys, using only public RPCs or Arweave.docs/lost-or-compromised-key.md.docs/supported-devices.md.The architecture, key derivation and flows are in docs/system-design.md. The vault format is specified in docs/spec/vault-format-v1.md, with deterministic test vectors in packages/vault-crypto/test-vectors/.
| Path | What |
|---|---|
packages/vault-crypto | Vault format: PRF → HKDF-SHA256 → AES-256-GCM, Shamir option, test vectors |
contracts | Vault registry and smart wallet (Foundry). No admin, no upgrades |
apps/web | Static web app: WebAuthn PRF, ERC-4337 passkey account, sponsored gas, Arweave mirror |
tools/recover | cryoshield-recover, the Python desktop recovery tool and a second implementation of the format |
tools/metrics | Aggregate, identifier-free metrics from public chain and Arweave data |
Prerequisites: Node 22 and pnpm 9, Foundry 1.1.0, Python ≥ 3.10 with uv, and the openspec CLI 1.14.0.
pnpm install --frozen-lockfile
pnpm --filter @cryoshield/vault-crypto test # crypto library
(cd contracts && forge test && forge snapshot --mc GasTest --check)
pnpm --filter @cryoshield/web test # web: unit
pnpm --filter @cryoshield/web test:int # web: integration on local anvil
pnpm --filter @cryoshield/web test:e2e # web: E2E, virtual authenticator
pnpm --filter @cryoshield/web verify-build
(cd tools/recover && uv sync --locked && uv run pytest -q) # recovery tool
pnpm --filter @cryoshield/metrics test # metrics
pnpm metrics --network op-sepolia # metrics run (tools/metrics/README.md)
openspec validate --all --strict
Dependency install scripts are disabled (pnpm.onlyBuiltDependencies: []). Real-hardware checklists: apps/web/docs/hardware-test.md and tools/recover/docs/manual-yubikey-test.md.
openspec/changes/<name>/. A PR that touches code or CI without one (the exact paths are in docs/maintainers.md) fails the gate (unless labelled no-spec with a No-spec justification: line).feat/, fix/, ci/, docs/ or chore/. The PR title is a Conventional Commit (fix(recover): handle empty log page); it becomes the squash commit on main.Product requirements: .claude/PRPs/prds/cryoshield.prd.md. The full flow is in CLAUDE.md → "Change flow". CI, branch protection and deployment details are in docs/maintainers.md and docs/deploy.md.
CryoShield is free, open-source software. If it helps you, you can send a voluntary donation in ETH on Ethereum mainnet (chain ID 1) to:
0xfb4172e26AC8735C06656f1df14151cFe8441481
There is no external audit. CryoShield relies on an open specification, cross-implementation test vectors, symmetric-only cryptography and an internal review of every security-relevant change (docs/reviews/).
Report vulnerabilities privately, never in a public issue: see SECURITY.md or use GitHub private vulnerability reporting. Also see security.txt. New issues get an automatic acknowledgement and a sandboxed first diagnosis (CLAUDE.md → "Issue triage"). Never post seed phrases, recovery codes, PINs or keys in an issue.
MIT, enforced in CI by scripts/check-licenses.sh.
A Backup solution for anything needing backup via hardware / security keys
TypeScript
0
127 commits
updated Oct 12, 2026
Permanent, non-custodial backup for the secrets you can't afford to lose (seed phrases, 2FA backup codes, recovery codes).
Status: testnet only (OP Sepolia), at https://cryoshield-web-dev.fly.dev. Not audited. Test ETH for local work: Superchain faucet.
tools/recover/README.md explains how to install or download cryoshield-recover and unlock a vault with one of your keys, using only public RPCs or Arweave.docs/lost-or-compromised-key.md.docs/supported-devices.md.The architecture, key derivation and flows are in docs/system-design.md. The vault format is specified in docs/spec/vault-format-v1.md, with deterministic test vectors in packages/vault-crypto/test-vectors/.
| Path | What |
|---|---|
packages/vault-crypto | Vault format: PRF → HKDF-SHA256 → AES-256-GCM, Shamir option, test vectors |
contracts | Vault registry and smart wallet (Foundry). No admin, no upgrades |
apps/web | Static web app: WebAuthn PRF, ERC-4337 passkey account, sponsored gas, Arweave mirror |
tools/recover | cryoshield-recover, the Python desktop recovery tool and a second implementation of the format |
tools/metrics | Aggregate, identifier-free metrics from public chain and Arweave data |
Prerequisites: Node 22 and pnpm 9, Foundry 1.1.0, Python ≥ 3.10 with uv, and the openspec CLI 1.14.0.
pnpm install --frozen-lockfile
pnpm --filter @cryoshield/vault-crypto test # crypto library
(cd contracts && forge test && forge snapshot --mc GasTest --check)
pnpm --filter @cryoshield/web test # web: unit
pnpm --filter @cryoshield/web test:int # web: integration on local anvil
pnpm --filter @cryoshield/web test:e2e # web: E2E, virtual authenticator
pnpm --filter @cryoshield/web verify-build
(cd tools/recover && uv sync --locked && uv run pytest -q) # recovery tool
pnpm --filter @cryoshield/metrics test # metrics
pnpm metrics --network op-sepolia # metrics run (tools/metrics/README.md)
openspec validate --all --strict
Dependency install scripts are disabled (pnpm.onlyBuiltDependencies: []). Real-hardware checklists: apps/web/docs/hardware-test.md and tools/recover/docs/manual-yubikey-test.md.
openspec/changes/<name>/. A PR that touches code or CI without one (the exact paths are in docs/maintainers.md) fails the gate (unless labelled no-spec with a No-spec justification: line).feat/, fix/, ci/, docs/ or chore/. The PR title is a Conventional Commit (fix(recover): handle empty log page); it becomes the squash commit on main.Product requirements: .claude/PRPs/prds/cryoshield.prd.md. The full flow is in CLAUDE.md → "Change flow". CI, branch protection and deployment details are in docs/maintainers.md and docs/deploy.md.
CryoShield is free, open-source software. If it helps you, you can send a voluntary donation in ETH on Ethereum mainnet (chain ID 1) to:
0xfb4172e26AC8735C06656f1df14151cFe8441481
There is no external audit. CryoShield relies on an open specification, cross-implementation test vectors, symmetric-only cryptography and an internal review of every security-relevant change (docs/reviews/).
Report vulnerabilities privately, never in a public issue: see SECURITY.md or use GitHub private vulnerability reporting. Also see security.txt. New issues get an automatic acknowledgement and a sandboxed first diagnosis (CLAUDE.md → "Issue triage"). Never post seed phrases, recovery codes, PINs or keys in an issue.
MIT, enforced in CI by scripts/check-licenses.sh.