Skip to content

roadmap · 28 QDPs

Shipped. In flight. Queued.

Every protocol feature ships as a numbered Quidnug Design Proposal (QDP): problem, rationale, compatibility, migration. Status moves from Draft → Review → Accepted → Landed on main.

28QDPs landed
17use cases designed
19SDK bindings
17integrations

Design proposals

# Title Status Read
0000 QDP-0000: The QDP Process landed Open →
0001 QDP-0001: Global Nonce Ledger landed Open →
0002 QDP-0002: Guardian-Based Recovery landed Open →
0003 QDP-0003: Cross-Domain Nonce Scoping landed Open →
0004 QDP-0004: Phase H Roadmap — Residual Protocol Work landed Open →
0005 QDP-0005: Push-Based Gossip for Anchors and Fingerprints (H1) landed Open →
0006 QDP-0006: Guardian-Consent Revocation (H6) landed Open →
0007 QDP-0007: Lazy Epoch Propagation (H4) landed Open →
0008 QDP-0008: Snapshot K-of-K Bootstrap Protocol (H3) landed Open →
0009 QDP-0009: Fork-Block Migration Trigger (H5) landed Open →
0010 QDP-0010: Compact Merkle Proofs (H2) landed Open →
0011 QDP-0011: Client Libraries & Integrations Roadmap landed Open →
0012 QDP-0012: Domain Governance landed Open →
0013 QDP-0013: Network Federation Model landed Open →
0014 QDP-0014: Node Discovery and Domain Sharding landed Open →
0015 QDP-0015: Content Moderation & Takedowns landed Open →
0016 QDP-0016: Abuse Prevention & Resource Limits landed Open →
0017 QDP-0017: Data Subject Rights & Privacy landed Open →
0018 QDP-0018: Observability, Audit, and Tamper-Evident Operator Log landed Open →
0019 QDP-0019: Reputation Decay & Time-Weighted Trust landed Open →
0020 QDP-0020: Protocol Versioning & Deprecation landed Open →
0021 QDP-0021: Blind Signatures for Anonymous Ballot Issuance landed Open →
0022 QDP-0022: Timed Trust & TTL Semantics landed Open →
0023 QDP-0023: DNS-Anchored Identity Attestation landed Open →
0024 QDP-0024: Private Communications & Group-Keyed Encryption landed Open →
0025 QDP-0025: Quidnug Explorer landed Open →
Quidnug Design Proposals landed Open →
QDP-NNNN: Short Title in Title Case landed Open →

Phased roadmap

Verbatim from docs/roadmap.md.

# Quidnug Project Roadmap

The strategic view of where Quidnug is going. Updated to reflect
ground truth as of Q2 2026.

For the per-feature implementation history, see the numbered
design docs under [`design/`](design/), the unreleased block in
[`../CHANGELOG.md`](../CHANGELOG.md), and the individual
`README.md` files under `clients/`, `integrations/`, and
`UseCases/`.

---

## Where we actually are

The protocol is stable. The reference node, full multi-language
SDK surface, and first-wave integrations are all shipped. The
current frontier is in **usability and ecosystem**, not in
protocol gaps.

### Protocol (done)

All ten core design proposals have landed and are reflected in
the live code:

