Skip to main content

Immutable timestamps on our records

Every change to a donation, a field report or a certificate is written to a log that cannot be edited, and the fingerprint of that log is published to the Bitcoin blockchain.

Read this before you read the hashes

What this proves: that our records were not quietly rewritten after the fact. Once a fingerprint is in a block, any later edit — by us, by an administrator, by anyone with database access — stops matching it.

What this does not prove: that a record was correct when it was written. If a field report says 1,000 trees and that was wrong, the timestamp preserves it as permanently wrong. Trust in the number comes from independent field verification, not from the chain.

No money and no NFT is held on a blockchain here. Donations move through regular payment rails and certificates live in our database. What goes on-chain is a 32-byte fingerprint and nothing else.

0

Confirmed in a block

50

Awaiting a block

50

Records covered

How it works

  1. 1

    Every significant action — a settled donation, a verified field report, an issued certificate, a withdrawal — writes a row to an audit log. The database physically refuses to update or delete those rows.

  2. 2

    Every few hours the rows written since the last run are hashed into a single Merkle root, using the same tree construction as Certificate Transparency.

  3. 3

    That root is sent to independent OpenTimestamps calendars. They aggregate thousands of roots from many parties into one Bitcoin transaction, which is why this costs nothing and needs no wallet.

  4. 4

    Once the transaction is mined, the proof is upgraded and names a block height. From that moment, the timestamp no longer depends on us or on the calendar operator.

Published commitments

Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 22, 2026, 6:21 PMSep 22, 2026, 6:21 PM
Submitted:
Sep 23, 2026, 12:28 AM

Merkle root (SHA-256)

47898d3c347043f1fe940afd6fc1aba5f019bc7e11bfce550337fc5fa989c37b
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 22, 2026, 12:24 PMSep 22, 2026, 12:24 PM
Submitted:
Sep 22, 2026, 6:21 PM

Merkle root (SHA-256)

6c4968dff881f843d454914a31e196f87fda549533271f5b5de5218a53f54194
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 22, 2026, 6:25 AMSep 22, 2026, 6:25 AM
Submitted:
Sep 22, 2026, 12:24 PM

Merkle root (SHA-256)

14cfe83918033b6dd87b9713c630a9f2d05ba45d59aa11a603b4e9eb6ca9e100
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 22, 2026, 12:24 AMSep 22, 2026, 12:24 AM
Submitted:
Sep 22, 2026, 6:25 AM

Merkle root (SHA-256)

4bf4c6c8301e2f2d262269efd0867a1cc57086fb30742f2a0d08b8f67ae5b830
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 21, 2026, 6:27 PMSep 21, 2026, 6:27 PM
Submitted:
Sep 22, 2026, 12:24 AM

Merkle root (SHA-256)

d42d85f9ecd243f937b8b4b2b2a7b8636d94c25ab99fecec15851492636e352c
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 21, 2026, 12:26 PMSep 21, 2026, 12:26 PM
Submitted:
Sep 21, 2026, 6:27 PM

Merkle root (SHA-256)

079c2d18efe467574280d9f6e584e66e3969c2e270c942ec7a0fa6c2bb558a14
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 21, 2026, 6:20 AMSep 21, 2026, 6:20 AM
Submitted:
Sep 21, 2026, 12:26 PM

Merkle root (SHA-256)

dd9c6ca47d3ebfccc6166b9f77655e64a29a64800615688540ab0db191b2aaeb
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 21, 2026, 12:24 AMSep 21, 2026, 12:24 AM
Submitted:
Sep 21, 2026, 6:20 AM

Merkle root (SHA-256)

1e97f3ff1de5b841e2767611e372881890072e52839df99d2a8284464b01a381
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 20, 2026, 6:25 PMSep 20, 2026, 6:25 PM
Submitted:
Sep 21, 2026, 12:24 AM

Merkle root (SHA-256)

db670f4aa8862bfb7ed2224bb85824906003cbc1c8fba85c9bdeafe74aa2e4cf
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 20, 2026, 12:27 PMSep 20, 2026, 12:27 PM
Submitted:
Sep 20, 2026, 6:25 PM

