ideablock-commit
v2.0.0
Published
CLI tool for anchoring git commit hashes to the Bitcoin blockchain via Ideablock
Maintainers
Readme
Ideablock Commit — Setup & Development Guide
Automatically tethers every git commit to the Bitcoin blockchain using Ideablock services.
Prerequisites
- An Ideablock account (for authentication)
Install globally
# From this repo root
npm install
npm install -g .Verify:
ideablock-commit --helpInitialize in a git repo
From the root of any git repository:
ideablock-commit initThis will:
- Prompt for your Ideablock email and password (first time only)
- Cache your auth token at
~/.ideablock/auth.json - Install a
post-commitgit hook that firesideablock-commit runon every commit - Create a
.ideablock/config directory in the repo
How it works
On every git commit, the hook automatically:
- Reads your auth token from
~/.ideablock/auth.json - Gets the git short hash of the new commit (e.g.
f99a94c) - Gets the commit message
- Archives the repo via
git archive→~/.ideablock/commits/{repo}/{hash}/Commit-{hash}.zip - SHA-256s the archive → Repository Hash
- Generates a random Parity Digit (0–9)
- Constructs the Bitcoin-Tethered Hash:
shortHash + repoHash + parityDigit - POSTs the Repository Hash to timeglue → receives a Bitcoin transaction ID
- Saves a
commitData.jsonrecord locally at~/.ideablock/commits/{repo}/{hash}/ - Best-effort syncs the record to the Ideablock backend for webapp display
- Prints the commit information table to your terminal
Local data
All commit records are stored at:
~/.ideablock/commits/{repoName}/{gitShortHash}/
Commit-{shortHash}.zip ← snapshot of the repo at commit time
commitData.json ← all hash and blockchain dataDo not delete this directory. It is your local proof-of-existence archive.
commitData.json structure:
{
"repoName": "my-project",
"shortHash": "f99a94c",
"commitMessage": "fix: update auth flow",
"repoHash": "c9c3ad5b...",
"parityDigit": 5,
"blockchainTetheredHash": "f99a94cc9c3ad5b...5",
"btcTxID": "a9369cd8...",
"committedAt": "2026-05-18T12:00:00.000Z"
}Commands
ideablock-commit init # Initialize in a git repo (installs hook, prompts login)
ideablock-commit on # Resume tethering in this repo
ideablock-commit off # Pause tethering in this repo
ideablock-commit status # Check whether tethering is on or off
ideablock-commit remove # Remove hook and .ideablock config from this repoVerify a stamp on-chain
After a commit, look up the Bitcoin transaction ID on mempool.space:
https://mempool.space/tx/{btcTxID}The OP_RETURN output will contain the Ideablock prefix followed by the Repository Hash — permanent, public proof that your code existed at that block height.
Troubleshooting
"Not authenticated. Run ideablock-commit init"
Your ~/.ideablock/auth.json is missing. Run ideablock-commit init in any
git repo to re-authenticate. If you do not have a registered account, obtain one by registering
