Start here
HashSigs RHDL is easiest to understand in four layers:
- Cryptographic contract. Learn the two profiles, WOTS parameters, message digest boundary, and one-time-key requirement.
- Task graph. Follow one signer or verifier job through contexts, tags, hash lanes, result framing, and backpressure.
- Source hierarchy. Move from host-side oracle types to leaf kernels, cluster controllers, production tops, and deterministic RTL export.
- Evidence. Ask what was actually executed: source simulation, generated RTL, synthesis, route, or a card.
The project is not a Solana integration. It also does not implement a Merkle tree or turn WOTS into a many-time signature. Applications that need many signatures must supply a reviewed one-time-key allocation and authentication scheme above this primitive.
Fast orientation
| Question | Answer |
|---|---|
| What is signed? | An already-hashed, domain-separated 32-byte message digest |
| Signature size | 2,144 bytes: 67 × 32-byte chain values |
| Public key wire size | 64 bytes: public seed plus endpoint hash |
| Fused signer output | 2,208 bytes in 35 512-bit beats |
| Active signer | SHA-256, three clusters, four contexts each |
| Active hardware verifier | SHA-256 only, three clusters, four contexts each |
| Legacy compatibility | Software oracle plus Keccak/RHDL compatibility tests |
| Hardware language | Cryptographic datapaths are Rust/RHDL; Verilog is generated |
Next, make a first change in 30 minutes, choose a reading path, or build locally.