Verax is a shared registry for storing attestations of public interest on EVM chains, designed to enhance data discoverability and consumption for dApps across the network.
Links • Repository Organisation • Getting Started • Contributing • Contracts Addresses • Subgraphs URLs • Network Prefixes • License
📚 Documentation
🔍 Subgraphs
🧱 Verax SDK
🌍 Explorer
.
├── contracts # All smart contracts needed to run Verax
├── explorer # Explorer frontend to discover the main objects
├── governance # Governance NFTs
├── sdk # An SDK to easily interact with the contracts and the subgraphs
├── snap # A MetaMask Snap to leverage the attestations in transactions
├── subgraph # The subgraph indexing all the data generated by the contracts
├── website # Verax landing page and
Each package has its own README file for more details and installation process description.
pnpm i
Verax Attestation Registry is a community-led initiative, with developers from various companies and different backgrounds. While we are more than happy to get help from multiple sources, we need to rely on strong Ways of Working.
Don't hesitate to check our Contribution Guide before pushing your first code to the repo!
The main contracts (i.e. the "registries") and the helpers contracts are deployed on:
- Linea Sepolia
- Linea Mainnet
- Arbitrum Sepolia
- Arbitrum Mainnet
- Base Sepolia
- Base Mainnet
- BSC Testnet
- BSC Mainnet
Here are the addresses on those networks:
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
-
AttestationRegistry = 0x3D8A3a8FF21bD295dbBD5319C399e2C4FD27F261
-
ModuleRegistry = 0xD70a06f7A0f197D55Fa841fcF668782b2B8266eB
-
PortalRegistry = 0xb2553A7E443DFA7C9dEc01D327FdDff1A5eF59b0
-
SchemaRegistry = 0x29205492435E1b06B20CeAeEC4AC41bcF595DFFd
Standard Library
-
ECDSAModule: 0xd580BD1259576C489543beBa99d4678453112A7f
-
ERC1271Module: 0x090AbB61eCDa7aD3a2FD83BA5b89bEd2946aA1c8
-
FeeModule: 0x88bA70cB465ed130D899e0709CC22757Fa4D3704
-
IndexerModule: 0x0B9223633DEF4455228fd1Ad0384a57eEaeE2303
-
IssuersModule: 0x8d3634274bD47c6A66e4b216fCcafF99F74460F9
-
SchemaModule: 0x65E3025c4B82f35918DeDd57f2058e7de7F92c33
-
SenderModule: 0xb439016Da49eA9bD036523F0B5416B0319027e8E
- Linea Sepolia
- Linea Mainnet
- Arbitrum Sepolia
- Arbitrum Mainnet
- Base Sepolia
- Base Mainnet
- BSC Testnet
- BSC Mainnet
To easily differentiate the networks on which an attestation has been made, we use network prefixes for the Attestation ID. This prefix is defined in the contracts/script/utils.ts file.
- 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
Deploying a new Verax instance requires four main steps to cover the four main parts of the stack. Even if these steps are independent, and must not be done right away, they should be done in order.
- Deploy the core contracts (cf. documentation in the
contracts
folder) - Deploy the subgraph (cf. documentation in the
subgraph
folder) - Upgrade and deploy the SDK (cf. documentation in the
sdk
folder) - Deploy the Explorer (cf. documentation in the
explorer
folder)