Your results will be questioned.
Let the files answer.
NOQTIS seals a folder with a post-quantum signature, so anyone can check later that nothing changed. One C11 library and a command-line tool, no dependencies.
Why NOQTIS?
A result is only as good as the files it came from. NOQTIS writes noqtis.json (each file's size, SHA-256 and SHA3-256, in canonical JSON) and noqtis.sig, a signature over those exact bytes.
Anyone with your public key checks the folder offline, years later, without trusting you, a server or a log. Nothing is uploaded and nothing is published unless you publish it.
The library is plain C11 with no third-party code: the same seal checks the same way from the command line, Python, R, JavaScript, Rust, Go and Java.
Fail closed, and say why
Every parser rejects anything the format does not define, and a check that cannot be made is a failed check, never a silent pass. A changed, missing or added file fails the folder.
Each failed row comes with the reason and what to do next, in plain words and as --json for CI. Exit status: 0 checked, 1 failed, 2 could not run.
Post-quantum, and standard
RSA and elliptic-curve signatures will not outlast the records they protect. NOQTIS signs with ML-DSA (FIPS 204) and SLH-DSA (FIPS 205), alone or as an ML-DSA+Ed25519 hybrid that needs both halves to verify, and encapsulates keys with ML-KEM (FIPS 203).
Every scheme is checked against the NIST ACVP vectors and Wycheproof. No branch or memory index depends on a secret; ML-DSA signing and ML-KEM decapsulation are also masked.
Show one file, keep the rest
A sealed folder is a Merkle tree. noqtis prove writes a proof for the files you choose; whoever checks it learns those files are in the sealed folder, and nothing about the others: not their names, not their digests.
Share a report with a reviewer and keep the participant data private, with the same signature behind both.
Say who sealed it
A key is a string of bytes; people want a name. noqtis idcard writes a small card, signed by your seal key, that gives your name and, if you want, your ORCID iD, affiliation, e-mail and web page.
noqtis check --card then says who sealed the folder, and fails if the card belongs to a different key. The card proves the key's holder wrote it, not that the name is true: publish its fingerprint where people already know you, such as your ORCID record or your institution's page.
Keys change hands
Laptops get replaced and keys leak. noqtis rotate and noqtis revoke write signed statements, and check --keys follows them from the key you already trust.
Seals made with a replaced key still pass when a verified RFC 3161 timestamp shows they are older than the change; seals made after it do not.
Fits what you already use
Export a checked capsule as an in-toto statement, a DSSE envelope, RO-Crate metadata or a BagIt bag. Add it to CI with one action, or call it from your language:
What NOQTIS does not do
NOQTIS keeps its job precise: seal the files and check them. Everything else stays with you, by design.
How it comparesNo network
Sealing and checking run offline. Checking a capsule by its URL is something you ask for.
No public log
Nothing about your seal goes anywhere. Add an RFC 3161 timestamp when you want one.
No key server
You hand out your public key where people already know you, and they compare its SHA-256.
No dependencies
Plain C11, no third-party code, an SBOM with nothing else in it.
No telemetry
It never phones home. There is nothing to opt out of.
Audited Not yet audited
An independent audit has been applied for. Until a report is published, read the security page.
Get involved with NOQTIS
Issues
GitHub for bugs and features.
Security
Report a vulnerability privately.
Documentation
Read the documentation or browse the source on GitHub.