Merkle root (SHA-256)

39f319cc2a7791bbe409d69be6f8b15102ff43b508530253e34411ded4563ff0
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 20, 2026, 6:20 AMSep 20, 2026, 6:20 AM
Submitted:
Sep 20, 2026, 12:27 PM

Merkle root (SHA-256)

80bee6b42cf9a3061277566f96d8c135ba86db0184f9e84d8242cc91212ce009
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 20, 2026, 12:21 AMSep 20, 2026, 12:21 AM
Submitted:
Sep 20, 2026, 6:20 AM

Merkle root (SHA-256)

54eb0f235de1f02e8b040eaac9c076bdbf1dbc86fa7f8a2827247fb8df3086ca
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 19, 2026, 6:26 PMSep 19, 2026, 6:26 PM
Submitted:
Sep 20, 2026, 12:21 AM

Merkle root (SHA-256)

85df010b2cdf487ff620c98cb828a6e02c35ce6b3a615fb4d6fb79be5e851c97
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 19, 2026, 12:21 PMSep 19, 2026, 12:21 PM
Submitted:
Sep 19, 2026, 6:26 PM

Merkle root (SHA-256)

aa6ed0fdc23799b115b180d405e77ae59bb8e5c3784047e52df4d139ba803390
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 19, 2026, 6:21 AMSep 19, 2026, 6:21 AM
Submitted:
Sep 19, 2026, 12:21 PM

Merkle root (SHA-256)

b6ca23d731276895512dd7388b488cd9bcd081a77dedf9b6f06c1133d73a9bf9
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 19, 2026, 12:24 AMSep 19, 2026, 12:24 AM
Submitted:
Sep 19, 2026, 6:21 AM

Merkle root (SHA-256)

3526f363618d73ddea04fa51f4b8673579695637d89e0c8b62b7eb0e7f987bce
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 18, 2026, 6:28 PMSep 18, 2026, 6:28 PM
Submitted:
Sep 19, 2026, 12:24 AM

Merkle root (SHA-256)

ee1d7850991b2116d6275e5ddd2e53a330676fed8d6bab35cbbb98b809457d11
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 18, 2026, 12:28 PMSep 18, 2026, 12:28 PM
Submitted:
Sep 18, 2026, 6:28 PM

Merkle root (SHA-256)

41554781736979b4f1c03a025bf4fb49d94a826cd74e2471196de6186b2ac843
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 18, 2026, 6:26 AMSep 18, 2026, 6:26 AM
Submitted:
Sep 18, 2026, 12:28 PM

Merkle root (SHA-256)

cc8c10888edf9d93bd1e96c551fdefd5da32bd70903ac81e499abc2a1c657e88
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 18, 2026, 12:22 AMSep 18, 2026, 12:22 AM
Submitted:
Sep 18, 2026, 6:26 AM

Merkle root (SHA-256)

db05d3ba023a58121039b3b1c5b56ba7aef0979e265e3aa96f3bfa5a9b6a8e1a
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 17, 2026, 6:22 PMSep 17, 2026, 6:22 PM
Submitted:
Sep 18, 2026, 12:22 AM

Merkle root (SHA-256)

2008b62b8eaba9455f1706a43576ea0381d884a7de239205dc0619d14434da2b
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 17, 2026, 12:29 PMSep 17, 2026, 12:29 PM
Submitted:
Sep 17, 2026, 6:22 PM

Merkle root (SHA-256)

aade7a359febf6c9199a5f20059dc58d5d1758ba8850e72954553b0ecfa27a80
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 17, 2026, 6:23 AMSep 17, 2026, 6:23 AM
Submitted:
Sep 17, 2026, 12:29 PM

Merkle root (SHA-256)

b92b516cfeb1b6b859414bf9e932fa374e41d77469e8ab6eedcaca59afa77763
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 17, 2026, 12:28 AMSep 17, 2026, 12:28 AM
Submitted:
Sep 17, 2026, 6:23 AM

Merkle root (SHA-256)

