- Stressnet stable for 4 consecutive weeks (Phase 7.7)
- All stressnet acceptance criteria met (see
tests/stressnet/README.md) - Zero tree root divergences for full 4-week run
- Block validation p95 < 500ms sustained
- Verification cache hit rate > 95% sustained
- Stressnet summary report archived
- Stressnet artifact links recorded in release notes (metrics dashboards, logs, and report commit hash)
- All stressnet acceptance criteria met (see
- 4-scalar leaf circuit audit completed (Phase 9)
- Audit engagement initiated after stressnet gate
- No critical or high findings in final report
- All findings remediated and re-verified
- Written security assessment report archived (see
docs/AUDIT_SCOPE.md) - Audit artifact links recorded in release notes (report URL or digest, remediation PRs)
- Security audit
- Code audit
- PQC specification frozen
-
docs/POST_QUANTUM_CRYPTOGRAPHY.mdmatches implementation - canonical transaction/signature serialization documented
- signed payload definition documented
- V4 PQC Privacy Roadmap published
-
- PQC crypto review
- hybrid sign/verify implementation reviewed (external audit pending)
- FFI ownership / zeroization reviewed (external audit pending)
- test vectors generated and archived (4 vectors: 1 positive, 3 negative)
- PQC interoperability verification
- wallet sign/daemon verify path tested
- malformed hybrid signature rejection tested (3 negative vector integration tests)
- encoded transaction size impact measured (~5,385 bytes per user tx)
- payload limit guidance documented in V3_ROLLOUT.md
- Ledger integration (deferred to v1.1)
- FCMP++ device abstraction stubs in place (
device_ledger.cpp) - Ledger app updated with FCMP++ proof generation support
- Ledger Shekyl app (or Monero-compatible app) update available
- FCMP++ device abstraction stubs in place (
- Trezor integration (deferred to v1.1)
- FCMP++ device abstraction defaults inherited (unsupported, returns false)
- Trezor cold-signing protocol updated for FCMP++ transactions
- Trezor firmware update available (if needed)
Software wallets only for v1.0 launch. Hardware support (Ledger/Trezor) targeted for v1.1.
The device abstraction layer (device.hpp) exposes fcmp_prepare, fcmp_proof_start,
and fcmp_proof_add_input so that hardware wallet implementations can be added without
further changes to the interface.
- Fork height set (rebooted chain: all features at HF 1 from genesis)
- Shekyl announcement mailer / notice
- Twitter announcement
- Reddit announcement
- Project website announcement
- Notify wallets (placeholder -- replace with actual Shekyl-compatible wallets pre-launch)
- Shekyl GUI Wallet (first-party)
- Shekyl CLI (first-party)
- (third-party wallet integrations TBD)
- Notify exchanges (placeholder -- replace with actual exchange partners pre-launch)
- (exchange integrations TBD)
- Notify 3rd party payment processors (placeholder)
- (payment gateway integrations TBD)
- Notify mining pools (placeholder)
- (mining pool partnerships TBD)
- Release tagged
- Update src/version.cpp.in with new version AND new name (if necessary)
- Update Gitian YML files in contrib/gitian/ to the new version number
- Update README.md with new fork table entry (or recommended Shekyl version)
- Update contrib/gitian/README.md so that the instructions reflect the current version
- Update src/checkpoints/checkpoints.cpp with a recent hardcoded checkpoint
- Update src/blocks/checkpoints.dat with ./shekyl-blockchain-export (or equivalent) --output-file checkpoints.dat --block-stop <recent block height> --blocksdat
- Update expected_block_hashes_hash in src/cryptonote_core/blockchain.cpp with checkpoints.dat sha256 hash
- Testnet forked
- Testnet testing/verification
- Run deterministic tuple check across seed nodes:
python3 scripts/check_testnet_genesis_consensus.py --rpc http://SEED_EAST:12029 --rpc http://SEED_WEST:12029 --rpc http://SEED_EU:12029 --check-economy
- Follow rehearsal runbook:
shekyl-dev/docs/TESTNET_MINER.md - Follow rehearsal gates:
shekyl-dev/docs/TESTNET_REHEARSAL_CHECKLIST.md - Ledger
- Trezor
- Release-specific testing
- RPC testing/update RPC documentation
- PQC transaction validation testing
- PQC wallet send/receive testing
- PQC multisig group creation (2-of-3, 3-of-5)
- PQC multisig signing flow (export request, partial sign, import, broadcast)
- PQC multisig scheme downgrade rejection verified
- PQC multisig fuzz targets run (5 harnesses, 10M iterations each)
- PQC multisig test vectors validated against docs/PQC_TEST_VECTOR_002_MULTISIG.json
- FCMP++ proof verification tested (prove/verify round-trip)
- Curve tree operations tested (grow/trim/root/path)
- FCMP++/staking/PQC fuzz targets run (11 harnesses total, 10M iterations each)
- CI fuzz smoke gate passed (required harness inventory check in
.github/workflows/build.yml) - Per-output PQC key derivation tested
- Bech32m address encoding/decoding tested
- Transaction pruning mode tested (
--prune-blockchain) - Block header
curve_tree_rootcommitment validated - RPC consumer regression testing for larger transactions
- Run deterministic tuple check across seed nodes:
- CLI reproducible builds validated
- Rust/PQC reproducible build inputs documented
- CLI released
- Project downloads page updated
- Update hashes.txt on website
- Update downloads.yml on website
- Update auto-update DNS records on all 5 TLDs (see
shekyl-dev/docs/DNS_CONFIG.md) - Update redirects on downloads box
- Update seed nodes
- GUI released (if applicable)
- Project downloads page updated
- Update hashes.txt on website
- Update hashes.txt.sig on website
- Update downloads.yml on website
- Update auto-update DNS records on all 5 TLDs (see
shekyl-dev/docs/DNS_CONFIG.md) - Update redirects on downloads box
- Release Announcements
- Shekyl announcement mailer notice
- Twitter announcement
- Reddit announcement
- Project website announcement