Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
08230ba
chore(explorer): Use custom IPFS URL (#148)
michaelelliot Jan 19, 2026
e425b96
chore(registry-sdk): Update IPFS links to use Pinata gateway (#151)
michaelelliot Feb 4, 2026
e0bfd8d
ci(workspace): Improve linting for better code quality (#149)
michaelelliot Feb 6, 2026
4c40239
ci: Add npm auto publishing using OIDC (#154)
michaelelliot Feb 6, 2026
bea49db
feat(utils): Brute force signature verification for CSC <> DSC matchi…
madztheo Feb 6, 2026
d103673
feat(registry)!: Add cert fingerprint and expiry to leaf hash calc (#…
michaelelliot Feb 6, 2026
3f28ada
chore(sdk): Restrict sanctions check API options (#155)
madztheo Feb 9, 2026
99d5abd
chore(utils): Update Barrett reduction overflow bits to match new Noi…
madztheo Feb 24, 2026
7e774f7
chore(utils): Increase max size of signed attributes (#159)
madztheo Mar 4, 2026
ff08f95
ci: Update PR check workflow to include contracts scope (#161)
michaelelliot Mar 4, 2026
efb013e
chore(sdk): Add checks against original query in public input checks …
madztheo Mar 30, 2026
a155e5d
fix(sdk): Public input checkers (#169)
robertbrada Apr 8, 2026
6ac2cc4
feat(sdk): Update oprf utils, add oprf params to input generators (#173)
saleel Apr 26, 2026
d027018
feat(contracts): Add new ProtocolController contract (#160)
michaelelliot Apr 28, 2026
e6c8b7d
feat(workspace): New certificate root format (#174)
michaelelliot Apr 28, 2026
9cf7c3a
chore(utils): Use v1 certificate format in inputs (#175)
saleel Apr 30, 2026
f301d72
chore(sdk): Disable salted nullifier on facematch (temp) (#176)
saleel Apr 30, 2026
57bf0d5
chore(registry-sdk): Rename sepolia to testnet (#177)
saleel May 4, 2026
bb46aaf
chore(sdk): Switch chainId based on devmode for verification (#178)
saleel May 4, 2026
96f4db6
chore(contracts): Update solidity verifier to include oprf check (#179)
saleel May 6, 2026
173db34
chore(explorer): Add mainnet B to network selection (#181)
zkmike May 6, 2026
c99138c
chore(registry-sdk): Prepare new registry helper addresses (#182)
michaelelliot May 6, 2026
ae9c1b2
chore(explorer): Add Base Mainnet B (#183)
michaelelliot May 6, 2026
169dcb1
chore(registry-sdk): Add Base chain support to packaged certs URL gen…
michaelelliot May 6, 2026
c649405
chore(registry-sdk): Add Base chain support to packaged certs URL gen…
michaelelliot May 6, 2026
ac7c9d8
chore(sdk): Remove -beta suffix from version (#186)
saleel May 7, 2026
e0b8796
fix(sdk): Onchain simulation (#187)
saleel May 7, 2026
3c9109f
chore(sdk): Version 0.14.1 (#188)
saleel May 7, 2026
5af1ece
chore(registry): Remove Mainnet B and Testnet B (#189)
saleel May 8, 2026
cd76357
fix(utils): Change oprf zero proof formatting (#190)
madztheo May 8, 2026
8a634e4
Merge remote-tracking branch 'upstream-new/main' into update-package
Aschente0 May 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
module.exports = {
root: true,
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
plugins: ["@typescript-eslint", "prettier"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
env: {
browser: true,
node: true,
},
rules: {
"prettier/prettier": "error",
"semi": ["error", "never"],
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": [
"warn",
{
args: "all",
argsIgnorePattern: "^_",
caughtErrors: "all",
caughtErrorsIgnorePattern: "^_",
destructuredArrayIgnorePattern: "^_",
varsIgnorePattern: "^_",
ignoreRestSiblings: true,
},
],
},
}
29 changes: 0 additions & 29 deletions .eslintrc.json

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/check-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
build
requireScope: false
scopes: |
(registry|explorer|registry-sdk|sdk|utils|workspace)(,(registry|explorer|registry-sdk|sdk|utils|workspace))*
(contracts|registry|explorer|registry-sdk|sdk|utils|workspace)(,(contracts|registry|explorer|registry-sdk|sdk|utils|workspace))*
subjectPattern: ^[A-Z].+$
subjectPatternError: |
The subject must start with an uppercase letter.
Expand All @@ -38,7 +38,7 @@ jobs:
with:
requireScope: true
scopes: |
(registry|explorer|registry-sdk|sdk|utils|workspace)(,(registry|explorer|registry-sdk|sdk|utils|workspace))*
(contracts|registry|explorer|registry-sdk|sdk|utils|workspace)(,(contracts|registry|explorer|registry-sdk|sdk|utils|workspace))*
subjectPattern: ^[A-Z].+$
subjectPatternError: |
The subject must start with an uppercase letter.
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Install Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.1
bun-version: 1.3.8

- name: Cache Bun dependencies
uses: actions/cache@v4
Expand Down Expand Up @@ -59,6 +59,9 @@ jobs:
- name: Test
run: bun run test

- name: Validate packages
run: bun run validate-packages

dependency-sync-check:
name: Dependency Sync Check
runs-on: ubuntu-latest
Expand All @@ -69,7 +72,7 @@ jobs:
- name: Install Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.1
bun-version: 1.3.8

- name: Cache Bun dependencies
uses: actions/cache@v4
Expand Down
33 changes: 19 additions & 14 deletions .github/workflows/publish-registry-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@ jobs:
publish:
name: Publish Registry SDK
runs-on: ubuntu-latest
environment: npm-publish
permissions:
id-token: write # Required for OIDC
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.1
bun-version: 1.3.8

- name: Cache Bun dependencies
uses: actions/cache@v4
Expand All @@ -34,22 +39,18 @@ jobs:
run: bash scripts/sync-workspace-deps.sh check

- name: Install system dependencies
if: github.ref == 'refs/heads/main'
run: sudo apt-get install -y lsof jq zsh

- name: Install Foundry
if: github.ref == 'refs/heads/main'
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.4.4

- name: Install Foundry dependencies
if: github.ref == 'refs/heads/main'
run: forge install
working-directory: packages/registry-contracts

- name: Setup Turbo cache
if: github.ref == 'refs/heads/main'
uses: actions/cache@v4
with:
path: .turbo
Expand All @@ -58,27 +59,31 @@ jobs:
${{ runner.os }}-turbo-

- name: Build package
if: github.ref == 'refs/heads/main'
run: bun run build --filter=@zkpassport/registry

- name: Setup Node.js for npm publish
uses: actions/setup-node@v4
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'

- name: Check if version is published to npm
if: github.ref == 'refs/heads/main'
id: version_check
run: |
VERSION=$(bun -p "require('./packages/registry-sdk/package.json').version")
if ! bun pm view @zkpassport/registry@$VERSION version 2>/dev/null; then
VERSION=$(node -p "require('./packages/registry-sdk/package.json').version")
if ! npm view @zkpassport/registry@$VERSION version 2>/dev/null; then
echo "publish=true" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
fi

- name: Publish new version to npm
if: steps.version_check.outputs.publish == 'true' && github.ref == 'refs/heads/main'
if: steps.version_check.outputs.publish == 'true'
run: |
../../scripts/prepublish.sh
PKG=$(bun pm pack --quiet | xargs)
if [[ "${{ steps.version_check.outputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+\- ]]; then
bun publish --tag beta
npm publish "$PKG" --ignore-scripts --provenance --access public --tag beta
else
bun publish
npm publish "$PKG" --ignore-scripts --provenance --access public
fi
working-directory: packages/registry-sdk
env:
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
33 changes: 19 additions & 14 deletions .github/workflows/publish-zkpassport-sdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@ jobs:
publish:
name: Publish SDK
runs-on: ubuntu-latest
environment: npm-publish
permissions:
id-token: write # Required for OIDC
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.1
bun-version: 1.3.8

- name: Cache Bun dependencies
uses: actions/cache@v4
Expand All @@ -34,22 +39,18 @@ jobs:
run: bash scripts/sync-workspace-deps.sh check

- name: Install system dependencies
if: github.ref == 'refs/heads/main'
run: sudo apt-get install -y lsof jq zsh

- name: Install Foundry
if: github.ref == 'refs/heads/main'
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.4.4

- name: Install Foundry dependencies
if: github.ref == 'refs/heads/main'
run: forge install
working-directory: packages/registry-contracts

- name: Setup Turbo cache
if: github.ref == 'refs/heads/main'
uses: actions/cache@v4
with:
path: .turbo
Expand All @@ -58,27 +59,31 @@ jobs:
${{ runner.os }}-turbo-

- name: Build package
if: github.ref == 'refs/heads/main'
run: bun run build --filter=@zkpassport/sdk

- name: Setup Node.js for npm publish
uses: actions/setup-node@v4
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'

- name: Check if version is published to npm
if: github.ref == 'refs/heads/main'
id: version_check
run: |
VERSION=$(bun -p "require('./packages/zkpassport-sdk/package.json').version")
if ! bun pm view @zkpassport/sdk@$VERSION version 2>/dev/null; then
VERSION=$(node -p "require('./packages/zkpassport-sdk/package.json').version")
if ! npm view @zkpassport/sdk@$VERSION version 2>/dev/null; then
echo "publish=true" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
fi

- name: Publish new version to npm
if: steps.version_check.outputs.publish == 'true' && github.ref == 'refs/heads/main'
if: steps.version_check.outputs.publish == 'true'
run: |
../../scripts/prepublish.sh
PKG=$(bun pm pack --quiet | xargs)
if [[ "${{ steps.version_check.outputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+\- ]]; then
bun publish --tag beta
npm publish "$PKG" --ignore-scripts --provenance --access public --tag beta
else
bun publish
npm publish "$PKG" --ignore-scripts --provenance --access public
fi
working-directory: packages/zkpassport-sdk
env:
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
33 changes: 19 additions & 14 deletions .github/workflows/publish-zkpassport-utils.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@ jobs:
publish:
name: Publish Utils
runs-on: ubuntu-latest
environment: npm-publish
permissions:
id-token: write # Required for OIDC
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.1
bun-version: 1.3.8

- name: Cache Bun dependencies
uses: actions/cache@v4
Expand All @@ -34,22 +39,18 @@ jobs:
run: bash scripts/sync-workspace-deps.sh check

- name: Install system dependencies
if: github.ref == 'refs/heads/main'
run: sudo apt-get install -y lsof jq zsh

- name: Install Foundry
if: github.ref == 'refs/heads/main'
uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.4.4

- name: Install Foundry dependencies
if: github.ref == 'refs/heads/main'
run: forge install
working-directory: packages/registry-contracts

- name: Setup Turbo cache
if: github.ref == 'refs/heads/main'
uses: actions/cache@v4
with:
path: .turbo
Expand All @@ -58,27 +59,31 @@ jobs:
${{ runner.os }}-turbo-

- name: Build package
if: github.ref == 'refs/heads/main'
run: bun run build --filter=@zkpassport/utils

- name: Setup Node.js for npm publish
uses: actions/setup-node@v4
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'

- name: Check if version is published to npm
if: github.ref == 'refs/heads/main'
id: version_check
run: |
VERSION=$(bun -p "require('./packages/zkpassport-utils/package.json').version")
if ! bun pm view @zkpassport/utils@$VERSION version 2>/dev/null; then
VERSION=$(node -p "require('./packages/zkpassport-utils/package.json').version")
if ! npm view @zkpassport/utils@$VERSION version 2>/dev/null; then
echo "publish=true" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
fi

- name: Publish new version to npm
if: steps.version_check.outputs.publish == 'true' && github.ref == 'refs/heads/main'
if: steps.version_check.outputs.publish == 'true'
run: |
../../scripts/prepublish.sh
PKG=$(bun pm pack --quiet | xargs)
if [[ "${{ steps.version_check.outputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+\- ]]; then
bun publish --tag beta
npm publish "$PKG" --ignore-scripts --provenance --access public --tag beta
else
bun publish
npm publish "$PKG" --ignore-scripts --provenance --access public
fi
working-directory: packages/zkpassport-utils
env:
NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
# ZKPassport Monorepo

This monorepo contains the components of the ZKPassport Registry:
This monorepo contains the components of the ZKPassport project:

- **Registry Contracts**: Smart contracts for the on-chain registry
- **Registry Contracts**: Smart contracts for the onchain registry
- **Registry SDK**: JavaScript SDK for interacting with the registry
- **Registry Explorer**: Web app for exploring and verifying registry certificates
- **ZKPassport SDK**: SDK for integrating with ZKPassport
- **ZKPassport Utils**: Shared utilities used across ZKPassport packages

## Project Structure

```
zkpassport-packages/
├── packages/
│ ├── registry-contracts/ # Registry smart contracts
│ ├── registry-sdk/ # Registry JS SDK for querying the registry
│ ├── registry-explorer/ # Registry Explorer web app for exploring the registry
│ ├── registry-contracts/ # Registry Contracts
│ ├── registry-sdk/ # Registry SDK
│ ├── registry-explorer/ # Registry Explorer
│ ├── zkpassport-sdk/ # ZKPassport SDK
│ └── zkpassport-utils/ # ZKPassport Utils
```
Loading
Loading