DIYHRT
// canary

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.

signed and current

—

until the next one is due

last signed

2026-10-21 15:42 utc

next due

2026-11-20 15:42 utc

// the signed message
-----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-----
// admin keys

a canary counts when it's signed by any one of the current admin keys below. this one is signed by phi and akira.

  • phi[email protected]

    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 canaryretired

    33AA 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-----
    
// check it yourself
  1. 1

    save the keys and the message

    use the save buttons above to get diyhrt-keys.asc (every admin key in one file) and canary.txt exactly as published.

  2. 2

    import the keys

    $ gpg --import diyhrt-keys.asc
  3. 3

    verify the message

    $ gpg --verify canary.txt

    look 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. 4

    check they're the right keys

    $ gpg --fingerprint 493BB8AF38652ADE4054D14AB01EE3EB9676EFD9

    each using … key line 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).

watching diy hrt vendors so you don't have tostock checked about every 15 secondsconfigure discord alerts in /settings