| QDP | Title | Status |
| --- | --- | --- |
| 0001 | Global Nonce Ledger | Landed |
| 0002 | Guardian-Based Recovery | Landed |
| 0003 | Cross-Domain Nonce Scoping | Landed |
| 0004 | Phase H Roadmap | Landed |
| 0005 | Push-Based Gossip (H1) | Landed |
| 0006 | Guardian Resignation (H6) | Landed |
| 0007 | Lazy Epoch Propagation (H4) | Landed |
| 0008 | K-of-K Snapshot Bootstrap (H3) | Landed |
| 0009 | Fork-Block Migration Trigger (H5) | Landed |
| 0010 | Compact Merkle Proofs (H2) | Landed |
| 0011 | Client Libraries & Integrations roadmap | Landed (all four tiers shipped) |
| 0012 | Domain Governance (cache replicas / consortium / governors) | **Phase 1 landed** — `TrustDomain` struct extended with `Governors`, `GovernorPublicKeys`, `GovernanceQuorum`, `GovernanceNonce`, `ParentDelegationMode`, `DelegatedFrom` fields (all `omitempty`); `RegisterTrustDomain` populates a single-registrant fallback (registrant is sole governor, quorum 1.0); `IsGovernor`, `IsConsortiumMember`, `Role`, `GovernorQuorumWeight` helpers. Backward-compatible: pre-Phase-1 JSON round-trips cleanly. Phase 2 (`DOMAIN_GOVERNANCE` tx), Phase 3 (fork-activated enforcement), Phases 4-6 (CLI + monitoring + legacy deprecation) pending. |
| 0013 | Network Federation Model (one protocol, many networks) | Draft — mostly clarifies existing uniformity; new surface is `external_trust_sources` config + `TRUST_IMPORT` transaction |
| 0014 | Node Discovery + Domain Sharding | **Landed** — `NODE_ADVERTISEMENT` tx + registry + expiry GC, five discovery endpoints, per-domain quid index, CLI + client SDK, signed `.well-known/quidnug-network.json` generator |
| 0015 | Content Moderation & Takedowns | **Phase 1 landed** — `MODERATION_ACTION` tx type + full 12-rule validator, per-target registry with supersede-chain resolution, max-severity scope composition (suppress > hide > annotate), serving-time filter on event streams (both subject-QUID and per-event TX targets), `?includeHidden=true` admin escape hatch, `POST /moderation/actions` + `GET /moderation/actions/{targetType}/{targetId}` endpoints. Phases 2-5 (CLI, federation import, dashboard, transparency report generator) pending. |
| 0016 | Abuse Prevention & Resource Limits | **Phase 1 landed** — `MultiLayerLimiter` in `internal/ratelimit` composing per-quid / per-operator / per-domain token buckets (the pre-existing per-IP layer stays at the HTTP-ingress middleware); wired into every mempool admission path (TRUST, EVENT, MODERATION_ACTION, DSR/consent/restriction/compliance) with per-layer denial attribution; `quidnug_ratelimit_denials_total` Prometheus counter. Phases 2-6 (progressive slowdown, PoW challenges, reputation graduation, federation abuse signals, alert rules) pending. |
| 0017 | Data Subject Rights & Privacy | **Phase 1 landed** — five new tx types (`DATA_SUBJECT_REQUEST`, `CONSENT_GRANT`, `CONSENT_WITHDRAW`, `PROCESSING_RESTRICTION`, `DSR_COMPLIANCE`) + validators (enum + self-sign + nonce monotonic + effective-range sanity + validator-only for compliance records) + `PrivacyRegistry` with grant/withdraw/restriction/DSR/compliance indices + read helpers (`HasActiveConsent`, `IsProcessingRestricted`, `RestrictedUsesFor`, `ConsentHistoryFor`, `GetDSRStatus`) + HTTP endpoints for DSR intake, consent history, restriction query, and compliance publish. Phases 2-5 (CLI auto-fulfill, manifest generators, erasure integration, transparency reporting) pending. |
| 0018 | Observability + Tamper-Evident Operator Log | **Phase 1 landed** — new `internal/audit` package with `Entry` / `Log` / `FileStore` and 12-category enum; per-entry hash chain + self-hash for tamper-evidence; disk-backed JSON-lines store with replay on startup; `AuditLog` field on `QuidnugNode` auto-initialized (in-memory fallback if no `audit_log_path` config); `emitAudit` helper hooked into moderation, DSR, consent, withdrawal, restriction, and compliance admission paths plus node-lifecycle `node_start`; `GET /audit/head` + `/audit/entries?since=&limit=` + `/audit/entry/{sequence}` HTTP endpoints. Phases 3-6 (on-chain `AUDIT_ANCHOR` event, Merkle proofs, verifier CLI, Grafana dashboard) pending. |
| 0019 | Reputation Decay & Time-Weighted Trust | **Phase 1 landed** — `TrustEdgeTimestampRegistry` on `QuidnugNode` populated from TRUST tx Timestamps; `DecayConfig` + `DefaultDecayConfig()` (2-year half-life, 0.2 floor) in `internal/core/decay.go`; `EdgeDecayFactor` via `0.5^(age/halfLife)` with floor clamping; `GetDirectTrusteesDecayed` + `ComputeRelationalTrustWithDecay` as opt-in variants (existing `ComputeRelationalTrust` keeps current behavior for backward compat); 9 unit tests covering decay math + path aggregation + observer-specific config. Phases 2-5 (YAML config surface, passive re-endorsement, quid dormancy via QDP-0014 lastSeen, Prometheus metrics) pending. |
| 0020 | Protocol Versioning & Deprecation | Draft — SemVer-based protocol version, capability negotiation, 18-month deprecation timeline, release workflow |
| 0021 | Blind Signatures for Anonymous Ballot Issuance | **Phase 1 landed** — `pkg/crypto/blindrsa` implements RSA-FDH per QDP-0021 (FDHEncode via MGF1-SHA256, Blind/SignBlinded/Unblind/Verify with full-roundtrip determinism, PublicKeyFingerprint for stable key references); 6 crypto tests pass. Node-side `BlindKeyAttestationTransaction` + `BlindKeyRegistry` + `VerifyBallotProof` helper admit + verify ballot proofs end-to-end; 5 integration tests cover lifecycle + rejection paths (unknown fingerprint, out-of-window, fingerprint/key mismatch). Unblocks elections POC. Phases 2-3 (HTTP endpoints for issuance, SDK helpers, HSM integration) pending. |
| 0022 | Timed Trust & TTL Semantics | **Landed** — `ValidUntil` enforcement on TRUST edges + `expiresAt` on EventTransaction payloads; parallel `TrustExpiryRegistry` on node; submission-time rejection of already-expired edges; graph-walk filter in `GetTrustLevel` / `GetDirectTrustees` / `GetTrustEdges`; `FilterExpiredEvents` + `?include_expired=true` on the stream-events endpoint; test-friendly clock override. Unblocks QDP-0017 consent expiry. |
| 0023 | DNS-Anchored Identity Attestation | **Phase 1 landed** — seven event types (`DNS_CLAIM`, `DNS_CHALLENGE`, `DNS_ATTESTATION`, `DNS_RENEWAL`, `DNS_REVOCATION`, `AUTHORITY_DELEGATE`, `AUTHORITY_DELEGATE_REVOCATION`) + `DNSAttestationRegistry` with by-domain/by-root indexes; validation with enum constraints on TLDTier/RigorLevel/RevokerRole/VisibilityClass; 10 HTTP endpoints mounted on `/api/v2/dns/*` (submit + attestations query + weighted query + resolve with delegation pointer); `GetWeightedAttestationsForDomain` uses QDP-0019 decay + transitive trust to score attestations per observer; 4 integration tests (claim admission, full lifecycle with renewal + delegation + revocation, malformed-rejection, weighted query sorting). Phases 2-5 (off-chain verifier, payment settlement, federation import, web UI) pending. Unblocks dns-replacement Phase 0 POC + enterprise-domain-authority POC. |
| 0024 | Private Communications & Group-Keyed Encryption | **Phase 1 landed** — `pkg/crypto/groupenc` implements X25519 (via stdlib `crypto/ecdh`) + AES-GCM-256 + HKDF-SHA256 with the "direct-wrap" key-distribution scheme (QDP §16 Q1 allows this for groups under ~16 members); `WrapEpochKey` / `UnwrapEpochKey` / `EncryptRecord` / `DecryptRecord` + 10 unit tests. Six node-side event types (`GROUP_CREATE`, `EPOCH_ADVANCE`, `MEMBER_KEY_PACKAGE`, `ENCRYPTED_RECORD`, `MEMBER_INVITE`, `MEMBER_KEY_RECOVERY`) + `GroupRegistry` with indexes for groups, latest epoch, epoch history, key packages, encrypted records, pending invites, recovery events. Validation enforces enum constraints + hex length checks on wrapped secrets + X25519 pubkeys. 2 integration tests cover the full enterprise-domain-authority flow (create group, publish key packages, advance epoch, encrypt record, decrypt as member, outsider cannot) + post-compromise security (remove member, new epoch, ex-member cannot decrypt new records). Phase 2 (full TreeKEM for groups over ~16 members, HTTP endpoints, SDK helpers) pending. Unblocks the `private:*` visibility class in QDP-0023's `AUTHORITY_DELEGATE`. |

