Unlock is the web's new business model
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates (#141) Jul 11, 2018
docker staging for better caching (#956) Jan 14, 2019
locksmith Adds ignore for development database (#1051) Jan 16, 2019
scripts Checking identity against aws (#1054) Jan 16, 2019
smart-contracts Exposes method providing keyholder addresses by Page (#1018) Jan 15, 2019
tests staging for better caching (#956) Jan 14, 2019
unlock-app extract saveLock in preparation for making the lock editable (#1048) Jan 16, 2019
wiki @ 85a9ac1 adding github wiki to main repo (#579) Nov 20, 2018
.gitignore removed artifacts from the repo (#986) Jan 14, 2019
.gitmodules adding github wiki to main repo (#579) Nov 20, 2018
.huskyrc.js fixing husky (#674) Dec 6, 2018
.travis.yml refactoring image building and pushing (#1050) Jan 16, 2019
CODE_OF_CONDUCT.md Adding Contributor Covenant CoC (#180) Aug 20, 2018
CONTRIBUTING.md Mentioning that we need screenshots on PRs (#463) Nov 1, 2018
LICENSE Adding MIT License (#108) Jun 7, 2018
PULL_REQUEST_TEMPLATE.md add sub-sections to define what 1 purpose is (#873) Jan 2, 2019
README.es.md Update README.md (#276) Oct 3, 2018
README.md Removing docs folder - all content is now present on the wiki (#770) Dec 19, 2018
greenkeeper.json Greenkeeper/initial (#355) Oct 15, 2018
mkdocs.yml Initial mkdocs.yml file for documentation (#262) Sep 21, 2018
package-lock.json staging for better caching (#956) Jan 14, 2019
package.json Modify package jsons (#997) Jan 14, 2019



This repository includes all the code deployed by Unlock, including smart contracts and the web app running at https://unlock-protocol.com.

Unlock is an access control protocol built on a blockchain. It enables creators to monetize their content or software without relying on a middleman. It lets consumers manage all of their subscriptions in a consistent way, as well as earn discounts when they share the best content and applications they use.

Read more about why we're building Unlock.

License: MIT Build Status Greenkeeper badge


We recorded a screencast to show how Unlock works for a paywall. (Note: this video is a few months old and outdated but still shows the "user flow" pretty accurately.)

Demo Unlock

We are building this in the open, which mean you can run the code locally (see instructions below). You could also try out the staging version - which runs the latest, in-progress code - at https://staging.unlock-protocol.com. Finally, you can learn more on our documentation wiki.


Thanks for your interest in contributing to Unlock! We're excited you're here. There are a variety of ways to contribute to the project. Please read more about contributing in our contributor guide. Please also check our code of conduct for all participants in our community.

Getting started

  1. Ensure your dev environment is correct

unlock requires node version 8.11.4, and the latest npm in order to build. You can ensure that npm is the latest version with:

$ npm i -g npm

To manage node versions, there are several options. If you are using nvm, note that the default version of npm installed with node version 8.11.4 is outdated, and will result in several node-gyp errors. Upgrading npm will fix these errors.

  1. Check out the code from this repository
git clone https://github.com/unlock-protocol/unlock
cd unlock
  1. Install all deps

This will install all dependencies required for all the Unlock components (smart contracts and react app).

$ npm install
  1. Run the app (this should also compile and deploy the smart contract to a local truffle node)
cd unlock-app && npm run dev

Running tests/ci

We deploy with docker/docker-compose:

docker-compose -f docker/docker-compose.ci.yml build
docker-compose -f docker/docker-compose.ci.yml up --abort-on-container-exit