Skip to main content

Unlock Smart Contracts

The Unlock Protocol, at its core, is enabled by 2 primary Ethereum smart contracts, deployed on all networks supported by Unlock: the Unlock and the PublicLock contracts . We have a few more contracts, such as the governance token contract and the actual governance contract, but they are not actually required by the core protocol.

Our contracts have been audited by 3 different teams.

Npm Modules

Each version of the contracts is available via the @unlock-protocol/contracts module. Among other things, this module includes the compiled artifacts for both Unlock.sol and PublicLock.sol, as well as the interfaces for our contracts, a changelog and, the commit hash for this version. This allows us (or anyone) to support multiple versions when building on Unlock!

How to use

yarn add @unlock-protocol/contracts
// get latest
import unlock from '@unlock-protocol/contracts/abis/Unlock'

// get previous versions
import unlock from '@unlock-protocol/contracts/abis/UnlockV0'
import { UnlockV0 } from '@unlock-protocol/contracts'
import '@unlock-protocol/contracts/dist/Unlock/UnlockV0.sol';


Other standards which Unlock adheres to are:

  • erc-1167 - Minimal Proxy Contract
  • erc-165 - Standard Interface Detection
  • erc-712 - Ethereum typed structured data hashing and signing (in progress)
  • erc-20 - Token Standard (in progress)

Supported networks

You can find the list of networks on this page.