← mattsiravo.com

Verify a record

Every trade memo published here is cryptographically hashed and submitted to the Bitcoin network for timestamping. This page explains what that means and lets you verify any record independently, using nothing but tools you can run yourself.

Inception portfolios

The full position list for each portfolio as of the day it was opened, hashed and submitted to the Bitcoin network. This proves the starting allocation was set before any performance was observed.

Verify by hash
Paste a SHA-256 hash from a trade memo
Compute a hash yourself

Each memo's hash is computed from its canonical string in the format TIMESTAMP|BOOK|TICKER|ACTION|MEMO TEXT. Paste one below and the hash is computed live in your browser — no server involved.

Canonical string
SHA-256 (computed in your browser)
Enter text above

How this works — a plain-language guide to cryptographic proof
What is a hash function?

A hash function is a mathematical process that takes any piece of text — a single word, a sentence, an entire book — and converts it into a fixed-length string of characters. Think of it as a fingerprint for data. The fingerprint is exactly 64 characters long regardless of how long the original text is. Every different input produces a different fingerprint. The same input always produces the same fingerprint.

Input: "Hello"
SHA-256: 185f8db32921bd46d35c6d9b855ddd7b...

Input: "Hello." (one period added)
SHA-256: 9a4bfca4f1b9e8b70a9c6f2d3e8e1c5a...

A single character change produces a completely different hash. This is called the avalanche effect.
Why does this prove a memo was not altered?

SHA-256 is a one-way function — you can compute the hash from the text, but you cannot reverse-engineer the original text from the hash. More importantly, it is computationally infeasible to find two different texts that produce the same hash. This has been true since SHA-256 was published in 2001 and remains unbroken today.

When a memo is published with its hash, anyone can verify it by computing the hash themselves and comparing. If the text had been altered — even one character changed, one word added, one space removed — the hash would be completely different. The hash is the proof.

But could not the hash itself be replaced along with the text?

Yes — which is why the hash alone is not sufficient proof. You also need to prove when the hash was created. A timestamp you control can be backdated. This is where Bitcoin enters.

What is Bitcoin's role here?

Bitcoin produces blocks approximately every 10 minutes. Each block contains a cryptographic reference to the previous block, forming an unbroken chain going back to January 2009. Altering any historical block would require redoing all the computational work that followed it — an impossibility given the scale of the Bitcoin network.

This makes Bitcoin a trustless clock. When a hash is included in a Bitcoin transaction confirmed in block #895,432, it proves the hash existed before that block was mined. Everyone on Earth can verify this independently using the Bitcoin blockchain, which no single entity controls.

The writer Gigi described Bitcoin as "a timestamp machine" in his 2021 essay Bitcoin Is Time. The core insight is that proof-of-work mining is fundamentally a mechanism for agreeing on the passage of time without trusting any central authority. A hash committed to the Bitcoin blockchain is as close to an immutable timestamp as anything that currently exists.

What is OpenTimestamps?

OpenTimestamps (opentimestamps.org) is an open protocol for Bitcoin timestamping created by Bitcoin developer Peter Todd. Rather than paying for a separate Bitcoin transaction for every hash, OpenTimestamps aggregates thousands of hashes into a Merkle tree — a mathematical structure that can prove any individual hash was part of the group — and submits one Bitcoin transaction containing the Merkle root. This makes timestamping essentially free while inheriting Bitcoin's full security guarantees.

The .ots proof file linked on each confirmed memo contains the Merkle path connecting your specific hash to a Bitcoin transaction. Anyone can download this file and verify it independently using open-source tools.

Note: Bitcoin confirmation typically takes a few hours to a few days depending on network congestion. Each memo shows how long confirmation took and the fee rate (sat/vbyte) paid — a real-time indicator of Bitcoin blockspace demand.


How to verify a record yourself — step by step
1
Find the memo you want to verify
On the main page, expand any trade memo. You will see the canonical string and the SHA-256 hash (64 hex characters). Copy the canonical string.
2
Compute the hash yourself
Paste the canonical string into the calculator above. The hash is computed live in your browser using the Web Crypto API — no server involved. Compare to the published hash. If they match, the memo is unaltered.

You can also use a terminal: echo -n "canonical_string" | sha256sum on Linux/Mac, or any online SHA-256 tool.
3
Look up the hash on this page
Paste the 64-character hash into the tool above. If the record exists, you will see the full memo, the Bitcoin block it was confirmed in, and the timestamp.
4
Verify the Bitcoin timestamp independently
Download the .ots proof file linked on each confirmed memo. Then:

Option A — Command line: pip install opentimestamps-client then ots verify memo.ots

Option B — Browser: Go to opentimestamps.org and use their web verifier.

Option C — Block explorer: Look up the Bitcoin transaction ID from the .ots file on mempool.space or blockstream.info.
5
What a verified record proves
A verified record proves: (1) the memo text has not been altered — any change produces a different hash; (2) the hash existed before the Bitcoin block that confirmed it; (3) the record was not created retroactively.

What it does not prove is identity — only that whoever controls mattsiravo.com published this text at this time. The absence of a record is equally meaningful: if a memo was not published before a market move, it was not published before that move.