Shekyl Stats

Refreshing...

Network

Connected
Seed Nodes Active
--

Chain

Current Block
0
Network Height
—
Top Block Hash
--
Block Time Target
2 min

Rewards

Last Block Reward
0.000000 SKL
Difficulty
0
Estimated Hash Rate
0 H/s

Supply

Circulating Supply
--
Remaining Supply
--
Total Burned
0.000000 SKL

Economics

Release Multiplier
0
Burn Rate %
0

Staking

Stake Ratio
0
Staker Pool
0.000000 SKL
Staker Emission Share
0
Total Staked
N/A
Staking Height
N/A
Tier 0 Lock Blocks
N/A
Tier 1 Lock Blocks
N/A
Tier 2 Lock Blocks
N/A

Protocol

Transaction Format
TransactionV3
Membership Proof
FCMP++
Spend Auth
Ed25519 + ML-DSA-65
Confidentiality
Stealth + BP+

Node

TX Pool Size
0
Database Size
0 B
Node Version
--
Sync Status
Syncing
All Documentation

Release Checklist

Step-by-step checklist for cutting a new release.

  • Stressnet stable for 4 consecutive weeks (Phase 7.7)
    • Prerequisite of stressnet ENTRY: K_COVER sealed RETIRED 2026-07-19 (docs/completed/ARCHIVAL_REWARD_GATE_M1.md §13): the gate and the collective reward-withholding concept are retired by ruling — reward withholding is individually-caused only (slash, onset, holdings shape, claim expiry). No seal act remains; the machinery-removal implementation PR is tracked in docs/FOLLOWUPS.md. The stressnet-entry prerequisite this row guarded is dissolved (the gate has only ever run as the k_cover = 0 identity, so no activation boundary exists to exercise).
    • 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)
  • 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
  • Genesis address format: PQ signing anchor (address v2) — CLOSED 2026-08-16. Fork (ii) SELECTED by SM-R-8 (2026-08-08); freeze-window signed 2026-08-13; layout + vectors landed 2026-08-15 (in-place 0x01, ADDRESS_DERIVATION_V2); R6-a verify gate lifted. See child rows.
    • 192f UX gate (owner: R. Dawson, release owner) — CLOSED 2026-08-13 by release-owner ruling: 192s stands. Closed by decision, not by test: no floor-hardware UX test was run and none is planned. The ~4.3 s session figure was accepted deliberately at SM-R-8 ratification for a rare, deliberate operation ("4 seconds feels like something important is being done"); 192f was only ever pre-priced as a fallback if pre-freeze UX testing found 4 s intolerable, and no such testing exists. Reopen: only if pre-freeze UX testing is actually run and comes back bad. After the freeze the s→f swap stays foreclosed as stated (same length, different scheme — a format change no later round can make). Fallback record retained: 192f = 171 ms floor signing at ~47.7 KB armored.
    • Genesis-lane freeze-window sign-off on the v2 layout — SIGNED 2026-08-13 (R. Dawson, release owner). The 48-byte SLH-DSA-192s public-key fourth field in the classical segment is the committed frozen wire field, exactly as SM-R-8 ratified it. This row records the ratified position; it decided nothing new.
    • Address v2 layout + test vectors landed (ADDRESS_DERIVATION_V1 successor) — 2026-08-15. Applied as an IN-PLACE correction by ruling: version byte stays 0x01, the classical segment is version ‖ spend ‖ view ‖ msg_sign_pk(48) (113 B; bound form 129 B), and the 65-byte draft layout is deleted everywhere (multisig MULTISIG_ADDRESS_VERSION precedent — never deployed beyond the pre-genesis test estate). Successor corpus ADDRESS_DERIVATION_V2 regenerated + freeze-hash re-pinned; the persisted wallet-envelope field keeps the 65-byte version‖spend‖view PREFIX so every existing wallet file stays openable. Persona receive addresses carry a per-slot key under the new seventh archival-P label (shekyl-archival-p-msg-sign-slh-dsa-192s-v1, registry row + census bump) — uniformity, not a new capability. The SM-R-6 R6-a verify gate is LIFTED: verify_message is live end to end and the interim -29803 code was retired unused
    • Message-signing round unblocked — 2026-08-13, by the sign-off above. PR-SM-2's address-integrated verify freezes against the signed-off layout; the SM-R-6 R6-a type-gate lifts in code once the v2 layout row above lands.
  • Release-asset manifest signing wired into the gitian job (CBOM §6, SA-6; owner: R. Dawson, release owner) — the policy is NOT open: docs/SIGNING.md rules it (GPG; the Shekyl Foundation institutional key — certification-only primary stored offline with the sec# stub check as a verifiable invariant, hardware-token-held signing subkey requiring physical possession + PIN, personal-key fallback documented; the primary/subkey split means a lost token never compromises the identity). The earlier three-way scheme framing (2026-08-14) overstated the gap. What remains is the wiring half, which tag-signing does not close: SIGNING.md governs the release tag (authenticating the commit the release was cut from), while the gitian job publishes assets that carry no signature — a user who downloads shekyld and runs it has verified nothing. Owed before the first non-RC release tag: the signed SHA256SUMS manifest ceremony — the Foundation signing subkey signs one manifest of asset hashes (same key, same hardware-token ceremony as tags; composes with reproducible builds). The ceremony is scripted: scripts/release/sign_release_assets.py (see docs/SIGNING.md §Release assets) — it enforces the key-hygiene invariants before signing, round-trip-verifies before upload, and doubles as the downstream verifier (--verify-only). Because the subkey is token-held the ceremony is the release owner's local act, not a CI step; this row checks when it has been exercised on a real release. Cutting a release with this row unchecked is the failure the row exists to prevent (docs/CRYPTOGRAPHIC_INVENTORY.md §6).
  • PQC specification frozen
    • docs/POST_QUANTUM_CRYPTOGRAPHY.md matches implementation — updated in PR-SA-2 to the nested combiner (v2, 64-byte domain-separated preimage), Result<()> verify, and the v2/frozen-v1 test-vector split
    • canonical transaction/signature serialization documented
    • signed payload definition documented
    • V4 PQC Privacy Roadmap published
    • Hybrid signature construction frozen (SA-2, SIGNATURE_ALIGNMENT.md): the nested combiner (HYBRID_SIG_VERSION = 2, PQ-inner / Ed25519-outer over a domain-separated preimage) and the per-surface SCHEME_DOMAIN_* strings are consensus-visible on bonded/settlement surfaces (bond-post auth, attestation witness, emission auth). After genesis a change here is a hard fork; the version byte is the security boundary. Landed pre-genesis in PR-SA-2.
    • Bond-preimage reconciliation closed (SA-2b, SIGNATURE_ALIGNMENT.md §2.2): the P-role replay analysis found the surface-A whole-tx hash (which binds the vin type tag) forecloses cross-role replay, so generic won. The bond vin's pqc_auths slot signs the generic surface-A payload hash; S1 + signature_preimage + SCHEME_DOMAIN_BOND_POST deleted. No wire change. Landed pre-genesis in PR-SA-2b.
  • PQC crypto review
    • hybrid sign/verify implementation reviewed (external audit pending)
    • FFI ownership / zeroization reviewed (external audit pending)
    • test vectors generated and archived (PQC_HYBRID_V2_KAT.json: 6 pinned positives, one per signing surface — bond-post's dropped in SA-2b, §2.2 — with cross-surface rejection; frozen v1 parse-rejection fixture; 3 negative vector integration tests)
  • PQC interoperability verification
    • wallet sign/daemon verify path tested
    • malformed hybrid signature rejection tested (3 negative vector integration tests)
    • encoded transaction size impact measured (5389 bytes pqc_auth per input via pqc_auth_weight())
    • payload limit guidance documented in V3_ROLLOUT.md
  • Ledger integration — deleted 2026-10-01 (docs/HARDWARE_WALLETS.md). There is no in-tree backend to finish. Reopen only when a device ships the V4 primitives that doc names.
  • Trezor integration — deleted 2026-08-18 (docs/HARDWARE_WALLETS.md). Same reopen criterion. The software device is the key helper the daemon calls, and it does not carry FCMP offload hooks.

Software wallets only. Hardware support reopens against the Rust wallet when a device ships the V4 primitives docs/HARDWARE_WALLETS.md names.

  • 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
  • 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
    • Block header curve_tree_root commitment validated
    • RPC consumer regression testing for larger transactions
  • CLI reproducible builds validated
  • Rust/PQC reproducible build inputs documented
  • Bundled Tor pin current (2d-2 archival firewall, SP-T0c — rust/shekyl-tor-control-client/src/binary.rs)
    • The wallet's managed tor launch is hash-pin gated (binary.rs mints the VerifiedTorBinary witness a launch requires); a stale or unverified pin is a mission-#1 (security-precondition) gap, so this is a recurring duty, not a one-time step.
    • Watch https://www.torproject.org/download/tor/ for a new stable Tor Expert Bundle or a security advisory since the recorded pin.
    • Ensure the signing key is in your keyring (fresh machine): gpg --auto-key-locate nodefault,wkd --locate-keys [email protected], then confirm the primary fingerprint is EF6E286DDA85EA2A4BA7DE684E2C6E8793298290 (TOR_SIGNING_KEY_FPR in binary.rs).
    • On a new stable / advisory, per supported target: download the Expert Bundle tarball and its .asc, then gpg --verify <file>.asc <file> — require a Good signature whose primary key is that fingerprint (the durable pin is this key, not any single hash).
    • Extract and record sha256sum of the extracted tor binary (not the tarball) into CURRENT_PIN for each target cfg arm (hex!("…") — paste the digest verbatim).
    • Update the other two pin records so no copy drifts: the "Current pin" paragraph in docs/design/ARCHIVAL_BOND_2D2_SP_T0_TOR.md (move the old pin to its "Superseded pin" note with its tarball hash) and the "Current pin" line below.
    • Re-verify: run SHEKYL_TEST_PINNED_TOR_BINARY=<new extracted tor> cargo test -p shekyl-tor-control-client --lib binary -- --ignored — bundled_tor_matches_recorded_pin must pass against the new binary. (The test is not cfg-gated: on a target missing its pin arm it fails loudly instead of reporting a vacuous 0-test green.) The tor-pin-verify workflow (.github/workflows/tor-pin-verify.yml, manual dispatch) runs the same download → GPG-verify → re-verify chain in CI, and against that one verified binary also runs the SP-T0 --lib live lifecycle tests (actor + supervisor) — dispatch it after a bump.
    • Current pin: Expert Bundle 15.0.19 (tor 0.4.9.11), recorded 2026-08-06 (see CURRENT_PIN for the gate value — code is canonical; this line is a pointer, not a second source of truth). The extracted-binary digest is unchanged from the 15.0.17 pin — same tor version, byte-identical binary — so this bump moved the label and not the gate.
    • Current linux-aarch64 pin: Expert Bundle 16.0a12 (tor 0.4.9.12), recorded 2026-09-29. This is an alpha, and it is pinned on purpose. The stable line publishes only linux-i686 and linux-x86_64 (the aarch64 builds are android- and macos-), so the alpha line is the only linux-aarch64 build there is, and the rule-76 floor device needs a VerifiedTorBinary to take the transport cutover's Tor deadline distribution under the managed posture (P2P_TRANSPORT_LAYER.md D9). Verified the same way as the stable pin: Good signature under the key above, extracted-binary digest into the aarch64 cfg arm. Reopen: re-pin to the first stable bundle that ships linux-aarch64, and until then the alpha-line advisories are part of the watch above — see docs/design/ARCHIVAL_BOND_2D2_SP_T0_TOR.md.
  • 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