{
  "$schema_note": "Machine-readable facts for HashKinetics. Every claim carries a date, a status, and a verification step. status values: 'measured' = observed on a real run with logs; 'arithmetic' = computed from measured constants, formula given; 'plan' = roadmap, not yet demonstrated. Do not trust this file — verify.",
  "project": {
    "name": "HashKinetics",
    "token_symbol": "HKN",
    "summary": "Sovereign post-quantum L1 for AI-agent payments: consensus-enforced spending budgets (MandateTree) over shielded balances, with hash-based signatures for every wallet and every validator vote.",
    "website": "https://www.hashkinetics.org",
    "source": "https://github.com/hashkinetics/hashkinetics",
    "releases": "https://github.com/hashkinetics/hashkinetics/releases",
    "license": "MIT/Apache-2.0",
    "discord": "https://discord.gg/RsSfb9gn3",
    "telegram": "https://t.me/+tnRXX8KOCWA3YjE1",
    "x": "https://x.com/hashkinetics",
    "whitepaper": "https://www.researchgate.net/publication/413601441_HashKinetics_A_Post-Quantum_Shielded-by-Default_Settlement_Layer_for_the_AI-Agent_Economy",
    "whitepaper_pdf": "https://www.hashkinetics.org/whitepaper.pdf",
    "yellowpaper": "https://www.researchgate.net/publication/413601437_HashKinetics_Yellowpaper",
    "yellowpaper_pdf": "https://www.hashkinetics.org/yellowpaper.pdf",
    "contact": [
      "hello@hashkinetics.org",
      "validators@hashkinetics.org"
    ],
    "disclaimer": "Nothing on this site or in this file is an offer of tokens or securities. Mainnet is gated behind independent audits and a 30-day incident-free public soak."
  },
  "chain": {
    "network": "testnet-1 (public testnet; launched 2026-09-02 from a genesis ceremony — fresh validator keys, protocol fee bound into the genesis from height 1, faucet treasury at genesis; predecessor staging-1 ran 2026-08-27 to 2026-09-02, 107,182 blocks, archived)",
    "live_since": "2026-09-02",
    "chain_id": "hashkinetics-1-4e4ea68d",
    "chain_id_derivation": "Suffix is the leading bytes of SHA-256(genesis.json); nodes refuse to peer across a different genesis.",
    "genesis_sha256_prefix": "4e4ea68d",
    "genesis_sha256": "4e4ea68d48cba1ad4cc7155c19e7768f1fa2cbc99ba0f2b47c58948ec9e971c7",
    "protocol_fee": "100 micro per transaction envelope, burned, bound into the genesis from height 1 (test units, no monetary value)",
    "consensus": "BFT (vendored Malachite) with LMS/HSS hash-signed votes under SLH-DSA-SHAKE-192s roots; no ECDSA in the ledger",
    "block_time_seconds": "1.1 on a 4-seat lab chain with the default 1 s floor (v0.18.2, measured 2026-09-08; 0.11 unpaced); testnet-1 ~3.2 on v0.18.1, ~1 expected once the founding seats run v0.18.2",
    "current_release": "node v0.19.3 (hk-node-v0.19.3.gz sha256 290c1aea24c123bec5ade3133353510487dafa50d98301a1fd79d6fdb59d46cb, binary 900b7e292ec49354ab1759a722f8a00edaca3736f4268e016a0f7e55b550c7b2; N2 — client-only, no deadline: a restarted validator always learns its peers' gossipsub subscriptions — libp2p-gossipsub 0.49.5 vendored with a re-announce on every additional connection and whenever a connection closes while another remains; hk_getPeers adds last_connection_secs and reconnects; released 2026-09-13, gate-n2 18/18). Previous client-only: node v0.19.2 (hk-node-v0.19.2.gz sha256 49ed3b661c03a893daa4d2f223c43eab4bc4ca080dcb7fd0ec51e63b0f565b3d, binary 1597c43fc44f9e85b4edecbe963f7d39c4737b97b46302647d5e19b60dda5087; P6.2 — client-only, no deadline: the faucet drips issued assets with --drip-asset, POST /drip {account, asset}, a per-(address, asset) cooldown and /health.assets[]; the USDC.sep float is bridged in by a founder lock, never minted; released 2026-09-13 with wallet v0.15.0 attached). Consensus release: node v0.19.0 (hk-node-v0.19.0.gz sha256 1b290c8f754a2046129cd3d192c65a33b665b1e12ebe7de6b27f6559d344ba33, binary 3338ec2c9e93f46816cfa9dea2eccbdf2f96f92109407f32391456d6d17b4820; P6 — one shielded pool per asset: a CONSENSUS CHANGE with an activation by height — every node must run v0.19.0 before testnet-1 height 190,000; from that height a shield of any registered pool-eligible asset opens that asset's own pool (tree, anchors, nullifiers, ledger), spends act on the pool their anchor belongs to, the circuit and wallets are untouched, and the state commitment carries the pools section only once a second pool exists so a rolling upgrade cannot fork early; gate-p6 48/48 with real proofs) — released 2026-09-09. Previous: node v0.18.2 (hk-node-v0.18.2.gz sha256 581ef97e0e2017d16bbc476a38e6906d1b5ab439a2836d7a33ed47865a439235, binary 93842255daae83dd916c3c4e5d004259c9e8917bed5c21a40361b6e643c6c4bc; R15 — fast consensus signing, client-only: on v0.18.1 every consensus signature cost ~0.45 s of CPU (447.7 ms median, 787 ms p95, measured on the sources by an external seat operator, Eddy, 2026-09-08) because the vendored hash-signature crate rejected the node's authentication-path cache on every call (a length bug in its HMAC check) and rebuilt the expanded key per signature; v0.18.2 bounds the cache check and keeps the expanded key between signatures — 179 µs median per signature on the release build; signatures byte-identical, on-disk signer state unchanged, no consensus rule, no activation height; the one-time-leaf guard (persist before release, rollback on a failed write, resume from disk) unchanged and tested) — released 2026-09-08. Previous: node v0.18.1 (hk-node-v0.18.1.gz sha256 70b8c7cee372a3216b07b06099e2e7c574262c4e8ad769084a2b2119dcf861d7, binary 469cf4833e9d72da937b517791495443a214d40d46e7d5a35f2808f35dcfaaaa; G1 — bootstrap governance: at testnet-1 height 110,000 every node re-weights the four genesis seats to voting power 4 by a rule hard-wired to the chain id, effective 110,001, so the founding seats hold more than two-thirds on their own while the network is this young; SetChange::SetPower moves weight by certificate under the unchanged supermajority rule — the handover tool; hk_getValidators reports founding_power, external_power, quorum_power, max_absent_power, founders_alone_decide and bootstrap {height, founding_power, active}; CONSENSUS RULE — every node must run v0.18.1 before height 110,000; v0.18.0, released an hour earlier with height 200,000, is withdrawn and was never rolled) — released 2026-09-06. Previous: node v0.17.0 (hk-node-v0.17.0.gz sha256 5f04af612e4a061532c40ec3ba196bbcd3d2f721643252b2065720e5280c7d5a, binary 8d57ad976c28994b1a7b16d1ab9c71ac4255156640cfb7e8b03e889430bfb938; R11 — the node verifies STARKs with a verify-only client: it no longer builds the proof-system's proving engine at start-up, so a restart costs seconds instead of 3–6 minutes and the resident set is what the node itself needs, not a prover's; hk_chainInfo.process reports rss_bytes, uptime_secs and verifier_init_ms on every node; verification runs through the same code path with the same pinned recursion-vk root, so proof acceptance is unchanged) — released 2026-09-06; client-only, no consensus change. Previous: node v0.16.1 (hk-node-v0.16.1.gz sha256 710708b1ea8543791fd5e3cd58249d6acc4e439e33d4e861d9bc0c4cd6f8356f, binary f6bfaf7181d0d944f3714655d132b7e18d058842c011837224426ba9ff5919d5; H3 — paged shielded-pool feed, hk_getPoolPath, wallet v0.14.1 incremental scan; key-seal/account-seal take a _PASSPHRASE_FILE; an unknown command exits 2; no EPIPE panic) · wallet v0.14.1 unchanged",
    "rpc": {
      "url": "https://rpc.hashkinetics.org",
      "protocol": "JSON-RPC 2.0 over HTTP POST, no auth, CORS open for read methods and hk_submitTx; operator methods (hk_submitRotation, hk_gossipTxs, hk_submitBundle) refuse browser origins (403); 10 s request timeout, 256 concurrent connections, 8 MiB body",
      "liveness_probe": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"hk_chainInfo\",\"params\":[]}",
      "methods": [
        "hk_chainInfo",
        "hk_getValidators",
        "hk_getMempool",
        "hk_getBlocks",
        "hk_getBlock",
        "hk_getTx",
        "hk_getAccountTxs",
        "hk_getReceipt",
        "hk_getAccount",
        "hk_balance",
        "hk_submitTx",
        "hk_mandateAvailable",
        "hk_getChannel",
        "hk_getPoolInfo",
        "hk_getPoolNotes",
        "hk_getPoolLeaves",
        "hk_nullifierSpent",
        "hk_submitBundle",
        "hk_submitRotation",
        "hk_gossipTxs"
      ],
      "reference": "https://github.com/hashkinetics/hashkinetics/blob/main/docs/RPC.md"
    },
    "prover_vk_endpoint": "https://prover.hashkinetics.org",
    "explorer": "https://www.hashkinetics.org/explorer/",
    "fee": {
      "micro": 100,
      "from_height": 1,
      "disposition": "burned",
      "refund_on_refusal": true,
      "bound_in_genesis": true,
      "burned_counter": "hk_chainInfo.fee.burned_micro (live)",
      "reference": "https://github.com/hashkinetics/hashkinetics/blob/main/docs/FEES.md"
    },
    "validator_set": "7 seats since 2026-09-07 ~13:35 UTC (block 128613): the 4 founding seats keyed at the testnet-1 ceremony (2026-09-02) plus THREE EXTERNAL SEATS — the third admitted by the four founding seats alone under G1 (16 of 18 > 2/3), effective 128614, total power 19, quorum 13; before it, TWO EXTERNAL SEATS — the first admitted on the running chain by a V1 certificate approved by 3 of the 4 seats' SLH-DSA roots (block 72219, effective 72220), the second by 4 of 5 (block 96629, effective 96630; every approval signed from a sealed key file). No new genesis, chain never paused. hk_getValidators is the live count; quorum is 5 of 6 until height 110,000 — from 110,001 (v0.18.1, G1 bootstrap governance) the four genesis seats weigh 4 each by rule: total 18, quorum 13, the founders decide and admit alone; the weight returns to external seats by SetPower certificate on a dated milestone, and the 30-day soak clock starts only after that handover.",
    "wallet": {
      "platform": "Windows x86_64",
      "version": "v0.15.0",
      "sha256": "6120771fbedb03100a300ade9993636e2689565a285fbf9abb673471d0e94f87",
      "download": "https://github.com/hashkinetics/hashkinetics/releases/download/v0.19.2/HashKinetics-Wallet.exe",
      "guide": "https://www.hashkinetics.org/wallet",
      "capabilities": [
        "create/restore",
        "faucet",
        "transparent send (fee-aware, max = balance - fee)",
        "shield",
        "scan",
        "unshield",
        "stealth pay with memo",
        "one-time disclosure",
        "passphrase-protected key files (Argon2id 512 MiB → XChaCha20-Poly1305; strength rule; generated passphrases; optional key file; Unlock screen)",
        "incremental pool scan (v0.14.1: cursor + found notes cached in shield.json; one Merkle path per spend, re-folded locally)",
        "assets (v0.15.0, P6.2): an ASSET dropdown next to the balance — the native unit, USDC.sep and every registered asset; balance, send, shield, unshield, stealth pay, scan and disclose act in the chosen asset's own pool; Get test USDC drips 5 USDC.sep from the faucet (a bridged float, never minted); the desktop wallet is a thin shell over hk-wallet-core v0.2.0, the same library the Android app runs"
      ],
      "previous": {
        "version": "v0.14.1",
        "sha256": "17566a9e5cc258814f06924c65334631f62205358823414f4abaf587e5f8308e"
      },
      "android": {
        "platform": "Android 8.0+ (arm64-v8a; x86_64 emulator) — sideload, signed by the HashKinetics release key",
        "version": "v0.3.0",
        "sha256": "59f518ce514c298a7d539e0fae9387e4d395e001038d2f61df872cd8dbc41c90",
        "size_bytes": 14550287,
        "signer_certificate_sha256": "b296799ed6bea902f6a30ed3bcd497adce7374eb15ec9f8d587ef0575902d6d3",
        "download": "https://github.com/hashkinetics/hashkinetics/releases/download/wallet-android-v0.3.0/HashKinetics-Wallet-android-0.3.0.apk",
        "release": "https://github.com/hashkinetics/hashkinetics/releases/tag/wallet-android-v0.3.0",
        "released": "2026-09-13",
        "previous": {
          "version": "v0.2.0",
          "sha256": "3510d1c8bad8506ff406ea64ae6a7a7a06a3b68e2a6ec4539b0cdda6919d3904",
          "released": "2026-09-08"
        },
        "capabilities": [
          "create/restore",
          "faucet",
          "receive with QR",
          "transparent send",
          "shield/unshield/scan/stealth pay with memo/disclose (proofs on the public prover)",
          "passphrase-sealed files (Argon2id 256 MiB mobile profile, HKE1 — desktop-compatible)",
          "optional device lock (32-byte key file wrapped by the Android Keystore)",
          "assets (v0.3.0, P6.2): asset chips on the Wallet and Shielded tabs — HKN, USDC.sep, every registered asset; balance, send, shield, unshield, stealth pay, scan, notes and disclose act in the chosen asset's own pool; Get test USDC drips 5 USDC.sep from the faucet; Bridge from Sepolia opens /bridge; same hk-wallet-core v0.2.0 as the desktop wallet"
        ],
        "source": "android/ (Kotlin + Jetpack Compose) over chain/crates/hk-wallet-core (Rust, UniFFI); built by .github/workflows/wallet-android.yml"
      },
      "linux": {
        "platform": "Linux x86_64 (built by GitHub Actions on ubuntu-22.04, untested on a desktop yet)",
        "version": "v0.14.1",
        "sha256": "8c9abbb081d10318f0fce74787d568346d5ed11596c14d45e687dfe214a51f99",
        "download": "https://github.com/hashkinetics/hashkinetics/releases/download/v0.16.1/HashKinetics-Wallet-linux-x86_64-v0.14.1.zip"
      }
    },
    "rotation": "automatic threshold rotation under SLH-DSA roots; since v0.13.2 each seat's threshold sits in 15–25% of its tree, derived from its root key (R12) — seats keyed together no longer rotate together",
    "previous_release": "node v0.16.1 (hk-node-v0.16.1.gz sha256 710708b1ea8543791fd5e3cd58249d6acc4e439e33d4e861d9bc0c4cd6f8356f, binary f6bfaf7181d0d944f3714655d132b7e18d058842c011837224426ba9ff5919d5; H3 — the shielded-pool feed is paged (hk_getPoolNotes/hk_getPoolLeaves from/limit ≤ 10,000, total + next), hk_getPoolPath answers one authentication path per leaf, wallet v0.14.1 scans incrementally; key-seal/account-seal take a _PASSPHRASE_FILE for a new seal; unknown command exits 2; no EPIPE panic; released and rolled 2026-09-06). Before it: v0.16.0 — block-log segments + retention (HK_RETAIN_BLOCKS), persisted search index (index3.bin), snapshot knobs; HKE1 sealed key files: hk-node key-seal for the validator seed, account-seal for wallet files, Argon2id 512 MiB (once per unlock) → XChaCha20-Poly1305, strength-checked passphrases, optional key-file second factor, passphrase from env / file / systemd LoadCredential / prompt; faucet hot/cold with a low-watermark in /health; v0.15.2 live peer table, v0.15.1 kit-ships-the-verifying-keys, v0.15.0 issued assets and v0.14.0 validator-set changes underneath) · wallet v0.14.0 (Protect with a passphrase — account.json + shield.json sealed on disk)"
  },
  "claims": [
    {
      "id": "lab chain-day-zero",
      "date": "2026-08-15",
      "status": "measured",
      "claim": "Clean-slate architecture locked and a live 4-validator BFT lab chain committing blocks on the same day the project started.",
      "verify": "CHANGELOG in the repository walks every version from 0.5.0 with dates."
    },
    {
      "id": "consensus-refusal",
      "date": "2026-08-16",
      "status": "measured",
      "claim": "An over-budget agent spend was refused by the consensus state machine itself, returning the receipt string 'rejected: mandate: insufficient buffer at depth 1 from leaf'. Budgets are consensus objects, not app-layer policy.",
      "verify": "Run `hk-node demo-economy` from the repo on a local lab chain; the refusal reproduces verbatim."
    },
    {
      "id": "hash-based-votes",
      "date": "2026-08-16",
      "status": "measured",
      "claim": "Every consensus vote and proposal is signed with LMS/HSS hash-based signatures under SLH-DSA roots. Ed25519 survives only as libp2p transport identity, never ledger security.",
      "verify": "Read chain/crates/hk-consensus in the repo; run the lab chain and inspect vote envelopes."
    },
    {
      "id": "live-key-rotation",
      "date": "2026-08-16",
      "status": "measured",
      "claim": "A validator rotated its operational signing key mid-chain with zero downtime via a rotation certificate signed by its stateless SLH-DSA root.",
      "verify": "Explorer validators panel shows epoch counters; rotation code and demo flags in the repo."
    },
    {
      "id": "shielded-pool-live",
      "date": "2026-08-17",
      "status": "measured",
      "claim": "Shielded pool live end-to-end: real STARK spend proofs verified in-node by every validator; stealth payments discovered by ML-KEM-768 trial decapsulation; double-spends and forged proofs refused.",
      "verify": "Canonical demo order in docs/RUNBOOK-DEVNET.md: mandates -> shielded -> disclose -> agg."
    },
    {
      "id": "scoped-disclosure",
      "date": "2026-08-17",
      "status": "measured",
      "claim": "A one-time disclosure package for a single shielded payment verified fully OFFLINE and opened zero other commitments in the pool. No master view key exists anywhere in the design.",
      "verify": "`hk-node wallet disclose` + `hk-node verify-disclosure` in the repo; design in the whitepaper."
    },
    {
      "id": "aggregate-proof",
      "date": "2026-08-17",
      "status": "measured",
      "claim": "All shielded spends in a block are verified as ONE constant-size aggregate STARK (~1.24 MB), independent of spend count.",
      "verify": "Aggregation demo in the repo; per-block proof size observable on any node."
    },
    {
      "id": "open-source",
      "date": "2026-08-26",
      "status": "measured",
      "claim": "The entire chain is open source: node, consensus, circuits, join kit, vendored engine with pinned dependencies.",
      "verify": "https://github.com/hashkinetics/hashkinetics"
    },
    {
      "id": "throughput",
      "date": "2026-08-27",
      "status": "measured",
      "claim": "274 tx/s sustained with 1,024-transaction blocks on a 4-validator lab chain under the storm harness.",
      "verify": "Capacity sheet in the repo; storm harness reproduces the run."
    },
    {
      "id": "the-halt",
      "date": "2026-08-28",
      "status": "measured",
      "claim": "A validator exhausted all 32,768 one-time signatures and the chain HALTED at height 10,848 rather than reuse a single leaf (32768 leaves / ~3 sigs per height ~= 10.9K heights). Recovered ~6h later via root-signed rotation certificate, publicly visible as a new epoch. Halt-over-lie, demonstrated in production.",
      "verify": "Incident entry in the public changelog; the arithmetic; explorer epoch history."
    },
    {
      "id": "unattended-rotation",
      "date": "2026-08-29",
      "status": "measured",
      "claim": "All three voting validators crossed their leaf thresholds overnight and rotated their keys unattended. 50+ rotation epochs on staging-1, including three full-exhaustion revivals of a dead validator; testnet-1 started its epoch count from fresh trees on 2026-09-02.",
      "verify": "Explorer validators panel epoch counters; hk_chainInfo signer.epoch."
    },
    {
      "id": "genesis-gate",
      "date": "2026-08-29",
      "status": "measured",
      "claim": "Chain identity is bound to the genesis file: chain_id derives from SHA-256(genesis.json) and nodes refuse to peer with any node on a different genesis.",
      "verify": "sha256sum networks/testnet-1/genesis.json; compare to chain_id from hk_chainInfo (staging-1's archived kit: networks/staging-1)."
    },
    {
      "id": "parallel-sync",
      "date": "2026-08-31",
      "status": "measured",
      "claim": "Full catch-up verification (every vote envelope, every STARK, every commit certificate) went from 2 to 71 blocks/min in v0.10.8 — a joining node outruns the chain. v0.10.9 made sync spend ZERO signer leaves.",
      "verify": "Public changelog entries for 0.10.8/0.10.9; reproduce with any node restart."
    },
    {
      "id": "the-receipt",
      "date": "2026-08-31T18:56:28Z",
      "status": "measured",
      "claim": "An independent observer that joined via the public kit re-verified EVERY block from genesis (~76,000) across 45+ rotation epochs, three validator revivals, and three binary upgrades — and reported the byte-identical full state commitment the founding fleet reports.",
      "app_hash": "457799f2876da7145ceb3eb8eedbdd9b437448cb07bc1e38161a59f357cb1443",
      "verify": "THE RECEIPT is staging-1's commitment (archived chain; reproducible from its retained block log on request). On testnet-1 run the join kit in networks/testnet-1 and compare your node's app_hash at any height to the fleet's at the same height (hk_chainInfo) — equal, or you falsified this site."
    },
    {
      "id": "crash-durability",
      "date": "2026-08-31",
      "status": "measured",
      "claim": "kill -9 on validators mid-consensus resumes to a byte-identical state commitment from the block log; reserve-then-sign persistence means a crash can never reuse a one-time signature leaf. Since v0.13.0 (R10 v2) a restart resumes at the chain height without rehydrating history: RPC back in ~1 s, voting within seconds.",
      "verify": "Crash drill in docs/RUNBOOK-DEVNET.md; restart any node and watch it re-join."
    },
    {
      "id": "effective-payments",
      "date": "2026-08-27",
      "status": "arithmetic",
      "claim": "183,000 effective payments/s via PayWord channels.",
      "formula": "chain settles/s x channel depth, both measured constants; each in-channel payment is one 32-byte hash preimage verified off-chain.",
      "verify": "Constants and derivation in the capacity sheet in the repo."
    },
    {
      "id": "liveness-honesty",
      "date": "2026-08-31",
      "status": "measured",
      "claim": "With 3 of 4 voters the chain crawls (~4 blocks/min, zero timing margin) and self-heals when the fourth returns. Validator loss is a liveness event, never a safety event.",
      "verify": "Ledgered in the public changelog with the measurement."
    },
    {
      "id": "mainnet-gating",
      "date": "2026-09-01",
      "status": "plan",
      "claim": "Mainnet (shielded-by-default) launches only after independent audits close and a 30-day incident-free public soak with at least 4 external validators holding at least 1/3 of voting power.",
      "verify": "This is a commitment, not a demonstration; hold us to it."
    },
    {
      "id": "compatibility-shell",
      "date": "2026-09-01",
      "status": "plan",
      "claim": "Edge compatibility with x402-style facilitation, AP2 mandates, MCP pay-per-tool-call, and ERC-8004 agent identity. A reference paid MCP tool (search_docs at $0.005/query through a PayWord channel under a mandate) runs in the repo today; the full shell is roadmap.",
      "verify": "hk-facilitator crate in the repo for the working reference; the rest is labeled plan."
    },
    {
      "id": "testnet-1-ceremony",
      "date": "2026-09-02",
      "status": "measured",
      "claim": "testnet-1 launched from a genesis ceremony: four independent key generations (fresh stateful hash-based trees, never reused across chains), one genesis assembled from the public halves with the protocol fee (100 micro, burned) and the faucet treasury bound into it, byte-identical on every host (sha256 4e4ea68d...), all four voting within minutes. staging-1 was stopped at height 107,182 and archived (full block log + snapshot).",
      "verify": "docs/CEREMONY-TESTNET-1.md (procedure + record); sha256sum networks/testnet-1/genesis.json = 4e4ea68d48cba1ad4cc7155c19e7768f1fa2cbc99ba0f2b47c58948ec9e971c7; hk_chainInfo reports fee {100, from_height 1}; the rehearsal harness chain/rehearsal.sh passed 34/34 on the released binary."
    },
    {
      "id": "shielded-wallet",
      "date": "2026-09-02",
      "status": "measured",
      "claim": "The Windows wallet (v0.13.0) pays shielded on the public network: shield to the pool, unshield, fully shielded payment to a stealth address with a memo, pool scan with spent status, one-time disclosure packages - proofs generated on the public prover, verified by every validator. It is fee-aware: shows the chain's fee, caps 'max' at balance minus fee, and refuses locally what the chain would refuse.",
      "verify": "Download from the v0.13.0 release (sha256 5c355fd55f3066adece591580907a816372f68da576b93a9d22874f43c5f86af), tap the faucet, shield 1 HKN and watch the pool counters move in the explorer; the wallet guide is in docs/."
    },
    {
      "id": "permissionless-accounts",
      "date": "2026-09-02",
      "status": "measured",
      "claim": "Anyone can create an account with no ceremony: id = H(auth commitment) (squat-proof), funded by a public faucet (0.1 test units per address per day) or by any existing account; the first spend signs with the owner's own hash-based one-time key at ratchet index 0.",
      "verify": "hk-node account-new + /faucet; hk_getAccount shows nonce 0 then 1 after the first spend."
    },
    {
      "id": "fees-live",
      "date": "2026-09-02",
      "status": "measured",
      "claim": "Every transaction envelope on testnet-1 pays 100 micro, debited before the payload, refunded on refusal, burned on success; the policy is bound into the genesis (no activation height, node overrides refused) and the cumulative burn is part of the state commitment.",
      "verify": "hk_chainInfo.fee = {micro:100, from_height:1, burned_micro:<live>}; a full-balance sweep is refused with 'have <balance-100>, need <balance>'; docs/FEES.md."
    },
    {
      "id": "bounded-memory",
      "date": "2026-09-02",
      "status": "measured",
      "claim": "Node memory no longer grows with the chain: only the newest 512 decided heights stay in RAM, older history is served to peers from the block log with a certificate re-check, and a restart resumes at the chain height without rehydrating history (voting within seconds). Honest caveat: the steady ~6.7 GB RSS that remains is the proof-system verifier client's fixed footprint (R11 open).",
      "verify": "hk_chainInfo.history = {disk_from, ram_window:512, indexed_txs}; the rehearsal harness chain/rehearsal.sh restore shapes; changelog [0.13.0]."
    },
    {
      "id": "explorer-search",
      "date": "2026-09-02",
      "status": "measured",
      "claim": "The explorer answers anything — a block height, a transaction id, an account id, or a nullifier — from node-local indexes that are never part of the state commitment, with shareable deep links.",
      "verify": "https://www.hashkinetics.org/explorer/#tx=7147b014e7469c429f19420c993c79cf75f3a076dc941107b06417ca0bb93087"
    },
    {
      "id": "testnet1-first-rotation",
      "date": "2026-09-03T04:03:23Z",
      "status": "measured",
      "claim": "All four testnet-1 validators crossed their one-time-key thresholds and rotated their signing trees unattended within eleven blocks of each other (heights 11,584, 11,588, 11,594, 11,595), zero blocks missed. Finding: fresh trees started together rotate together — per-seat threshold jitter is a plan item (R12).",
      "verify": "hk_getBlock at those heights shows rotations: 1; hk_getValidators shows every seat at epoch 1; block times 1788373803–1788373814."
    },
    {
      "id": "wallet-guide",
      "date": "2026-09-03",
      "status": "measured",
      "claim": "A step-by-step guide with screenshots covers the whole wallet flow on the live network, including the shielded side and one-time disclosure.",
      "verify": "https://www.hashkinetics.org/wallet and docs/WALLET-GUIDE.md; the transaction ids in the guide resolve in the explorer."
    },
    {
      "id": "v0132-rolled",
      "date": "2026-09-03T16:22:00Z",
      "status": "measured",
      "claim": "Node v0.13.2 (public-exposure hardening + per-seat rotation threshold) rolled onto all four testnet-1 hosts one voter at a time between 15:55 and 16:22 UTC; the chain never paused; each host was proven voting (its one-time-key counter falling) before the next was touched. From a browser origin the operator RPC methods now answer 403.",
      "verify": "hk-node --version on any host → hk-node v0.13.2; POST hk_submitRotation to rpc.hashkinetics.org with an Origin header → HTTP 403; networks/testnet-1/CHECKSUMS."
    },
    {
      "id": "v1-set-changes-gate",
      "date": "2026-09-04T17:30:00Z",
      "status": "measured (local gate 25/25; rolled to every testnet-1 seat 2026-09-04, chain never paused)",
      "claim": "Validator-set changes on a running chain (v0.14.0): a seat is admitted or removed by a certificate approved by SLH-DSA root signatures from strictly more than two thirds of the current seats, bound to the chain id and a commit-height window, effective one height after it commits. Devnet gate 25/25: a fresh node joined as an observer, was admitted by 3 of 4, voted (its one-time-key counter fell 32,757 → 32,726 over 14 heights), a 2-of-5 and a wrong-chain certificate were refused, 4 of 5 removed it, and a node started from genesis afterwards synced across both boundaries and derived the same set.",
      "verify": "chain/gate-v1.sh in the repository; docs/V1-VALIDATOR-SET-CHANGES.md; on testnet-1: hk_getValidators carries pending_set_changes since the roll, and hk_getValidators.count changes without a new genesis when the first external seat is admitted."
    },
    {
      "id": "v0140-rolled",
      "date": "2026-09-04T16:50:00Z",
      "status": "measured",
      "claim": "v0.14.0 (validator-set changes on a running chain + K5 refuse-to-start without a verifier) rolled to all four testnet-1 seats one voter at a time — hk-val-1, hk-val-0, hk-val-2, hk-gateway — each proven voting (its one-time-key counter falling while the height advanced) before the next; heights 55,641 → 56,023; the chain never paused; the faucet returned with its cooldowns restored.",
      "verify": "CHANGELOG.md [0.14.0] roll receipt; https://github.com/hashkinetics/hashkinetics/releases/tag/v0.14.0 (immutable, sha256-published); hk_getValidators on https://rpc.hashkinetics.org shows pending_set_changes (a v0.14.0 field)."
    },
    {
      "id": "x1-issued-assets-gate",
      "date": "2026-09-04T18:20:00Z",
      "status": "measured (local gate 40/40; v0.15.0 rolled to every testnet-1 seat 2026-09-04 19:20–19:50 UTC, chain never paused; registry live and empty until the first issuer registers)",
      "claim": "Issued assets (v0.15.0): an issuer registers an asset under an id only it can claim (H(issuer ‖ symbol)), mints, burns, freezes an account and pauses the asset under a policy fixed at registration; per-asset supply and burn counters live in the state commitment and every movement of a registered asset passes one gate (transfers, account funding, mandate spends, channel escrow, shielding, the unshield credit). Devnet gate 40/40 on a fresh 4-validator network: register, a second issuer's same symbol is a different asset, mint 5,000,000, supply conserved on all four nodes, freeze refused both directions while the native asset still moved, pause refused every move, burn with a destination, conservation held, a validator restored from its snapshot at the same app_hash, a fresh node from genesis derived the same registry.",
      "verify": "chain/gate-x1.sh and hk-state tests x1_* in the repository; docs/X1-ISSUED-ASSETS.md; on testnet-1 after the roll: {\"method\":\"hk_getAssets\"} on https://rpc.hashkinetics.org answers with the registry (empty until the first issuer registers) and hk_getAsset.conserved is the node's own conservation check."
    },
    {
      "id": "k6-kit-verifies-without-prover",
      "date": "2026-09-05T02:50:00Z",
      "status": "measured (local gate 16/16)",
      "claim": "v0.15.1: the join kit ships the three SP1 verifying keys (networks/testnet-1/vks.json, 104 bytes each, checked against the genesis pins at startup), so an external node verifies every STARK locally and never depends on the project's prover; a tampered file is refused before the node starts; the node's own HTTP client speaks https. Found by the first external operator, who reached the tip of testnet-1 on our app_hash (height 58,837) only after patching https into his client — the join kit's own instruction was impossible on the stock binary (INCIDENTS #10).",
      "verify": "chain/gate-k6.sh in the repository; sha256sum networks/testnet-1/vks.json = b7776b06547f238ac78ef8f15ab9af9cb9c9919094c9f441e506afdd4a9185b9; start a node with only genesis.json + vks.json in its home and read `verifying keys MATCH the genesis pins source=file` in its log."
    },
    {
      "id": "n1-live-peer-table",
      "date": "2026-09-05T05:00:00Z",
      "status": "measured (local gate 20/20; released 2026-09-05 as v0.15.2 — the roll call turns from 'soon' to live when the gateway runs it)",
      "claim": "v0.15.2: every node keeps a live table of its p2p peers straight from its swarm — who is connected, inbound or outbound, from which (masked) address, on which genesis and node version — and counts the island chains its genesis gate refused. hk_getPeers publishes it; hk_chainInfo carries node_version and the peer count; nodes advertise their version to each other. The /network page reads the gateway's table every 10 seconds: a node appears when it connects and vanishes when it leaves; nothing on that panel is typed in by the project.",
      "verify": "chain/gate-n1.sh in the repository (peers appear on join, vanish on leave, an island chain is refused and counted, four validators name each other by their own peer ids); {\"method\":\"hk_getPeers\"} on https://rpc.hashkinetics.org once the gateway runs v0.15.2; https://www.hashkinetics.org/network#live"
    },
    {
      "id": "first-external-seat",
      "date": "2026-09-05T07:06:37Z",
      "status": "measured",
      "claim": "The first external validator was seated on the running testnet-1 chain: an independent operator (Contabo, France) who had re-verified the chain from genesis hash-for-hash on the public kit was admitted by a validator-set change certificate approved by 3 of 4 seats' SLH-DSA-192s roots, committed in block 72219 and effective from 72220 — validator set 4 → 5, power 5, no new genesis, chain never paused; the new seat proposed and voted from its first height.",
      "verify": "{\"method\":\"hk_getValidators\"} on https://rpc.hashkinetics.org → count 6 (5 at the time) incl. address 175D9A8EA5934E2AE3E267AC62C91751E6663D87; {\"method\":\"hk_getBlock\",\"params\":{\"height\":72219}} → set_changes[0].change = admit (field present since v0.15.2); docs/V1-VALIDATOR-SET-CHANGES.md; CHANGELOG.md [0.15.2] receipt."
    },
    {
      "id": "second-external-seat",
      "date": "2026-09-06T05:40:00Z",
      "status": "measured",
      "claim": "A second external validator was seated on the running testnet-1 chain: an independent operator on a Linux VPS in Asia whose node had reached height 93197 with the same app_hash as the public chain (block 93198's parent_app_hash) was admitted by a validator-set change certificate approved by 4 of 5 seats' SLH-DSA-192s roots — every approval signed from a sealed key file — committed in block 96629 and effective from 96630: validator set 5 → 6, power 6, no new genesis, chain never paused; commit certificates carry 5 signatures from that height. External operators now hold 2 of 6 seats.",
      "verify": "{\"method\":\"hk_getValidators\"} on https://rpc.hashkinetics.org → count 6 incl. address 97E166933F4DF6CA762B962C3CFA0F8DBC177542; {\"method\":\"hk_getBlock\",\"params\":{\"height\":96629}} → set_changes[0].change = admit, approvals 4; {\"method\":\"hk_getBlock\",\"params\":{\"height\":96630}} → certificate.signatures = 5; CHANGELOG.md [0.16.1] receipt."
    },
    {
      "id": "s-k-storage-and-sealed-keys",
      "date": "2026-09-05",
      "status": "measured (local gate 33/33; released 2026-09-05 as v0.16.0 and rolled to all four founding hosts the same day, 14:49–15:30 UTC — ~81,000 per-height block files became 79 segments per host while the chain kept deciding; three external nodes on the roll call afterwards)",
      "claim": "v0.16.0: the block log packs completed runs of 1,024 blocks into segment files off the commit path (a node on testnet-1 goes from ~76,000 files to ~74 segments plus the hot tail), whole old segments can be pruned with HK_RETAIN_BLOCKS while hk_chainInfo.history.retain_blocks says so, the search index persists across restarts, and every secret file — the validator seed, account/wallet files, the GUI wallet's files — can be stored sealed (HKE1: Argon2id 512 MiB × 4 passes, run once per unlock with the derived key cached → XChaCha20-Poly1305; weak passphrases refused, a 7-word generator, an optional key file as a second factor) with the passphrase coming from the environment, a file, a systemd credential or a prompt; a sealed validator seed still votes. The faucet became a hot wallet with a small float, refilled from a cold treasury, and refuses below a reserve instead of burning a signature index.",
      "verify": "chain/gate-s.sh in the repository (index + previous snapshot written, restart restores the index from disk, an observer reports retain_blocks, a sealed key refuses without or with a wrong passphrase and votes with the right one, a sealed wallet directory sends and stays sealed, the faucet reports the watermark and answers 503 dry); {\"method\":\"hk_chainInfo\"} on https://rpc.hashkinetics.org → history.retain_blocks (null = archive); https://faucet.hashkinetics.org/health → low, drips_left; docs/VALIDATOR-ONBOARDING.md §5a/§5b, docs/FAUCET-RUNBOOK.md, docs/MAINNET-KEY-MANAGEMENT.md."
    },
    {
      "id": "h3-paged-pool-feed",
      "date": "2026-09-06",
      "status": "measured (local gate 22/22; released 2026-09-06 as v0.16.1 and rolled to all four founding seats the same morning, 07:35–08:00 UTC, each restarting from a sealed key and proven voting; the public RPC answers hk_getPoolPath)",
      "claim": "v0.16.1: the shielded-pool feed no longer grows without bound for a client — hk_getPoolNotes and hk_getPoolLeaves are paged (from/limit, at most 10,000 entries per call, total and next in the answer), a new hk_getPoolPath answers one 32-sibling authentication path per leaf, and the desktop wallet v0.14.1 keeps a scan cursor and its found notes in shield.json (sealed with it when the wallet is protected), so a rescan reads only what the pool appended and a spend downloads one path instead of every commitment. Trust boundary stated plainly: the wallet re-folds the path and refuses one that does not reach the stated root; the proof binds that root and the chain accepts it only while it is a recent anchor, so a lying node can cost a rejected transaction, never a coin.",
      "verify": "chain/gate-h3.sh in the repository (22/22: paging shapes, pages concatenate to the whole, hk_getPoolPath folds to hk_getPoolInfo.root, a spend against the paged node, a cursor at 3 receives exactly the two new entries); hk-node pool-path https://rpc.hashkinetics.org 0 after the fleet roll; docs/RPC.md; CHANGELOG.md [0.16.1]."
    },
    {
      "id": "r11-verify-only-client",
      "date": "2026-09-06",
      "status": "measured (local gate 29/29 GREEN; released 2026-09-06 as v0.17.0 and rolled to all four founding seats 09:54–10:03 UTC, each restarting from a sealed key and proven voting: resident set 6,727 / 6,215 / 6,457 / 6,088 MiB → 59 / 56 / 54 / 58 MiB, verifier init 795 / 1,168 / 1,011 / 1,401 ms, start → RPC 6 / 15 / 13 / 16 s — was 3–6 min; the public RPC reports process.rss_bytes ≈ 58 MiB)",
      "claim": "v0.17.0: the node verifies STARKs with a verify-only client. Through v0.16.1 every node built the proof-system's full CPU prover at start-up just to call verify — the recursion programs for every shard shape, the shrink and wrap provers — which cost the fleet's 2-vCPU hosts 3–6 minutes from start to an answering RPC and ~6.7 GB of resident memory that never produced a proof (the '8 GB minimum' line in the onboarding doc). v0.17.0 builds sp1-sdk's LightProver instead: the verifier machines and the pinned recursion-vk root, nothing that proves. Verification runs through the same SP1Verifier code path with the same embedded vk root, so what the fleet accepted before it accepts now and what it refused it still refuses — client-only, no consensus change. Every node now publishes its own resident set, uptime and verifier start-up time in hk_chainInfo.process, so the RAM requirement is a number anyone can check rather than a claim; the onboarding line was lowered to 4 GB minimum / 8 GB comfortable in the same commit as the roll receipt.",
      "verify": "chain/gate-r11.sh in the repository (every lab chain node logs the verify-only client and never a proving engine; verifier_init_ms < 10 s and RSS < 1.5 GiB on all four; demo-shielded under the light client: core proofs commit, a nullifier replay is refused at admission and a forged proof by consensus with a receipt; demo-agg under the light client: three compressed spends in one aggregate STARK verified per block; node0 restarted on its persisted home is back on RPC in under 30 s); curl -s -X POST https://rpc.hashkinetics.org -d '{\"method\":\"hk_chainInfo\"}' → process.rss_bytes / verifier_init_ms after the fleet roll; docs/RPC.md; docs/CAPACITY-SHEET.md §g; CHANGELOG.md [0.17.0]."
    },
    {
      "id": "g1-bootstrap-governance",
      "date": "2026-09-06",
      "status": "released 2026-09-06 as v0.18.0 (activation height 200,000; local gate chain/gate-g1.sh 40/40 GREEN, gate-v1 25/25, gate-n1 20/20, rehearsal GREEN) and re-released the same evening as v0.18.1 with the activation moved to height 110,000 (v0.18.0 withdrawn, never rolled); activated on testnet-1 at height 110,000 (2026-09-06 18:43 UTC): the public RPC answers total_power 18, founding_power 16, quorum_power 13, founders_alone_decide true, bootstrap.active true; block 110,001 builds on the post-activation app_hash and every commit certificate since carries 4–5 of 6 seats in round 0 (quorum 13 of 18 met on every block); all three external nodes on v0.18.1 followed through; the chain never paused (97 blocks in the 5 minutes after, 3.2 s/block)",
      "claim": "v0.18.0: bootstrap governance. Two external seats at power 1 left the four founding seats below two-thirds of a six-seat set: a set change needed an external co-signature and the chain's liveness depended on two external machines. At height 110,000 every node re-weights the four genesis seats (the ceremony roots listed in genesis.json) to voting power 4, effective 110,001 — a rule hard-wired to the chain id in the binary, applied identically on live commits, on restart replay and on a sync from genesis, so it is exactly as authoritative as the genesis and cannot be faked by a certificate. Founders then hold 16 of 18: they decide blocks and pass set changes alone, up to seven external seats of power 1; external seats keep proposing in turn and their votes are in every certificate they sign; no external machine going down can stall the chain. The same release adds SetChange::SetPower, a certificate under the unchanged supermajority rule that re-weights one seat in place — the handover tool by which the founders lower their own weight on a dated milestone, with a receipt per change; the 30-day soak clock starts when external seats hold at least a third. Every node must run v0.18.1 before the height (a node that does not stops following at the first commit certificate it cannot make a quorum of).",
      "verify": "chain/gate-g1.sh in the repository (activation at lab chain height 40: power 1 per seat and bootstrap.active false before; 4-4-4-4, total 16, quorum 11 and founders_alone_decide on every node at H+1 with identical app_hash; a fifth seat admitted on three founding approvals; SetPower 1 → 3 by certificate; the external node killed and the chain advancing; node0 restarted on its persisted home re-derives the weights; node5 synced from genesis across the activation); curl -s -X POST https://rpc.hashkinetics.org -d '{\"method\":\"hk_getValidators\"}' → bootstrap {height 110000, founding_power 4, active}, quorum_power, founders_alone_decide; docs/V1-VALIDATOR-SET-CHANGES.md §6; CHANGELOG.md [0.18.0]."
    },
    {
      "id": "r15-fast-consensus-signing",
      "date": "2026-09-08",
      "status": "released 2026-09-08 as v0.18.2 (client-only; unit receipts on the release build: r15_cached_signing_is_faster → cached 179 µs vs 18,456 µs on the old path with only the cache fix; byte-equality across two bottom-tree rollovers, rollback, failed persistence write and restart tests green; local gate-h3 22/22, gate-n1 20/20, ceremony rehearsal GREEN on the shipped binary; 4-seat bench 8.77 blocks/s unpaced, 0.91 blocks/s with the default 1 s floor, from 0.675 on v0.18.1); fleet roll 2026-09-08 17:57–18:07 UTC: all four founding seats, one at a time, each proven voting, chain never paused, resident 55–60 MiB per seat; public cadence 3.53 → 2.95 s/block with three external seats still on v0.18.1 — every founding seat's height measures 1.0 s (the floor), Eddy's seat (upgraded within 30 minutes) 1.0 s, JK's 2.0 s, WUMP's 7.0 s per cycle; 1.0 s/block expected once the last two seats upgrade",
      "claim": "v0.18.2: every consensus signature costs 179 µs instead of ~450 ms. Found and measured by an external validator operator (Eddy) on the v0.18.1 sources: 447.7 ms median, 787 ms p95 per HSS H10/H5 signature versus 12.3 ms for an H5-only signer. Two causes: the vendored hbs-lms crate compared its aux-cache HMAC against everything after the cached layers, so the node's 256 KiB buffer failed validation on every signature and the top tree's authentication path was regenerated from ~1,000 one-time key generations each time; and the expanded key was rebuilt from the compressed one per call. The fix bounds the MAC compare to one hash (still HMAC-checked) and keeps the expanded key and a node cache of the current bottom tree between signatures, rebuilt at rollover or after a rollback. Signatures are byte-identical (deterministic LM-OTS), the on-disk state format is unchanged, verification is untouched: no consensus rule, no deadline. With signing this cheap an unpaced 4-seat lab chain decided every 0.11 s, so the same release adds a block-time floor: a round-0 proposer waits until HK_MIN_BLOCK_INTERVAL_MS (default 1000 ms) has passed since its last commit — local pacing, not a rule; expect ~1 s blocks on testnet-1 (from 3.2 s) once the founding seats have rolled. The project's first diagnosis (storage latency) was wrong and is corrected in the changelog.",
      "verify": "cd chain && cargo test --release -p hk-crypto --features lms -- r15_ --nocapture (prints 'R15 median per signature: cached … us, uncached … us'; the four r15_ tests pass); vendor/external/hbs-lms-rust: cargo test -- signing_session aux_cache; the patch is vendor/external/hbs-lms-rust/src/hss/{aux.rs,mod.rs} + chain/crates/hk-crypto/src/hashsig.rs; after the roll: hk_chainInfo.node_version v0.18.2 on https://rpc.hashkinetics.org and commit certificates in round 0"
    },
    {
      "id": "p6-multi-asset-pool",
      "date": "2026-09-09",
      "status": "released 2026-09-09 as v0.19.0 (consensus change; activation at testnet-1 height 190,000, named 2026-09-08 21:53 UTC at tip 163,659; chain/gate-p6.sh 48/48 GREEN with real proofs; unit p6_ tests green); fleet roll released 2026-09-08 22:28 UTC; fleet rolled 22:39-22:48 UTC (val-1, val-0, val-2, gateway, each VOTING before the next; the chain never paused); hk_getPools on every seat and on the public RPC: count 1, multi_pool_from 190000; the first second-asset shield lands with the bridge (B1)",
      "claim": "v0.19.0: one shielded pool per asset. The v1 pool was single-asset (the first shield pinned the test asset). From height 190,000 every registered, pool-eligible asset gets its own pool — commitment tree, anchors, nullifier set, conservation ledger — created on its first shield; a spend acts on the pool whose recent anchors carry its anchor; a note lives in exactly one tree and can never cross pools. The circuit, the proving keys, the note format and the wallets are untouched; the anonymity set is per asset. The state commitment carries the pools section only once a second pool exists, so pre-P6 and P6 nodes agree on every block until then.",
      "verify": "cd chain && cargo test --release -p hk-state -- p6_ (routing, isolation, snapshot round trip) and ./gate-p6.sh on a lab chain with hk-prove; after the roll: curl -s -X POST https://rpc.hashkinetics.org -d '{\"method\":\"hk_getPools\"}' → count 1, multi_pool_from 190000 until the first second-asset shield, then count 2 with its own root and ledger; docs/P6-MULTI-ASSET-POOL.md"
    },
    {
      "id": "lawful-access-model",
      "date": "2026-09-09",
      "status": "published model; instruments labelled LIVE are demo-gated on the running chain, the rest are plan (P3.3 / research)",
      "claim": "Lawful access without a master key. Disclosure is selective, process-bound and offline-verifiable: a one-time disclosure package opens exactly one payment (measured: 0 of the other 21 commitments) and epoch viewing keys expose one wallet's incoming notes for one epoch with no spend authority — both LIVE; the pool's conservation total, nullifier set and validator set are public, so hidden inflation is impossible. Planned under P3.3: an organization's standing viewing key over its own MandateTree subtree, consensus-required IVMS-101 travel-rule envelopes at registered ramps, bonded completeness attestations. Decision D8 (2026-08-26, constitutional): no master view key exists and the commitment scheme has no slot to add one. The model page is a public draft under counsel review, not legal advice.",
      "verify": "https://github.com/hashkinetics/hashkinetics/blob/main/docs/LAWFUL-ACCESS.md; `hk-node wallet disclose` + `hk-node verify-disclosure` in the repository (the 0-of-21 receipt: /receipts); https://www.hashkinetics.org/#lawful-access"
    },
    {
      "id": "front-page-live-readings",
      "date": "2026-09-09",
      "status": "measured in the reader's browser",
      "claim": "The home page reads the shielded pool (hk_getPools: notes in the tree, nullifiers, conservation total, pool count) and measures the block interval from two hk_chainInfo heights on its own clock — never from a block's time field, which is a deterministic chain clock. Quoted throughput stays labelled by its row: 274 tx/s sustained is a 4-validator lab chain number (storm harness, 1,024-tx blocks, 2026-08-27); the 30-minute public-testnet run is the receipt that would make it a network number.",
      "verify": "https://www.hashkinetics.org/#throughput; vercel source app/shielded-live.tsx in the website repository; docs/CAPACITY-SHEET.md"
    },
    {
      "id": "p6-activated-190000",
      "date": "2026-09-09",
      "status": "measured on testnet-1",
      "claim": "P6 (one shielded pool per asset, v0.19.0) activated at height 190,000 on testnet-1 at about 08:47 UTC on 2026-09-09. All seven seats ran v0.19.0 before the height (roll call 06:57 UTC); the certificate shape was unchanged through it and no seat was lost. hk_getPools answers count 1, multi_pool_from 190000 — the legacy pool (the test asset) plus the door for a second one.",
      "verify": "POST https://rpc.hashkinetics.org {\"method\":\"hk_getPools\"} → multi_pool_from 190000; {\"method\":\"hk_getBlock\",\"params\":{\"height\":190001}} → parent_app_hash 539f5ce4…; chain/gate-p6.sh 48/48 on a lab chain"
    },
    {
      "id": "bridge-first-loop",
      "date": "2026-09-09",
      "status": "measured on testnets (Sepolia 11155111 ↔ testnet-1)",
      "claim": "The first cross-chain loop closed both ways: 20 Circle test USDC locked in HKVault 0x989Cb35485d16c7b19Dff890b617984EeD9970aF on Sepolia (tx 0x0a8d4b58…30b09, block 11,666,663, 08:02 UTC) naming a testnet-1 account → after Ethereum finality (19 min) the bridge minted 20 USDC.sep (txid 2d8a80e5…3ccfb0, height 188,826) → the account burned 5 USDC.sep to a Sepolia address (txid 9051289e…d981c, height 190,324) → the vault released 5 USDC 90 s later (tx 0xfdd45642…e046, block 11,666,916, 08:54:36 UTC). Afterwards vault balance 15 = supply 20 − burned 5. Trust label: hash-based keys on the HashKinetics side; ONE ECDSA attestor key (1-of-1, founder-run) on the Ethereum side today — the bridge is as safe as that key. Test value only.",
      "verify": "Etherscan Sepolia for the two txs; https://rpc.hashkinetics.org hk_getTx for the mint/burn txids and hk_getAsset 0c3c3f40884ef40aee41d2ae2b823c8cc1e2c0859172ef20ff899f015442c0f1 for supply/burned; docs/BRIDGE-GUIDE.md; bridge/contracts (forge test 28/28); chain/gate-b1.sh 50/50 on a lab chain + anvil"
    },
    {
      "id": "bridge-reverse-leg",
      "date": "2026-09-09",
      "status": "measured on testnets (testnet-1 → Sepolia → testnet-1)",
      "claim": "The reverse leg closed the same morning: the bridge issuer minted a 10 HKT float (txid 25e8af86…, height 194,176); the account burned 4 HKT naming a Sepolia address (txid 34e1a6af…, height 194,328) and about a minute later HKWrapped 0x24159bE1577f3016AD64beA7D1430e5F2313DB26 minted 4 wHKT.sep there (tx 0x725ed38d…, block 11,667,365); HKWrapped.burn(1, account) (tx 0x0cb4ac11…, block 11,667,380) → after Ethereum finality the issuer minted 1 HKT back (txid 54d57650…, height 195,196). wHKT.sep supply 3 = HKT burned 4 − re-minted 1. Same trust label as the forward leg: one attestor key today.",
      "verify": "Etherscan Sepolia for the two txs; https://rpc.hashkinetics.org hk_getTx for the three txids; hk_getAsset f2b88facb835a9e331b51772cf98cbcb95d6c86233324d252fd4c9edd8fbbcea → supply 11,000,000 burned 4,000,000; docs/BRIDGE-GUIDE.md"
    },
    {
      "id": "fourth-external-seat",
      "date": "2026-09-09",
      "status": "measured on testnet-1",
      "claim": "A fourth external validator was seated on the running testnet-1 chain on 2026-09-09 ≈ 16:10 UTC: an independent operator whose node had synced from genesis on v0.19.0 (his height-6,620 app_hash matched the public chain; at the tip, 205,359, before submission) was admitted by a validator-set change certificate approved by the four founding seats' SLH-DSA roots (16 of 19 > ⅔, window 185,238–225,188), committed in block 209,149, effective 209,150 — 8 seats, voting power 20 (founders 16, external 4), quorum 14, no new genesis, chain never paused. Consensus address 06EF4D8749BD61F3617E48CDDF3666FEF8CAD4D5, root da3c3efa….",
      "verify": "POST https://rpc.hashkinetics.org {\"method\":\"hk_getBlock\",\"params\":{\"height\":209149}} → set_changes[{change: admit, approvals: 4, root_pk: da3c3efa…, voting_power: 1, not_before: 185238, not_after: 225188}]; {\"method\":\"hk_getValidators\"} → count 8, total_power 20"
    },
    {
      "id": "seventh-external-seat-last-founders-alone-admission",
      "date": "2026-09-12",
      "status": "measured on testnet-1",
      "claim": "A seventh external validator — ATTO, a Discord operator at 43.130.11.0/24 — was seated on the running testnet-1 chain on 2026-09-12 ≈ 10:02 UTC: its node synced from genesis on v0.19.0, its height-377,719 app_hash abeac5b6… matched the public chain's parent_app_hash at 377,720, and it was admitted by a validator-set change certificate approved by the four founding seats' SLH-DSA roots (16 of 22 > ⅔, window 378,299–418,249), committed in block 379,143, effective 379,144 — 11 seats, voting power 23 (founders 16, external 7), quorum 16, no new genesis, chain never paused. Consensus address 28BD83BC2B8FBBB2D7B267C0266F3B25631C7EF7, root 4de79d0d…. Twenty-nine minutes from the operator's hk_chainInfo to the commit. This is the last admission the founding roots can pass alone under G1: at 12 seats 16 of 24 is exactly two-thirds, which the rule does not accept.",
      "verify": "POST https://rpc.hashkinetics.org {\"method\":\"hk_getBlock\",\"params\":{\"height\":379143}} → set_changes[{change: admit, approvals: 4, root_pk: 4de79d0d…, voting_power: 1, not_before: 378299, not_after: 418249}]; {\"method\":\"hk_getValidators\"} → count 11, total_power 23"
    },
    {
      "id": "sixth-external-seat-first-professional-operator",
      "date": "2026-09-11",
      "status": "measured on testnet-1",
      "claim": "A sixth external validator — the first professional operator, 1XP (Seoul; PoS infrastructure since 2018, 30+ networks, Wormhole Guardian operations, ISO 27001) — was seated on the running testnet-1 chain on 2026-09-11 ≈ 11:59 UTC: its node synced from genesis on v0.19.0, its height-318,638 app_hash ca404d05… matched the public chain's parent_app_hash at 318,639, and it was admitted by a validator-set change certificate approved by the four founding seats' SLH-DSA roots (16 of 21 > ⅔, window 319,342–359,292), committed in block 319,494, effective 319,495 — 10 seats, voting power 22 (founders 16, external 6), quorum 15, no new genesis, chain never paused. Consensus address F09B82019257EA933A7B8BDD2A6872531E97B10E, root f350f55e…. Eleven minutes from the operator's e-mail to the commit.",
      "verify": "POST https://rpc.hashkinetics.org {\"method\":\"hk_getBlock\",\"params\":{\"height\":319494}} → set_changes[{change: admit, approvals: 4, root_pk: f350f55e…, voting_power: 1, not_before: 319342, not_after: 359292}]; {\"method\":\"hk_getValidators\"} → count 10, total_power 22"
    },
    {
      "id": "fifth-external-seat",
      "date": "2026-09-11",
      "status": "measured on testnet-1",
      "claim": "A fifth external validator was seated on the running testnet-1 chain on 2026-09-11 ≈ 05:07 UTC: an independent operator whose node had synced from genesis on v0.19.0 (his height-301,740 app_hash 2cdf3f59… matched the public chain's parent_app_hash at 301,741; at the tip when reported) was admitted by a validator-set change certificate approved by the four founding seats' SLH-DSA roots (16 of 20 > ⅔, window 303,108–343,058), committed in block 303,291, effective 303,292 — 9 seats, voting power 21 (founders 16, external 5), quorum 15, no new genesis, chain never paused. Consensus address 79812BC7432CF5FC2C58C6D6C5BD91FEDF6222C1, root 68ca3352….",
      "verify": "POST https://rpc.hashkinetics.org {\"method\":\"hk_getBlock\",\"params\":{\"height\":303291}} → set_changes[{change: admit, approvals: 4, root_pk: 68ca3352…, voting_power: 1, not_before: 303108, not_after: 343058}]; {\"method\":\"hk_getValidators\"} → count 9, total_power 21"
    },
    {
      "id": "bridge-first-external-user",
      "date": "2026-09-09",
      "status": "measured on testnets",
      "claim": "The first person outside the team used the bridge on its first day: an external validator operator (Eddy) locked 5 USDC from his own wallet on hashkinetics.org/bridge at 16:42 UTC (Sepolia tx 0x313bcd3e…, block 11,669,182) naming an account he had created through the faucet, and after Ethereum finality the bridge minted 5 USDC.sep to it at height 211,097 (txid af28c8e8…) with nobody on the team at the keyboard. Vault 20 = supply 25 − burned 5.",
      "verify": "Etherscan Sepolia tx 0x313bcd3ec771f0c505bdd8962e25db471f199f259902dbe9f08a3016669825ad; https://rpc.hashkinetics.org hk_getTx af28c8e834d63c429e7b164dc4115211e54783aab50afe0325d51b9391c9f570; his message in #testnet, 16:50 UTC"
    },
    {
      "id": "first-shielded-usdc-sep",
      "date": "2026-09-09",
      "status": "measured on testnet-1",
      "claim": "Bridged USDC was shielded on a post-quantum chain: 2 USDC.sep shielded into its own pool (txid 5ae652ee…, height 214,097, mint proof 1,056 ms on the public prover — hk_getPools went from 1 to 2 pools), a 0.5 USDC.sep payment to a stealth address with zero transparent trace (txid 4ddf106e…, height 214,209: one nullifier, two commitments), and 1 unshielded back (txid ddf359d2…, height 214,225). The USDC.sep pool: 5 leaves, 2 nullifiers, conservation total 1,000,000. Shielding leaves supply − burned unchanged, so the bridge invariant held throughout.",
      "verify": "POST https://rpc.hashkinetics.org {\"method\":\"hk_getPools\"} → count 2, the 0c3c3f40… pool with total_shielded 1000000; hk_getTx for the three txids; the CLI path is in docs/BRIDGE-GUIDE.md; the CLI path ships in hk-node v0.19.1 (hk-node-v0.19.1.gz sha256 a8e6c78af9f320452881030b6d848869bc463956fa97e1f411591410bb9a8654)"
    },
    {
      "id": "privacy-chain-comparison",
      "date": "2026-09-10",
      "status": "documented (competitor cells from public documentation; HashKinetics cells measured on testnet-1 / a 4-validator lab chain, or labelled plan)",
      "claim": "Against Monero, Zcash, Firo, Secret/Oasis and Dash/Decred, HashKinetics is the only column whose money path — spend signatures, validator votes, the proof system and stealth addressing — contains no elliptic curve (hash-based signatures, STARKs, ML-KEM-768); the only one with spending budgets enforced by consensus over hidden balances; the only one with a one-time offline-verifiable disclosure of exactly one payment plus issuer freeze/pause and no slot for a master key; the only one with native payment channels (~180,000 payments/s effective by arithmetic: 183 settles/s × 1,000-payment chains; 274 tx/s on-chain measured on a 4-validator lab chain). And the only one without a mainnet, audits or liquidity — testnet-1, 11 seats, pre-audit.",
      "verify": "https://www.hashkinetics.org/#compare; the full 30-row chart with sources and the cells under review: docs/PRIVACY-CHAIN-COMPARISON.md; each competitor claim traces to that project's own documentation as of 2026-09"
    }
  ],
  "how_to_verify_everything": [
    "1. curl the RPC liveness probe above — the chain answers with height, chain_id, and signer epoch.",
    "2. git clone https://github.com/hashkinetics/hashkinetics && cargo test",
    "3. Follow networks/testnet-1/README.md to join as a verifying node: the kit carries the pinned genesis AND the verifying keys (vks.json) — no prover, no environment variable. Verify sha256sum genesis.json first.",
    "4. Watch your own node re-verify every block and land on the same app_hash the fleet reports.",
    "4b. Since v0.15.2: the moment your node connects, https://www.hashkinetics.org/network#live lists it (hk_getPeers on the public RPC — the gateway's own peer table, addresses masked by the node). If it does not appear, one of us is wrong; say so.",
    "5. Anything this file claims that your node contradicts: tell us publicly. That is the point of this file."
  ],
  "generated": "2026-09-09",
  "canonical": "https://www.hashkinetics.org/facts.json"
}
