A template for creating new SBTs inheriting from the Masa SBT smart contracts, using ZKP.
We use eth-crypto package to encrypt and decrypt the data.
The specific use case is about creating a SBT with driving license data.
For ease up testing users can mint the SBT as many times as they need
- Set
DEPLOYER_PRIVATE_KEY
to the deployers private key in.env.{network}.secret
- Set
INFURA_API_KEY
to the Infura API key in.env
- Set
COINMARKETCAP_API_KEY
to the CoinMarketCap API key in.env
, if needed - Set
ETHERSCAN_API_KEY
to the Etherscan API key in.env
, if needed - Set the environment variables in every
.env.{network}
file. These variables are used to deploy the smart contracts to the network.
Run:
yarn install
Run:
yarn build
Run:
yarn deploy --network {network}
You can see the deployment address of the smart contracts in the deployments/goerli and deployments/mainnet folders. For every deployed smart contract you will find a <smart_contract>.json
JSON file with the address in the "address"
field.
Zero-knowledge proof is a method by which one party (the prover) can prove to another party (the verifier) that the prover knows a value x that fulfills some constraints without revealing any information apart from the fact that he/she knows the value x.
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
git clone https://github.com/iden3/circom.git
cd circom
cargo build --release
cargo install --path circom
npm install -g snarkjs
follow commands in this file