This is an example project using Lit Protocol and HollowDB together to create a two-sided encryption flow.
Using Lit Protocol, any data can be encrpyted and can only be decrypted if certain access control conditions are met. See the lit protocol docs for more information.
On the otherside, HollowDB allows you to store your data permamently and privately. Unlike Lit Protocol, HollowDB hides your address information and lets you update the data only by providing ZK-proofs. Read more about HollowDB here.
Combining HollowDB with Lit Protocol gives you a two-sided encryption where both your identity and data is safe and encrypted.
We will use hollowdb-client
package for interact with the database/contract.
yarn add hollowdb-client
For the basics please look at this usage:
import { HollowClient } from "hollowdb-client";
async function main() {
const client = await HollowClient.new({
apiKey: "YOUR_API_KEY",
db: "Database-1",
});
await client.put(key, payload)
await client.update(key, newPayload, proof);
const result = await client.get(key);
}
main();
Please sign in from here to HollowDB dashboard to get your Api_Key
, Database_Name
, ContractTxId
that you will use in demo.
ContractTxId
: change in path lit/pages/api/hollowdb.js with the key found in here
DatabaseName
: change in path server/src/client/client.ts with the key found in here
ApiKeys
:change in path server/src/client/client.ts with the key found in here
Also 2 different node version needed to run this demo (Lit protocol uses v16, on the server side you can use v18). To do that first install nvm
according to instructions in here and then you open 2 different terminal windows (after running the yarn install
for both server/
and lit/
folders). Now you should be able to use 2 different node version via running nvm use <node_version>
in two different terminal windows.