Verify every block yourself. No trust in our server needed.
A QSDM full node keeps the whole chain and checks every block on its own machine: the block hash, the producer's ML-DSA-87 signature and the state root. It follows the network over HTTPS from the public API, which it trusts only to deliver blocks, never to decide what is valid. It needs no inbound port, and it does not mine or produce blocks.
The values to pin
These values are published here, separately from the download, on purpose. Check the files you download against them, and check the checkpoint against the public API as well. If anything differs, stop.
| Full-node release | hardened-legacy-20261019-d7ffcd4-hl2-edge-go1269-ids-pqe-rc1019 |
qsdm binary SHA-256 | 5b0993f555506d9a6df3be585926c82c15f80273288a11697aeeaa8f7051ae2e |
Release signing key (release key v2) key_id | 4081bf2c4755f4c5c1565b4fac75e14a7e0b52042ac3d34bf8a7f525866c64a9 |
| Snapshot checkpoint height | 880376 |
| Checkpoint block hash | a8a80c6b9e15fadd61cc263795b466d551f15da987b73e4da601f6fc6f50511e |
| Checkpoint state root | 5e58629946d9dd2e5643249e0a18494d29446e9ad82fc562e1e064a5efdcf0e1 |
| Checkpoint producer | 1cf60b16cf9aee5e8eaf67a8518a2b2ba7bc54f2dd607f05bc5a861b7a94c859 |
Check the checkpoint with the public API:
curl -s "https://api.qsdm.tech/api/v1/chain/blocks?from=880376&to=880376&limit=1"
How it works
- Download the signed full-node release, the chain snapshot and the ready-made configuration from the GitHub release.
- Verify the release signature and checksums, and the snapshot checksums, against the values above.
- Import the snapshot: the node re-checks the whole chain from genesis against the checkpoint you pinned and refuses on any mismatch.
- Start the node. It catches up from the checkpoint over HTTPS and then follows the chain, checking every block.
You need Linux on x86_64, 10 to 12 GB of RAM and about 15 GB of disk during setup. The step-by-step guide has every command.