RoughTime
This host runs a RoughTime synchronization server implementing Revision 15 (0x8000000c) of the IETF protocol. RoughTime provides cryptographically verifiable time without requiring a trusted network path.
New to RoughTime? Read our announcement: Why We Built a New RoughTime Implementation
We operate this server for community benefit. It is intended for synchronization, timestamping, and testing. Please use it responsibly.
Server Information
| Address | roughtime.sturdystatistics.com |
|---|---|
| Port | 2002 |
| Protocol | UDP |
| Public Key | NqIjwLopQn6yQChtE21Mb97dAbAPe5UOuTa0tOakgD8= |
Verify this key via DNS:
dig -t TXT roughtime.sturdystatistics.com
Quick Start
You can query this server immediately using our command-line client
clj -M:run :server-name "SturdyStatistics"Tip: For verifiable time, query at least three independent servers and verify the response chain. Cloudflare maintains a public ecosystem list here.
What is RoughTime?
RoughTime is a secure time service. Servers sign batches of client requests, chaining them with Merkle trees. Each response proves the server’s notion of time and prevents undetected backdating/forward-dating across requests.
Live Example Results
| skew | 0 |
|---|---|
| expires in | 5d 9h |
Request Message
{"VER" "0x8000000c",
"SRV"
["4a4344b8 ed36a263 cae105a2 92fe2661"
"d964691d be07548f 43b5b523 2671f3ab"],
"NONC"
["484e69b1 7675e6cf 9c55aec5 c8a2fa20"
"563f8dec 33b4d83e 0873eb7a e940b43f"],
"TYPE" 0,
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["4c6ad293 bb48681f 5f10aa41 6421e9c4"
"f4bb342b 44532eae 82473d17 66ea19d1"
"fc8a9213 a266258b 953884d5 c1bd048b"
"2f3b70d8 87c5ec0b c7e88761 be133d0a"],
"NONC"
["484e69b1 7675e6cf 9c55aec5 c8a2fa20"
"563f8dec 33b4d83e 0873eb7a e940b43f"],
"TYPE" 1,
"PATH" [],
"SREP"
{"VER" "0x8000000c",
"RADI" 10,
"MIDP" 1791585903,
"VERS"
("0"
"0x80000001"
"0x80000002"
"0x80000003"
"0x80000004"
"0x80000006"
"0x80000008"
"0x80000009"
"0x8000000a"
"0x8000000b"
"0x8000000c"),
"ROOT"
["888cb7d8 866f0cfd 592f6713 325dbfcc"
"828cb486 9ba27e07 025821f8 146196f8"]},
"CERT"
{"SIG"
["5274ebd4 f9c948ba 82359a57 0c576774"
"3d4d7fd8 cdd373b5 4cc5bf8d 9c0d299e"
"47fac0c1 a03f7173 ec7eeeb6 31740b72"
"8d78756f 8374e61a e6407adc cfe7490f"],
"DELE"
{"PUBK"
["0d87e6bf d91dfcae 86cd64f2 6d733009"
"304fe2f3 3bc72061 8d29c8a9 fb9968c8"],
"MINT" 1791360000,
"MAXT" 1792051200}},
"INDX" 0}
| skew | 0 |
|---|---|
| expires in | 7h 44m |
Request Message
{"VER" "0x8000000b",
"SRV"
["0d93616f 19641cbf 68f8b41a 1b659797"
"fc9330b6 58a5042d 6be10211 94ee290c"],
"NONC"
["c22e1938 b5350c18 fd1cb414 d50fab1d"
"98e53f39 3c5ecff0 d0bc0d9a 3359cbfe"],
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["8bd20d46 15d068a6 b0b2aec6 308c2946"
"f4414a48 fcf863ae 630080d3 1218ff3e"
"3a335185 2aced6ed d747876a 2f31c7aa"
"6cecab2c 210cf9ca 67b4b84d 65017308"],
"VER" "0x8000000b",
"PATH" [],
"SREP"
{"RADI" 1,
"MIDP" 1791585903,
"ROOT"
["d53c2d5c 87c007b8 dde5d08a 56267214"
"4d557257 b0d59f39 91bd69ef e2d66f1b"]},
"CERT"
{"SIG"
["e1fe4ed4 559e62d0 98797473 8a20b9f8"
"c368b38a bff068aa 07ab17d0 619db203"
"58827c27 f6ee4f58 e211d29e e3a23e47"
"2cc39c15 a108c485 d5531717 cede1c0e"],
"DELE"
{"PUBK"
["55a49481 7a7763d7 e144cd86 68d870bd"
"b8d769a6 1828e873 ea3506b9 d0eab26f"],
"MINT" 1791527359,
"MAXT" 1791613759}},
"INDX" 0}
| skew | 0 |
|---|---|
| expires in | ∞ |
Request Message
{"VER" "0x8000000c",
"SRV"
["95645ff5 c385c24e ba48d509 528a4a74"
"e0861c0b 57f46c25 ee5c6a48 8a23246f"],
"NONC"
["80274c57 712757bf f8a514af 3a01e93d"
"5909cb9c 628cce06 a4f3269b 0c0d0409"],
"TYPE" 0,
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["14dd22e7 090081d4 3f8ef9e8 7c7813df"
"cf3aba7d d3d001ad 60c7e126 dd180480"
"b39a4979 317cc58f 3de5d46f b3e9f650"
"b0bd67af a2be28b3 843ea23a 0638ed02"],
"NONC"
["80274c57 712757bf f8a514af 3a01e93d"
"5909cb9c 628cce06 a4f3269b 0c0d0409"],
"TYPE" 1,
"PATH" [],
"SREP"
{"VER" "0x8000000c",
"RADI" 5,
"MIDP" 1791585903,
"VERS" ("0" "0x8000000c"),
"ROOT"
["32cc19f1 d580e2eb c7171570 cf45ac8e"
"d14b2553 bef53653 ee48514a 5aa9ddaf"]},
"CERT"
{"SIG"
["e7b21e7a f98ceee1 5a13e6d1 967b4fe6"
"2980c5ae 258922a1 daa69c5c 13342335"
"3ea69a2c 0acfaa21 61250e9f 70648048"
"e4411000 187b1353 e31a7c46 7567b00c"],
"DELE"
{"PUBK"
["34291a8d 25d93aea e9bd2849 e828bbfc"
"ee84207e 71e06c2d 3cde5174 13de99b0"],
"MINT" 0,
"MAXT" 18446744073709551615}},
"INDX" 0}
| skew | 0 |
|---|---|
| expires in | 3mo 22d |
Request Message
{"VER" "0x8000000c",
"SRV"
["8c4bbf59 8f43ff13 da82bfeb 9e0652a4"
"e372ab03 c2cae3b6 f661ea29 c8ebacc2"],
"NONC"
["d7037dfc ca3fdf19 765f6574 e121de6f"
"e5a0197a cd887ace 4f68a79b d4d08115"],
"TYPE" 0,
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["c3ca79f4 099f7cf9 89721de9 8716308b"
"7f58cb82 10a0c9be 199a80fe 597049a0"
"0cc40fc3 c7554b30 408a1004 ca9d7495"
"025a6a1d a1f4dd7b 749e5758 d704cc0c"],
"NONC"
["d7037dfc ca3fdf19 765f6574 e121de6f"
"e5a0197a cd887ace 4f68a79b d4d08115"],
"TYPE" 1,
"PATH" [],
"SREP"
{"VER" "0x8000000c",
"RADI" 1,
"MIDP" 1791585904,
"VERS" ("0x8000000c"),
"ROOT"
["80e6f92b 0c5342f0 2539ab09 a4df7891"
"efe17e14 3be23554 e6bddb1b f2113100"]},
"CERT"
{"SIG"
["3a20f9a3 e7ad50b0 636f3819 61266ab0"
"283e493a 5f118dd3 f7f47524 fe3b3b24"
"4ed5653f 333061c8 0bfd7836 82607698"
"ab5ab5f9 3d8ccff2 bfb600ec 4a4e610e"],
"DELE"
{"PUBK"
["14c0ff4f a3aa7597 7c4f14b0 0b974646"
"fb241196 92f35bf2 4d496cf7 119a50a4"],
"MINT" 1768694400,
"MAXT" 1801440000}},
"INDX" 0}
Error: No UDP response received
{:server
{:name "time.txryan.com",
:version "IETF-Roughtime",
:version-no 2147483660,
:supported-versions nil,
:msg-size 1024,
:public-key-type "ed25519",
:public-key "iBVjxg/1j7y1+kQUTBYdTabxCppesU/07D4PMDJk2WA=",
:addresses [{:protocol "udp", :address "127.0.0.1:2015"}]},
:attempts 3,
:timeout-ms 1000}