Copyright for the world, held by us.

Created by Joe Babbitt + Samuel Piltch at Stuyvesant Local Hack Day in 12 hours.


Users "upload" (no actual connection to server is established) files to the website, their file is locally converted to a SHA-256 checksum with private key. The generated SHA-256 is anonymously sent to the blockchain as a . Each transaction For the "transaction" to be added to the blockchain, notaries will verify the document and check that it is truly yours. After verifying all the documents, notaries will act as "nodes" in the blockchain. They will take the new "transactions" and bundle them into blocks and add them into the blockchain. Each block in the block chain will contain only the newest transactions, assuring that there are no two same transactions in different blocks.


  • client: front-end of the blockchain, where users: submit their files, verify their signatures, and view the blockchain ledger.
  • miner: the blockchain server, where: transaction, mining, and display requests are handled.
  • server: database that stores transactions before being added to the blockchain so that users can see their unverified files. [incomplete]


Make sure you have Node.js installed.

  1. Download this repository.
  2. Install the Node.js dependencies: ‡ $ cd miner $ npm install --save
  3. Build the node servers: ‡ $ npm build
  4. Run both servers: ‡ $ node index.js

‡ Make sure you are doing this for both servers (miner + server) by cd-ing into the respective folders.


  • To upload a file and create a transaction, go to client/index.html in a web browser.
  • To view the blockchain, go to client/dashboard.html in a web browser.
  • To verify the files and add them to the blockchain, go to: localhost:4000/mine in a web browser. ‡‡

‡‡ If using a port other than the default one, make sure that 4000 is replaced with the port that corresponds to the miner server.

Built With

Share this project: