warrant canary
a regularly re-signed PGP message saying the people running diyhrt.coffee are alive, free, in full control of the site, and haven't been served any warrants, gag orders, or orders to change it. it's signed by one of the site's admins, and anyone can check the signature with gpg.
it works because of what it can't say. a gag order would stop us announcing it, but we could stop re-signing. a missing or stale signature is the alarm.
—
until the next one is due
last signed
2026-10-21 15:42 utc
next due
2026-11-20 15:42 utc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
diyhrt.coffee — warrant canary
date: 2026-10-21
as of today, diyhrt.coffee:
1. has not received any government subpoena, search warrant,
court order, national security letter, or any other
compelled-disclosure demand for user data, logs, or access.
2. has not been served any gag order or other form of
compelled silence.
3. has not been compromised, coerced, or accessed by any
party other than its stated operators.
4. retains full control of its signing keys, infrastructure,
and source code.
key change: from this canary on, a canary is valid when it is
signed by either of the site's two admins, phi or n2x:
phi <[email protected]>
493B B8AF 3865 2ADE 4054 D14A B01E E3EB 9676 EFD9
n2x
268D 6AE8 A3AA 82BE F3B3 9BE6 97E6 511B BB1F 12CF
this one is signed twice: by phi's new key, and by akira's key,
which signed the canaries before the handover and vouches for it:
akira
33AA 9E20 C6D5 FA57 B056 C488 E608 EDED D5FB 9ECF
akira's key is retired after this and won't sign future canaries.
all three keys are published at https://diyhrt.coffee/canary
this canary will be reposted at least once every 30 days. if a
future canary fails to appear when due, isn't signed by one of the
admin keys above, or if any of the four statements above can no
longer be made truthfully, you should assume diyhrt.coffee may
have been compromised.
proof of liveness (these change constantly, so a re-posted old
canary won't match):
- bitcoin block 972494, mined 2026-10-21 15:39 utc:
000000000000000000018912d1083009ef298e17cea99e53d2509b7aaaa1111c
- "US citizen Stephen Hubbard freed by Russia as Trump envoy
meets Putin" (bbc news, 2026-10-21)
- "Elon Musk confirms he is considering merging Tesla and
SpaceX" (bbc news, 2026-10-21)
next canary due: 2026-11-20
— phi
-----BEGIN PGP SIGNATURE-----
iJEEARYKADkWIQRJO7ivOGUq3kBU0UqwHuPrlnbv2QUCatjdcBsUgAAAAAAEAA5t
YW51MiwyLjUrMS4xMiwyLDEACgkQsB7j65Z279mIyQD+ID1r9y+L9omHm01mwxr0
vu3piIKwgQ8u8sL6RFgwP6MBAK7heiw/adRRy378aTHAA1pDzsshSqjpHf3kqxiT
1ooGiJEEARYKADkWIQQzqp4gxtX6V7BWxIjmCO3t1fuezwUCatjdcBsUgAAAAAAE
AA5tYW51MiwyLjUrMS4xMiwyLDEACgkQ5gjt7dX7ns8P3AD+LE3HehMuwij+METk
nEKDT0cjNPqWSu8o9X8CzRajOAkA/0Ks96ls1CwM60/npdNWrZ/WOy6oRkcj5pGD
REm22fQI
=a898
-----END PGP SIGNATURE-----
a canary counts when it's signed by any one of the current admin keys below. this one is signed by phi and akira.
- signed this canary
493B B8AF 3865 2ADE 4054 D14A B01E E3EB 9676 EFD9
admin. certified by akira's key in the 2026-10-21 handover
show the public key
-----BEGIN PGP PUBLIC KEY BLOCK----- mDMEatjctxYJKwYBBAHaRw8BAQdA4Sf2Bbagnd71HRLfRF5Tl0yhVrd1lng3k8kt IKRA6Se0GXBoaSA8YWRtaW5AZGl5aHJ0LmNvZmZlZT6ItQQTFgoAXRYhBEk7uK84 ZSreQFTRSrAe4+uWdu/ZBQJq2Ny3GxSAAAAAAAQADm1hbnUyLDIuNSsxLjEyLDIs MQIbAwUJA8JnAAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAKCRCwHuPrlnbv 2Z4jAQCPdiYSncXwLEL31DvjEOwSpCoY/FoJWBzQdi07BThmSQD/UG7MEqw6PbPj xQPr9cqUJxCcrbb0fTvhc77A+PLENwyIdQQQFgoAHRYhBDOqniDG1fpXsFbEiOYI 7e3V+57PBQJq2N1WAAoJEOYI7e3V+57Pb4QBALDW5cbGe8DK8RDBD3LkReDK6kDz ZCmcdlp5bcip2NJPAQDsKR3nN00IiauH3K7U4feMoxNULL0A/N1e1YHa06YMCbg4 BGrY3OwSCisGAQQBl1UBBQEBB0CnBrj83VO4iuxBhuLqeZw8rLtmaFzkEAhJnFJQ VaM2QQMBCAeImgQYFgoAQhYhBEk7uK84ZSreQFTRSrAe4+uWdu/ZBQJq2NzsGxSA AAAAAAQADm1hbnUyLDIuNSsxLjEyLDIsMQIbDAUJA8JnAAAKCRCwHuPrlnbv2S4U AP9JCi16ZyGgIsXGLnQVcjE8pNWfQ35LNpb49U7f8EIiqwD/VbSnSNbcLkadc1UH KBYhjHMzH2BfivWUpY8uAE/tZAA= =feQW -----END PGP PUBLIC KEY BLOCK-----
n2x
268D 6AE8 A3AA 82BE F3B3 9BE6 97E6 511B BB1F 12CF
admin
show the public key
-----BEGIN PGP PUBLIC KEY BLOCK----- Comment: User ID: n2x Comment: Valid from: 19/10/2026 16:56 Comment: Type: 4,096-bit RSA (secret key available) Comment: Usage: Signing, Encryption, Certifying User IDs Comment: Fingerprint: 268D 6AE8 A3AA 82BE F3B3 9BE6 97E6 511B BB1F 12CF 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 n0tKiQkZbPBB0pDfQD65qMlo7dVITcpReRo= =tJVM -----END PGP PUBLIC KEY BLOCK-----
retired keys (1) — kept so older canaries can still be checked
akira[email protected]
signed this canaryretired33AA 9E20 C6D5 FA57 B056 C488 E608 EDED D5FB 9ECF
the previous operator. signed the canaries until october 2026, and co-signed the 2026-10-21 handover canary to vouch for phi's key. retired after that
show the public key
-----BEGIN PGP PUBLIC KEY BLOCK----- mDMEagXuJxYJKwYBBAHaRw8BAQdA51ewSfVgZnak8ngh2yO7agyCQCG1ViarFaV/ OEd6TWe0J0FraXJhIE1vcmlhcnR5IDxtb3JpYXJ0eUBwYXJhbm9pY2kub3JnPoi1 BBMWCgBdFiEEM6qeIMbV+lewVsSI5gjt7dX7ns8FAmoF7icbFIAAAAAABAAObWFu dTIsMi41KzEuMTIsMiwxAhsDBQkFpKkJBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4H AheAAAoJEOYI7e3V+57PG2gBAOYXy24+QbUjbjBs/UbMvw0LJO680G5VkqAKjGEc cm8/AP9l77kUdqOEQj8TojINBpkfWMATcStYQAwvBckufZD/C7g4BGoF7icSCisG AQQBl1UBBQEBB0ALM1l9QvE3c426uAYUShUUaAbEJZQa9ya5K78U1KLCRwMBCAeI mgQYFgoAQhYhBDOqniDG1fpXsFbEiOYI7e3V+57PBQJqBe4nGxSAAAAAAAQADm1h bnUyLDIuNSsxLjEyLDIsMQIbDAUJBaSpCQAKCRDmCO3t1fuez+JkAQDNSkRZBl7x h0OOJTzFpT3DvkD4tX5DZuOG2HPMd4MsTwEAoBklIp8D4oicCmsGaF6AV6/MoyTL LjvPjJm8UOFQFwI= =Fd3Y -----END PGP PUBLIC KEY BLOCK-----
- 1
save the keys and the message
use the save buttons above to get
diyhrt-keys.asc(every admin key in one file) andcanary.txtexactly as published. - 2
import the keys
$ gpg --import diyhrt-keys.asc - 3
verify the message
$ gpg --verify canary.txtlook for
Good signature, one per signer. at least one has to come from a current admin key. gpg will also warn the keys aren't certified; that's normal for keys you haven't signed yourself, and it's why step 4 matters. a good signature proves who signed it, not that the words are true. - 4
check they're the right keys
$ gpg --fingerprint 493BB8AF38652ADE4054D14AB01EE3EB9676EFD9each
using … keyline in step 3 should match a fingerprint listed above. this is the step that ties the keys to us; to rule out a hijacked site swapping keys, compare them with an archived copy of this page (web.archive.org).

