Verax is a shared registry for storing attestations of public interest on EVM chains, designed to improve discoverability and reuse across applications.
Links • Repository Organisation • Global Setup • Workspace Quickstart • Environment Files • Contributing • Contracts Addresses • Subgraphs URLs • Network Prefixes • Deployment and Release Notes • License
| Workspace | Purpose | Contributor guide |
|---|---|---|
contracts/ |
Core registries, deploy scripts, upgrade scripts, published contracts package | contracts/README.md |
examples/ |
Example portals/modules and example-contract CI workspace | examples/README.md |
sdk/ |
TypeScript SDK, generated Graph client, examples and tests | sdk/README.md |
subgraph/ |
Graph manifests, mappings, tests and Studio deploy scripts | subgraph/README.md |
explorer/ |
Public Verax explorer frontend | explorer/README.md |
tutorial/ |
Demo/tutorial app built on top of the SDK | tutorial/README.md |
doc/ |
GitBook source for the published docs | GitBook entrypoint lives in doc/README.md |
CI reads Node.js and pnpm directly from the root package.json. On this branch, that means:
- Node.js
24.14.1 - pnpm
10.32.1
Install dependencies once from the monorepo root:
pnpm installFoundry is required when working on contracts/ or examples/. Other workspaces use the root Node.js/pnpm toolchain
plus package-local scripts.
Run the commands below from the monorepo root.
| Area | Common commands | Notes |
|---|---|---|
| Contracts | pnpm --filter @verax-attestation-registry/verax-contracts build / test |
Requires Foundry |
| Examples | pnpm --filter @verax-attestation-registry/verax-examples build / test |
Requires Foundry |
| SDK | pnpm --filter @verax-attestation-registry/verax-sdk test:unit / test:integration |
Uses .env.example |
| Subgraph | pnpm --filter linea-attestation-registry-subgraph build:linea-sepolia / test |
Deploys to The Graph Studio |
| Explorer | pnpm --filter verax-explorer dev / build |
Uses VITE_* env vars |
| Tutorial | pnpm --filter @verax-attestation-registry/verax-tutorial dev / build |
Demo app, no dedicated CI workflow today |
Each workspace README describes the maintainer workflow for that package in more detail.
| Workspace | Expected file | Purpose |
|---|---|---|
contracts/ |
contracts/.env copied from contracts/env/.env.<network> |
Deployments, upgrades, explorer verification, reimport |
sdk/ |
sdk/.env copied from sdk/.env.example |
Examples and integration tests |
explorer/ |
explorer/.env copied from explorer/.env.example |
WalletConnect, Infura, The Graph gateway |
tutorial/ |
tutorial/.env copied from tutorial/.env.example |
WalletConnect and Infura for the demo app |
subgraph/ |
No repo-local .env.example |
Use graph auth <ACCESS_TOKEN> when deploying |
Day-to-day contributions target dev. For contributor workflow, review expectations, package-specific validation, and
maintainer/community process, see CONTRIBUTING.md.
The core registry and AttestationReader addresses below are sourced from the deployment env templates under
contracts/env/ and aligned with the SDK defaults. The standard library addresses are the current published deployments
tracked in this repository and should be updated alongside deployment work.
Linea Sepolia
-
AttestationRegistry = 0xDaf3C3632327343f7df0Baad2dc9144fa4e1001F
-
ModuleRegistry = 0x3C443B9f0c8ed3A3270De7A4815487BA3223C2Fa
-
PortalRegistry = 0xF35fe79104e157703dbCC3Baa72a81A99591744D
-
SchemaRegistry = 0x90b8542d7288a83EC887229A7C727989C3b56209
Standard Library
- ECDSAModule: 0x43Ed26E6A6f020687F65cf61125a33EcFCa9D608 - ERC1271Module: 0x3130F70a771DccdE24680656Ab340b579BDF539E - FeeModule: 0xC5555Bf0584AdE1c90DcDCA20Ac4b6814F009a4e - IndexerModule: 0x30b493c00D05F6C3BA090d5FDa8743Fa8c075728 - IssuersModule: 0x0BF811Be65D88739BCdCB36515b2499Af02BE503 - SchemaModule: 0xC3969d728E5e6cf01a8B066d42918970Ee2a9eBe - SenderModule: 0x006764D85A351f508Ec02DBCd010251c66BC849F
Linea Mainnet
-
AttestationRegistry = 0x3de3893aa4Cdea029e84e75223a152FD08315138
-
ModuleRegistry = 0xf851513A732996F22542226341748f3C9978438f
-
PortalRegistry = 0xd5d61e4ECDf6d46A63BfdC262af92544DFc19083
-
SchemaRegistry = 0x0f95dCec4c7a93F2637eb13b655F2223ea036B59
-
AttestationReader = 0x40871e247CF6b8fd8794c9c56bB5c2b8a4FA3B6c
Standard Library
- ECDSAModule: 0x2878bdc6A7615600e9b6Aa04f7802267891FFAE5 - ERC1271Module: 0xb2553A7E443DFA7C9dEc01D327FdDff1A5eF59b0 - FeeModule: 0xD2B60076a83C6f6fad2506aF51b297a8725e8E0b - IndexerModule: 0x29205492435E1b06B20CeAeEC4AC41bcF595DFFd - IssuersModule: 0x5bfe4626632e424C616155e67319767239160871 - SchemaModule: 0x0EE9fCFc4A6eDB21F8bf8D2b694EA5C84F382c6E - SenderModule: 0x2790E1E589aBDbC7Ee53390aacC995539228bC5f
Arbitrum Sepolia
-
AttestationRegistry = 0xee5e23492bf49C1F4CF0676b3bF49d78A6dD61c5
-
ModuleRegistry = 0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6
-
PortalRegistry = 0x1ceb52584B6C45C7049dc7fDC476bC138E4beaDE
-
SchemaRegistry = 0x025531b655D9EE335B8E6cc4C118b313f26ACc8F
Standard Library
- ECDSAModule: 0x84D0c725CCe4eB7a7b95A4C36Bc0Ee5B5Df147d6 - ERC1271Module: 0xFa13B02636d888C46e504C16F267CF87131feB07 - FeeModule: 0x41b809c4B5c61FeBB0323F17aF179F7B16500fb3 - IndexerModule: 0xe0bA3B08dC6d08C95d39BE6e3dDa044f1a2896bF - IssuersModule: 0xCA56378292Fa10d95fF03ADEFF0d349c1bbedb67 - SchemaModule: 0xc1d6Bf1E16A7BEe02d11FBA0FA9cD8ff87DdE715 - SenderModule: 0x6634535e7FA978D1e971130437B72454590B42e6
Arbitrum Mainnet
-
AttestationRegistry = 0x335E9719e8eFE2a19A92E07BC4836160fC31cd7C
-
ModuleRegistry = 0x3acF4daAB6cbc01546Dd4a96c9665B398d48A4ba
-
PortalRegistry = 0x4042D0A54f997EE3a1b0F51e4813654199BFd8bD
-
SchemaRegistry = 0xE96072F46EA0e42e538762dDc0aFa4ED8AE6Ec27
-
AttestationReader = 0x324C060A26444c3fB9B93e03d31e8cfF4b1715C1
Standard Library
- ECDSAModule: 0x23178D693eB5D0cB2b4f2e4a4b4CDca9b063dC89 - ERC1271Module: 0x2859B1140B50E3E5a19C194b98887c980266c174 - FeeModule: 0x41b809c4B5c61FeBB0323F17aF179F7B16500fb3 - IndexerModule: 0xDb88823B739cC0D091a6119DC9948DF31Fa7Ba15 - IssuersModule: 0x7899A2eb994886db853414df7C8dE32515ADC0f5 - SchemaModule: 0xbFF5440ea31bbd1e943a758C217B1F0720a9BAff - SenderModule: 0x5BE10EFD4FfeB4410b2BBC5c8a4A623b07df05a8
Base Sepolia
-
AttestationRegistry = 0x374B686137eC0DB442a8d833451f8C12cD4B5De4
-
ModuleRegistry = 0xEC572277d4E87a64DcfA774ED219Dd4E69E4BDc6
-
PortalRegistry = 0x025531b655D9EE335B8E6cc4C118b313f26ACc8F
-
SchemaRegistry = 0x66D2F3DCc970343b83a6263E20832184fa71CFe7
-
AttestationReader = 0xbCcC37Ea3bEeAE614817f53542F1F4FfAE5E19c7
Standard Library
- ECDSAModule: 0xc1d6Bf1E16A7BEe02d11FBA0FA9cD8ff87DdE715 - ERC1271Module: 0x6634535e7FA978D1e971130437B72454590B42e6 - FeeModule: 0x718e541B4ED7AbC9596454C8Fa118cB0E8A69550 - IndexerModule: 0x0620C734A779fCE3F00fA68aFCe08B231019655E - IssuersModule: 0xEe57462A369fB886E66e00B4d46c0D69900aEf0d - SchemaModule: 0x2FEe3B89905D7a286254dBea7fF8fB83E8707D60 - SenderModule: 0x5166b1749ea89069bC0f735A397EF636AeF9BD49
Base Mainnet
-
AttestationRegistry = 0xA0080DBd35711faD39258E45d9A5D798852b05D4
-
ModuleRegistry = 0xAd0C12db58098A6665CBEf48f60eB67d81d1F1ff
-
PortalRegistry = 0xcbf28432C25B400E645F0EaC05F8954e8EE7c0d6
-
SchemaRegistry = 0x8081dCd745f160c148Eb5be510F78628A0951c31
-
AttestationReader = 0xbEDd72a8cCfBEC4e575dCdC1659A891018051a5C
Standard Library
- ECDSAModule: 0x1Cfaa05f833EB9A45d3f0846De50D97c7a8f256F - ERC1271Module: 0xB20aF6D674E5F25Ce1De91B1B72b9e18320e13A2 - FeeModule: 0xCacfE0C3bc2f160a072f4f72AAe964507f0964a0 - IndexerModule: 0x5b4ECD59b6adf86ABBF607519638C1Ab5C95fd83 - IssuersModule: 0xCce050D3027C4F6817f2F0e5f07e000Cc07AE0e0 - SchemaModule: 0xe50837E0f22B341038D1ea0A40C4Fe2AF26E00B0 - SenderModule: 0x1A8720d71541464e0e0D2cB8627Dadf6BdE757FF
BSC Testnet
-
AttestationRegistry = 0x5Cc4029f0dDae1FFE527385459D06d81DFD50EEe
-
ModuleRegistry = 0x6c46c245918d4fcfC13F0a9e2e49d4E2739A353a
-
PortalRegistry = 0xA4a7517F62216BD42e42a67dF09C25adc72A5897
-
SchemaRegistry = 0x51929da151eC2C5a5881C750E5b9941eACC46c1d
Standard Library
- ECDSAModule: 0x84D0c725CCe4eB7a7b95A4C36Bc0Ee5B5Df147d6 - ERC1271Module: 0xFa13B02636d888C46e504C16F267CF87131feB07 - FeeModule: 0x41b809c4B5c61FeBB0323F17aF179F7B16500fb3 - IndexerModule: 0xe0bA3B08dC6d08C95d39BE6e3dDa044f1a2896bF - IssuersModule: 0xCA56378292Fa10d95fF03ADEFF0d349c1bbedb67 - SchemaModule: 0xc1d6Bf1E16A7BEe02d11FBA0FA9cD8ff87DdE715 - SenderModule: 0x6634535e7FA978D1e971130437B72454590B42e6
BSC Mainnet
-
AttestationRegistry = 0x3D8A3a8FF21bD295dbBD5319C399e2C4FD27F261
-
ModuleRegistry = 0xD70a06f7A0f197D55Fa841fcF668782b2B8266eB
-
PortalRegistry = 0xb2553A7E443DFA7C9dEc01D327FdDff1A5eF59b0
-
SchemaRegistry = 0x29205492435E1b06B20CeAeEC4AC41bcF595DFFd
Standard Library
- ECDSAModule: 0xd580BD1259576C489543beBa99d4678453112A7f - ERC1271Module: 0x090AbB61eCDa7aD3a2FD83BA5b89bEd2946aA1c8 - FeeModule: 0x88bA70cB465ed130D899e0709CC22757Fa4D3704 - IndexerModule: 0x0B9223633DEF4455228fd1Ad0384a57eEaeE2303 - IssuersModule: 0x8d3634274bD47c6A66e4b216fCcafF99F74460F9 - SchemaModule: 0x65E3025c4B82f35918DeDd57f2058e7de7F92c33 - SenderModule: 0xb439016Da49eA9bD036523F0B5416B0319027e8E
These URLs should stay aligned across:
-
subgraph/package.json -
sdk/src/VeraxSdk.ts -
sdk/src/utils/urlResolver.ts
Attestation IDs embed a 32-byte chain prefix. The short forms below correspond to the values declared in
contracts/script/utils.ts.
- Linea Sepolia -
0x0000 - Linea Mainnet -
0x0000 - Arbitrum Sepolia -
0x0001 - Arbitrum Mainnet -
0x0001 - Base Sepolia -
0x0005 - Base Mainnet -
0x0005 - BSC Testnet -
0x0006 - BSC Mainnet -
0x0006 - Ethereum Sepolia -
0x0008
Adding or updating a public Verax deployment usually touches more than one workspace:
- Deploy or upgrade the core contracts in
contracts/. - Build and publish the matching subgraph deployment in
subgraph/. - Update SDK defaults and fallback URLs in
sdk/. - Update explorer network config and gateway overrides in
explorer/. - Update this root README if public addresses, subgraph URLs, or prefixes changed.
Releases are currently maintainers-only and run through the manual releaser.yml workflow, which merges dev into
main and then rebases dev onto main.