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 | 2d 3h |
Request Message
{"VER" "0x8000000c",
"SRV"
["4a4344b8 ed36a263 cae105a2 92fe2661"
"d964691d be07548f 43b5b523 2671f3ab"],
"NONC"
["30a79eda 0de0d2ea a7188d15 ea4ec35d"
"9fc2a7ca 55933d0f 8a631dec fd66ce2d"],
"TYPE" 0,
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["1d966ddb c576a2dd 7ab3af20 59be092b"
"ddd25c64 223580b1 b3fd3dbc ceb96e7d"
"12376a50 137de3d0 2aee3bcd fafc310a"
"d6d7175b b0be78ed bbfa98cb c1d5a901"],
"NONC"
["30a79eda 0de0d2ea a7188d15 ea4ec35d"
"9fc2a7ca 55933d0f 8a631dec fd66ce2d"],
"TYPE" 1,
"PATH" [],
"SREP"
{"VER" "0x8000000c",
"RADI" 10,
"MIDP" 1775535429,
"VERS"
("0"
"0x80000001"
"0x80000002"
"0x80000003"
"0x80000004"
"0x80000006"
"0x80000008"
"0x80000009"
"0x8000000a"
"0x8000000b"
"0x8000000c"),
"ROOT"
["de8133ca c41e8986 2d03140c a918616c"
"72f06f75 f66d1556 37919703 3548d353"]},
"CERT"
{"SIG"
["628b09c0 171bc9ae 4a704cba 618adfff"
"cbbbc3cf 960905d5 04dbf43d c3ae7ad6"
"3f7f07db 9370cc23 6a8e934e 35aaa8cb"
"7ff0f042 b23bfcb2 7e3d47a9 aa3fa809"],
"DELE"
{"PUBK"
["e12601ef 39d45314 b64678a1 a8efbbd5"
"960ff59b adc64bae 8e6313f9 3b4f5762"],
"MINT" 1775030400,
"MAXT" 1775721600}},
"INDX" 0}
| skew | 0 |
|---|---|
| expires in | 7h 33m |
Request Message
{"VER" "0x8000000b",
"SRV"
["0d93616f 19641cbf 68f8b41a 1b659797"
"fc9330b6 58a5042d 6be10211 94ee290c"],
"NONC"
["b0d575ff edfab6dc 888418a1 33b12bdb"
"cb9a9675 e9a772c7 285cbd5a b215d3ca"],
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["8675641c 5ecede2b 1a4f1475 829c6df7"
"32490e7e 2e1fbf18 b6fdd1d7 bbed8416"
"d82a7785 fab6f056 8d149af7 487c8733"
"7d8a1a45 0b582b30 2d3efe3b 23c58102"],
"VER" "0x8000000b",
"PATH" [],
"SREP"
{"RADI" 1,
"MIDP" 1775535429,
"ROOT"
["05ce9fc2 0a437833 d95e8e1b 44201b8d"
"0b664d99 24365838 0bc97988 45337c1f"]},
"CERT"
{"SIG"
["e67ae8bb 01100629 814acf8c eb2520f8"
"083d74f0 5bd5b1e4 dc03b6fa f4f5da9a"
"f11b1d27 1d33436e f139f168 3c9922ce"
"31c6f4d8 c5ccb25b 623e80b7 3d2a330e"],
"DELE"
{"PUBK"
["81229e78 5b94b4bb 3138beef 0e491629"
"3a60f2b2 6e57eb93 ce7fd9a7 66a9ae15"],
"MINT" 1775476230,
"MAXT" 1775562630}},
"INDX" 0}
| skew | 0 |
|---|---|
| expires in | ∞ |
Request Message
{"VER" "0x8000000c",
"SRV"
["95645ff5 c385c24e ba48d509 528a4a74"
"e0861c0b 57f46c25 ee5c6a48 8a23246f"],
"NONC"
["4a7fc88e e4644b9f 95968687 b79c0bea"
"5a5ce457 a76f5ec5 d77ad082 14c43643"],
"TYPE" 0,
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["a184fb0a 4371999b f265680a 5208bee2"
"3bef6139 3c014896 bd06082e 1c9fd2fd"
"188ca557 eca7e19a 13e33453 cf219092"
"9566c120 d7de6261 dc055105 7fc11800"],
"NONC"
["4a7fc88e e4644b9f 95968687 b79c0bea"
"5a5ce457 a76f5ec5 d77ad082 14c43643"],
"TYPE" 1,
"PATH" [],
"SREP"
{"VER" "0x8000000c",
"RADI" 5,
"MIDP" 1775535429,
"VERS" ("0" "0x8000000c"),
"ROOT"
["4c2ff5a6 c02c6b80 c1db47c3 b4fe271a"
"a4f82eb8 a032eca7 9d9b4996 52e081f3"]},
"CERT"
{"SIG"
["24ec1900 45666e89 c0283478 f413d194"
"41e0b395 c4d7ad81 354e8b55 7d907efd"
"d843b942 779a8cdf a4e82ef1 b6bab7fa"
"f242f079 c8901201 638264a5 1b9ac207"],
"DELE"
{"PUBK"
["b9045bea 9dccd4ba 0c34181f 5cf69943"
"00d49b3b 86115595 18e01bbe 66f9c583"],
"MINT" 0,
"MAXT" 18446744073709551615}},
"INDX" 0}
| skew | 0 |
|---|---|
| expires in | 9mo 25d |
Request Message
{"VER" "0x8000000c",
"SRV"
["8c4bbf59 8f43ff13 da82bfeb 9e0652a4"
"e372ab03 c2cae3b6 f661ea29 c8ebacc2"],
"NONC"
["8c3984f0 4bfb1ab4 a2ded6e1 ec223cf2"
"d23b0958 6cb45895 c81db704 b63d4e58"],
"TYPE" 0,
"ZZZZ" "0{912}"}
Response Message
{"SIG"
["2894eeb0 c2f04a3c 22c1c6ec 83ed95d0"
"2718f6a0 b2cdfca8 faf5c47a c4f25d8e"
"d39e3e69 0ea455bf ce62bdd4 4ad06304"
"3bb839f2 02deae0d d45ef0cf 8ae90108"],
"NONC"
["8c3984f0 4bfb1ab4 a2ded6e1 ec223cf2"
"d23b0958 6cb45895 c81db704 b63d4e58"],
"TYPE" 1,
"PATH" [],
"SREP"
{"VER" "0x8000000c",
"RADI" 1,
"MIDP" 1775535429,
"VERS" ("0x8000000c"),
"ROOT"
["dcb511a6 93de476c c57dc94d bd009a3b"
"26bf702e bf2c0303 ae70ef06 21aba890"]},
"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 "Google-Roughtime",
:version-no 0,
: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}