This is the monorepo for Galxe Identity protocol, powered by Turborepo. It includes the following packages/apps:
@galxe-identity-protocol/evm-contracts
: a hardhat project of all the evm contracts, including typechain generated TypeScript bindings.@galxe-identity-protocol/sdk
: a TypeScript SDK for everything related to the protocol.@repo/eslint-config
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)@repo/typescript-config
:tsconfig.json
s used throughout the monorepo
cli
: a cli tool for managing the protocol, including interacting with the on-chain contracts and type generation.issuer
: a microservice that issues credentials by GRPC request.sstyper
: a fully self-sovereign credential type setup tool.
Developers should use the current LTS version of node. Currently, node v20.11.1. For package users, the SDK is compatible with node v18 and above.
# For nvm users:
nvm install --lts
nvm use --lts
We use corepack for managing package managers.
corepack enable
corepack install # this will install pnpm version specified in package.json
pnpm lint
pnpm build
pnpm test
- Using type DSL to design the credential type.
- Use
app/sstyper
to run the setup process, which will generate type artifacts, including
- zkey, vkey, proofgen wasm...
- solidity verifier contract
- Upload the artifacts to IPFS and create a metadata json file containing URI to the artifacts. See artifacts in
artifacts/**/metadata.json
for reference. - Deploy the verifier contract to supported chains. See
evm-contracts/deploy
. - Register the type on supported chains, using the
metadata.json
URI. If primitive type, seeevm-contracts/scripts
for reference.
If you saw build error when building a package that is depending on local packages, try pnpm build
in the root directory first. It is because that dependencies were not built.