### Client SDKs (done)

Four tier-1 SDKs are feature-complete with byte-compatible
signatures across the network. Seven additional-language scaffolds
ship a keypair + sign + verify foundation.

- Full: Python 3.9+, Go 1.25+, JavaScript/TypeScript (v1 + v2
  mixin), Rust stable, Quidnug CLI (Go).
- Scaffolds: Java / Kotlin, C# / .NET 8, Swift, Android, browser
  extension, ISO 20022 mapping.

See the root [`README.md`](../README.md) "Client SDKs" table for
install paths.

### Reviews use case (done)

QRP-0001 (the Quidnug Reviews Protocol) is specified, implemented,
and has a live end-to-end demo:

- Full protocol spec and four-factor rating algorithm with
  reference implementations in Python and Go.
- Drop-in packages for every major web framework: web-components,
  React, Vue, Astro, WordPress; Shopify scaffold.
- Three SVG visualization primitives (`<qn-aurora>`,
  `<qn-constellation>`, `<qn-trace>`) used across all framework
  adapters — see [`reviews/rating-visualization.md`](reviews/rating-visualization.md).
- Schema.org JSON-LD integration so SEO-aware search engines
  still get rich-result stars.
- Working end-to-end demo against a live node with three
  divergent per-observer ratings.

### Integrations (done)