1ff71f5b54acca957db9d5c7f07662b185ed6ab7e1ace44fb593afb528e56c9d
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 16, 2026, 6:21 PMSep 16, 2026, 6:21 PM
Submitted:
Sep 17, 2026, 12:28 AM

Merkle root (SHA-256)

40449fd84e3d8dbc9713f5504e44592b5334454e164078fedf177e777e4e62fb
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 16, 2026, 12:20 PMSep 16, 2026, 12:20 PM
Submitted:
Sep 16, 2026, 6:21 PM

Merkle root (SHA-256)

0b8068519168366bfb0aaa1761174d9505ef8da09d25edf76e895341d4b4be20
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 16, 2026, 12:28 AMSep 16, 2026, 12:28 AM
Submitted:
Sep 16, 2026, 12:20 PM

Merkle root (SHA-256)

e4791beee266c18bca4eb714ba702fe5d23c55f38d7f32a71bb49361774f49c1
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 15, 2026, 6:28 PMSep 15, 2026, 6:28 PM
Submitted:
Sep 16, 2026, 12:28 AM

Merkle root (SHA-256)

2342848ee125bb08a5941a5ba11975ecd2c64276c16a4ae4b66b08d5c4398e6f
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 15, 2026, 12:22 PMSep 15, 2026, 12:22 PM
Submitted:
Sep 15, 2026, 6:28 PM

Merkle root (SHA-256)

8487e7eaf528801203e63d65687b7278ffd4cea5051edc5e0a4ef38b9e288bc8
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 15, 2026, 6:26 AMSep 15, 2026, 6:26 AM
Submitted:
Sep 15, 2026, 12:22 PM

Merkle root (SHA-256)

6dac017380b4b28608043935590dc20fd0263394b37e26fb9026d001a3f1648d
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 15, 2026, 12:29 AMSep 15, 2026, 12:29 AM
Submitted:
Sep 15, 2026, 6:26 AM

Merkle root (SHA-256)

82287f8b35e665c2298c319c56d6d52341153ad3cc458945a4c7e7fa0f4cd373
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 14, 2026, 6:26 PMSep 14, 2026, 6:26 PM
Submitted:
Sep 15, 2026, 12:29 AM

Merkle root (SHA-256)

e95a4894e19d678b464ab13becbd5cdc90b5144974a1a9a81634774403687f8f
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 14, 2026, 12:27 PMSep 14, 2026, 12:27 PM
Submitted:
Sep 14, 2026, 6:26 PM

Merkle root (SHA-256)

189d9ca0ab3ca8a97b14070ec2ce2a1d08b864597bb1c647b168585f733c0083
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 14, 2026, 6:20 AMSep 14, 2026, 6:20 AM
Submitted:
Sep 14, 2026, 12:27 PM

Merkle root (SHA-256)

a48c0db43ea28f1f4433cedb79066e647dfeafd9f0ec2cd930ce01a25349f0bc
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 14, 2026, 12:24 AMSep 14, 2026, 12:24 AM
Submitted:
Sep 14, 2026, 6:20 AM

Merkle root (SHA-256)

d56fab079c590ed8dadda5856fe818d0605dc6424fb8115bca5b8b55aa445101
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 13, 2026, 6:28 PMSep 13, 2026, 6:28 PM
Submitted:
Sep 14, 2026, 12:24 AM

Merkle root (SHA-256)

1231789ea895694a94c8b5f0888800895702fa5d3f46e7a870a8ebee8845f74f
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 13, 2026, 12:21 PMSep 13, 2026, 12:21 PM
Submitted:
Sep 13, 2026, 6:28 PM

Merkle root (SHA-256)

8b4370cd287c558aae1ab1676235df26d4332961efa06b7349b9ecea30acb9b4
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 13, 2026, 6:25 AMSep 13, 2026, 6:25 AM
Submitted:
Sep 13, 2026, 12:21 PM

Merkle root (SHA-256)

415243850e15d03694609cbdcef3ba184584734c98ee814ab68b070deaa55afb
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 13, 2026, 12:25 AMSep 13, 2026, 12:25 AM
Submitted:
Sep 13, 2026, 6:25 AM

