Stock Block

Buy and sell stock photos on the blockchain

CLIENT

Local Hack Day 2017

TYPE

Full-stack Development

TOOLS USED

Solidity

Embark

HTML

CSS

JavaScript

TIMELINE

December 2017

Problem Definition

Online marketplaces are a great way to connect sellers to buyers that may not have otherwise known about each other. These marketplace sites often act as a middleman and take exorbitant cuts that hurt the seller. An example of this is Shutterstock, where contributors only receive 15 - 40% for the sale of their photos.

Product Goal

For Local Hack Day 2017, my team wanted to create an application that allows photographers and artists to sell their photos direct-to-consumer. To avoid the middleman, we wanted to make it decentralized and put it on the blockchain.

Constaints

  • The project must be completed in 12 hours.
  • Transactions on the blockchain are non-refundable.
  • Running an application on the Ethereum blockchain requires gas (small amounts of Ethereum that we need to pay continuously for the computational effort required to execute certain operations)

Assumptions

  • Our watermark will be enough to deter people from just using the photo’s preview image
  • Buyers and sellers have an Ethereum wallet setup.

Conclusion

My team built a web marketplace for users to buy and sell stock photos on the blockchain. Sellers could upload pictures and set their own prices, and buyers could browse a list of photos and purchase them using Ethereum.

We used the embark framework to compile and migrate our solidity contracts to the blockchain and testrpc for the blockchain which also manages the accounts. We used MetaMask to manage the accounts and balances. IPFS (Interplanetary File System) to store the pictures and produce hashes of them to get later. Javascript and HTML was used to create the webpage and communicate with the smart contracts.

We presented this project to a panel of judges consisting of computer science professors and industry experts including one who worked in the cryptocurrency space.