Tier-3 domain integrations are shipped:

- Sigstore / cosign (artifact signing)
- C2PA (media provenance)
- HL7 FHIR (healthcare records)
- Chainlink External Adapter (on-chain trust queries)
- Kafka bridge (event streaming)
- ISO 20022 (bank wire messaging)
- Schema.org reviews (SEO)

### Deployment / enterprise identity (done)

- Production-grade Helm chart with StatefulSet, PVCs, PDB, anti-affinity
- Docker Compose dev cluster (three-node + IPFS + Prometheus + Grafana)
- PKCS#11 / HSM signing backend (SoftHSM, YubiHSM, CloudHSM, Azure Key Vault, GCP HSM)
- WebAuthn / FIDO2 bridge (Touch ID, Windows Hello, passkeys, YubiKey)
- OIDC bridge (Okta, Auth0, Azure AD, Keycloak, Google Workspace)
- Grafana dashboard + Prometheus alert rules over the `quidnug_*` metric family
- Postman collection covering every endpoint

---

## Where we're going

The remaining scaffolds + roadmap items, grouped by what they
unlock.

### Launch-gating: implement QDPs 0015 / 0016 / 0017

**Status: Phase 1 of all three landed (2026-04-20).** The
launch-gating protocol floor is in place; remaining work is
CLI tooling, manifest generation, federation wiring, and
operator documentation. See the individual QDP rows above
for per-phase status.

- **QDP-0015 Phase 1** — `MODERATION_ACTION` tx + 12-rule
  validator + per-target registry + serving-time
  suppress/hide/annotate filter wired into event streams.
- **QDP-0016 Phase 1** — `MultiLayerLimiter` wired into every
  mempool admission path with per-layer denial attribution.
- **QDP-0017 Phase 1** — `DATA_SUBJECT_REQUEST`, `CONSENT_GRANT`,
  `CONSENT_WITHDRAW`, `PROCESSING_RESTRICTION`, `DSR_COMPLIANCE`
  tx types + validators + `PrivacyRegistry` with active-consent
  / restriction / DSR-status read helpers.
- **QDP-0022** (supporting) — `ValidUntil` / `expiresAt`
  enforcement; unblocks consent expiry.

Follow-up phases of each QDP (approximately ~3 person-weeks of
operational tooling + CLI + transparency reports) remain open
but no longer gate the initial launch.

### Adoption-driving: implement QDPs 0023 / 0024

**DNS-anchored attestation is the adoption flywheel.** Any
existing DNS domain owner can bind their name to a Quidnug
quid via a standardized, fee-paid verification flow. Every
downstream use case (reviews, interbank wires, credential
verification, agent authorization, content authenticity)
immediately benefits from "verified DNS owner" as a trust
signal, and the generic `AUTHORITY_DELEGATE` primitive lets
enterprises take over resolution authority for their own
domains with split-horizon visibility.

- **QDP-0023 (DNS-Anchored Identity Attestation)** —
  federated attestation roots, transitive trust weighting as
  client convention, tiered fee model. Phase 1
  implementation is ~3 person-weeks (core transaction types
  + validation). Phase 2 reference verifier ~2 weeks. Phase
  3 owner CLI ~1 week. Phase 4 public verification UI ~2
  weeks. Phase 5 federation hardening ~2 weeks. Total ~10
  person-weeks to full deployment.
- **QDP-0024 (Private Communications & Group-Keyed
  Encryption)** — MLS-based encryption backing the
  `private:*` visibility class + general-purpose private
  records use cases. Phase 1 core crypto ~2 weeks. Phase 2
  event types ~1 week. Phase 3 SDK helpers ~2 weeks. Phase
  4 query endpoints ~1 week. Phase 5 docs + examples ~1
  week. Total ~7 person-weeks.

Sequenced after the launch-gating QDPs (0015/0016/0017)
follow-up phases. Design docs are complete; implementation
target is 2026-Q3.

### Near-term: close the scaffold gap

Currently scaffolded but not production-complete. Each needs a
feature-parity sweep.

- **Mobile SDKs** (Swift iOS / Kotlin Android) — full protocol
  parity + platform keystore integration. Target: a mobile
  reviewer / patient / voter app experience on par with the JS SDK.
- **Additional-language SDKs** (Java/Kotlin, C#/.NET) — feature
  parity with Python/Go/JS. Driven by enterprise FinTech + public-
  sector adoption.
- **Browser extension wallet** — MetaMask-style quid manager with
  per-site signing prompts.
- **ISO 20022 mapping** — full SWIFT MX / pacs.008 round-trip.

### Near-term: additional interface surfaces

Building on the REST API + JSON schemas:

- **gRPC gateway** — higher-throughput consortium ops
- **GraphQL gateway** — joined queries for application integration
- **WebSocket push subscriptions** — real-time event streams
- **Terraform provider** — IaC management of domains + guardian sets
- **MQTT bridge** — IoT-device event mirroring
- **PostgreSQL extension** — SQL-exposed relational trust for BI
- **Elasticsearch ingester** — full-text search over events

### Near-term: additional frontend framework adapters

Mirror the Vue/Astro pattern for:

- Svelte / SvelteKit
- SolidJS
- Angular
- Ember
- Qwik

Each adapter is ~2 days of work now that the SVG primitives exist.

### Medium-term: zero-knowledge + advanced crypto

- **Selective disclosure** — privacy-preserving trust-path proofs;
  prove "I'm trusted at ≥ L without revealing my intermediaries"
- **ZK-SNARKs for confidential transactions** — especially for
  the credit-reputation and elections use cases
- **Post-quantum signature migration** — track NIST PQC finalists,
  plan a migration path via fork-block (QDP-0009)
- **Threshold signatures** — single-shot M-of-N signing with no
  distinguishable participants (useful for guardian recovery that
  hides which guardians participated)

### Medium-term: additional vertical integrations

- **Yotpo / Trustpilot / Bazaarvoice** — enrichment layer on
  imported reviews
- **Judge.me / Product Reviews Shopify apps** — trust-weighting overlay
- **LinkedIn-style skill endorsements** — expert credibility
- **Yelp / TripAdvisor / Google Maps** — via browser extension
- **Healthgrades / Zocdoc** — practitioner trust
- **Upwork / Fiverr / TaskRabbit** — freelancer reputation
- **Reddit / Lemmy / Mastodon** — comment-quality weighting
- **Debezium CDC schema** — downstream ETL
- **Ruby / PHP SDKs** — smaller ecosystems

### Medium-term: governance

- **Domain governance transactions** — on-chain voting for domain
  parameters (thresholds, validator sets)
- **Trust-weighted DAO frameworks** — reference library for apps
  built on Quidnug

### Long-term: research

- **Mathematical modeling of trust propagation** — formal bounds
  on decay functions, Sybil resistance, path-selection strategies
- **Cognitive trust modeling** — user-study-driven refinements to
  the four-factor rating algorithm
- **Homomorphic trust computation** — ciphertext-preserving trust
  queries so a node can answer queries without decrypting edges

### Long-term: scale

- **Edge / geo-distributed deployment** — jurisdiction-scoped
  nodes with cross-domain gossip
- **High-performance validator networks** — specialized validator
  deployments for high-volume domains

---

## Success metrics

Technical:

- Transaction validation latency (target: < 10 ms on average)
- Cross-domain query performance (target: < 50 ms for depth-5)
- Trust-path calculation time (target: < 100 ms for 10k-node graphs)

Adoption:

- Number of public nodes
- Number of unique quids across all public domains
- Number of active trust domains
- Transaction volume split by type
- Reviews written under `reviews.public.*`
- Active developer community (issues, PRs, discussions, SDK downloads)

Security:

- Days since last critical advisory
- CVE response time (target: < 72h to patch, < 7d to disclose)
- Formal verification coverage of crypto primitives
- Third-party audit cadence

---

## How to propose changes

Two paths:

1. **New QDP.** For anything that changes the protocol wire
   format, consensus rules, or node behavior. Submit as a
   numbered proposal under `docs/design/`. Template: copy any
   existing QDP.
2. **Feature PR.** For everything else — SDK additions, new
   framework adapters, new integrations. Open a PR with the
   code + tests + README. The review pass confirms scope and
   naming conventions.

Things we're explicitly **not** pursuing:

- High-TPS payment-chain optimization — the protocol prioritizes
  auditability over raw throughput.
- A universal reputation score — by design, Quidnug refuses to
  produce one.
- Single-signer key-recovery via email/SMS — recovery is
  cryptographic (guardian M-of-N) by design.

See [`../CONTRIBUTING.md`](../CONTRIBUTING.md) for process details.