This is a proof of concept for a Credential Verifier built as an EigenLayer Actively Validated Service (AVS).
Key features and goals:
- Clients (subjects, issuers, etc.) can verify JWT credentials, establishing their verification on chain and enhancing the issuers' reputation.
- AVS operators verify credentials off-chain and pass necessary data to the AVS contract, where the credential signature is checked against the issuer's public key (converted to an Ethereum address equivalent).
- Further data about the issuer, subject and credential can be written on chain.
- A public track record of issuer claims can be established.
-
Install Dependencies:
./bin/install_dependencies.sh
-
Start Anvil: In a separate terminal window, run:
anvil
-
Deploy Contracts and Register Operator:
./bin/deploy_and_register.sh
-
Run Operator:
npx tsx operator/index.ts
-
Create a Task: Once the setup is complete, you can create a task by running:
npx tsx operator/createTask.ts
If updating CredentialVerifierServiceManager.sol
, update the TypeScript ABI after running forge build
.
Make sure jq
is installed locally, then run:
./bin/update_service_manager_abi.sh