Permanent and provable blockchain anchoring for Git commits with convenient integration into existing workflows.
With GitAnchor every Git (and GitHub) commit can be made permanent and provable by anchoring it in the blockchain. The smart contract based anchors are immutable and therefore proof that a repository at any given commit state has existed at the time when the anchor was set.
A GitAnchor consist of the commit hash as well as the timestamp when the anchor was set and the wallet address (EOA) of the person who was setting the anchor.
A Git commit hash is a SHA1 hash that among other data itself consists of several different hashes. Those contain the parent hash, which is a pointer to the parent of the current commit, and the tree hash, which is a hash of the whole directory tree including all its files.
GitAnchor therefore provides an easy and convenient way to proof the existence of any kind of files in combination with all the versioning features that regular Git is offering. Its convenience is achieved by a set of seamlessly integrated tools, consisting of a GitHub browser plugin, a command line interface and the GitAnchor webapp.
This project covers the whole stack of blockchain development. Among others the primary technologies used are Solidity, ethers.js, TypeScript, JavaScript, Tampermonkey, Node.js, and Angular. The core of the project is a smart contract that is deployed on Ethereum, Polygon, Optimism, and Cronos.