Merkle root (SHA-256)

29e801cacb3022e6ef3840f98f356bfad6e46c80ef02ec2e35ac74a1f5dc2128
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 12, 2026, 6:29 PMSep 12, 2026, 6:29 PM
Submitted:
Sep 13, 2026, 12:25 AM

Merkle root (SHA-256)

52328144ca1d669d1b948cfeff63e0c861008762411381f5d045f2d3e93fbd52
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 12, 2026, 12:29 PMSep 12, 2026, 12:29 PM
Submitted:
Sep 12, 2026, 6:29 PM

Merkle root (SHA-256)

751e370e1fc82e860c1a1dd3da0a3de76572bcce4d3bcc6c549b0f4f17e8fbcc
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 12, 2026, 6:27 AMSep 12, 2026, 6:27 AM
Submitted:
Sep 12, 2026, 12:29 PM

Merkle root (SHA-256)

ebefdfe8b9f8797b33ded20c809aee9656d1bfe6e4a8cd79d8302718bb5eef1c
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 12, 2026, 12:22 AMSep 12, 2026, 12:22 AM
Submitted:
Sep 12, 2026, 6:27 AM

Merkle root (SHA-256)

3d98f58883a6f74ef327c90d22921dfb98a0970116035e9fbe462bc0c62a3474
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 11, 2026, 6:26 PMSep 11, 2026, 6:26 PM
Submitted:
Sep 12, 2026, 12:22 AM

Merkle root (SHA-256)

bdc6fae822f7754a1ffcd9bc5d95303fd58717169732661cb65ed0fbb3f1f590
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 11, 2026, 12:25 PMSep 11, 2026, 12:25 PM
Submitted:
Sep 11, 2026, 6:26 PM

Merkle root (SHA-256)

139080b290f3a901c01b969288a9281c5bb7e119faa443767965b129c01bd6dc
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 11, 2026, 6:26 AMSep 11, 2026, 6:26 AM
Submitted:
Sep 11, 2026, 12:25 PM

Merkle root (SHA-256)

08e62b54624de83542278b886abd8cdac83bf1765aa28e5e808c9dff8674f92f
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 11, 2026, 12:20 AMSep 11, 2026, 12:20 AM
Submitted:
Sep 11, 2026, 6:26 AM

Merkle root (SHA-256)

4cdbc19a73e1b2cd1af9d31e06bce581ac9f587272510f21f624de024e0bbc6b
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 10, 2026, 6:22 PMSep 10, 2026, 6:22 PM
Submitted:
Sep 11, 2026, 12:20 AM

Merkle root (SHA-256)

13fb67078a9c51baa530e89ad5e068b5f07ca632736f95ed811a574f8615a8dd
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 10, 2026, 12:25 PMSep 10, 2026, 12:25 PM
Submitted:
Sep 10, 2026, 6:22 PM

Merkle root (SHA-256)

0cb23bbcce7af1d62e4c8dee5e4f7deaf6d08788659414fe281de4073bd707af
Submitted
covers 1 records
Download proof (.ots)

Accepted by a timestamp calendar but not yet included in a block. Until it is, the calendar operator is the only party attesting to the time.

Range:
Sep 10, 2026, 6:29 AMSep 10, 2026, 6:29 AM
Submitted:
Sep 10, 2026, 12:25 PM

Merkle root (SHA-256)

8eb9036e76546266ad85d682587803a4968e22f1572944713986b259e358758b

Verify it yourself, without us

We publish an endpoint that recomputes the root, but that only shows we agree with ourselves. The check worth doing uses the reference OpenTimestamps client, which talks to Bitcoin and has no reason to take our word for anything.

pip install opentimestamps-client
curl -o anchor.ots https://earth365.org/api/anchors/<id>/proof
ots verify --digest <merkle-root> anchor.ots

A successful verification tells you the fingerprint existed at that block time. To check that the fingerprint still matches today's records, ask us for the inclusion proof of a specific record.