BlockLock was created during the Ethdam 2024 Hackathon.
BlockLock attempts to bridge the gap between traditional web2 user experience and the advantages of using a confidential and decentralised environment.
BlockLock is a web extension that works similarly to web2 password manager plugins like 1Pass, however the difference is that data is stored on chain. Oasis was a great fit for the project with Sapphire's encrypted storage of data & private execution environment to maintain confidentiality.
This mono-repo is made up of two main components:
./extension
- Browser extension./sapphire
- Sapphire smart contract
Contract
- Create a
.env
file with your private key
cd sapphire
touch .env
Set the following keys:
PRIVATE_KEY=...
- Compile the contract
cd sapphire
pnpm install
pnpm hardhat compile
- Test the contract
npx hardhat test tests/SecretStore.test.ts
- Deploy on testnet or mainnet:
testnet:
npx hardhat run scripts/deploy.ts --network sapphire-testnet
mainnet:
npx hardhat run scripts/deploy.ts --network sapphire
Extension
- Create a
.env
file with your private key
cd extension
touch .env
Set the following keys:
VITE_METAMASK_EXT_ID=nkbihfbeogaeaoehlefnkodbefgpgknn
VITE_STORAGE_CONTRACT_ADDRESS=0x744c272c12D6c2417a0a99C69CaAD3719bc14E1C
- Build the extension
pnpm install
pnpm dev
- This will create a
dist/
folder that can be loaded into any Chrome-based browser following steps here
Oasis Documentation - https://docs.oasis.io/
We have deployed & verified a version of this contract on Sapphire testnet which you can use: https://explorer.oasis.io/search?q=0x744c272c12D6c2417a0a99C69CaAD3719bc14E1C
Humpty Dumpty Devs - @hddevs | Charlie - @mackcee | Jack - @goodestacre | Jordan - @0xjordang | Vikrant - @vikr13nt