@verax-attestation-registry/verax-sdk
v5.4.0
Published
Verax Attestation Registry SDK to interact with the subgraph and the contracts
Readme
Verax Attestation Registry - SDK
The Verax SDK facilitates the interactions with the contracts and the subgraph, both from a frontend and a backend.
Installation
VeraxSDK is an npm package.
# npm
npm i @verax-attestation-registry/verax-sdk
# yarn
yarn add @verax-attestation-registry/verax-sdk
# pnpm
pnpm add @verax-attestation-registry/verax-sdkGetting Started
Check the SDK documentation
Using Custom Subgraph URLs
By default, the SDK uses free-tier subgraph URLs from The Graph Studio, which have rate limits. For production applications, you can override these URLs with your own endpoints that use The Graph API keys for higher rate limits.
Basic Usage
import { VeraxSdk, ChainName } from "@verax-attestation-registry/verax-sdk";
const sdk = new VeraxSdk({
...VeraxSdk.DEFAULT_LINEA_MAINNET,
subgraphUrlOverrides: {
[ChainName.LINEA_MAINNET]: "https://gateway.thegraph.com/api/YOUR_API_KEY/subgraphs/id/...",
[ChainName.ARBITRUM_MAINNET]: "https://gateway.thegraph.com/api/YOUR_API_KEY/subgraphs/id/...",
},
});How It Works
The SDK uses cascading fallback logic to resolve subgraph URLs for any chain:
- First: Check
subgraphUrlOverrides[chainName](your custom URL) - Then: Check
subgraphUrl(if querying the configured chain) - Finally: Use default free-tier URL
This unified approach works for both single-chain and multi-chain queries, providing consistent behavior throughout the SDK.
Benefits
- Higher rate limits - Use paid API keys to avoid throttling
- Production-ready - Suitable for high-traffic applications
- Flexible - Override only the chains you need
- Consistent - Same logic for all query types
CLI examples
cf. CLI examples
Deployment of a new Verax instance
When a new instance of Verax is deployed onchain, the SDK needs to be updated with the new addresses.
Add a new backend
Confobject in src/VeraxSdk.ts:static DEFAULT_XXX_MAINNET: Conf = { chain: xxx, mode: SDKMode.BACKEND, subgraphUrl: "<SUBGRAPH_URL>", portalRegistryAddress: "0x...", moduleRegistryAddress: "0x...", schemaRegistryAddress: "0x...", attestationRegistryAddress: "0x...", };Add a new frontend
Confobject in src/VeraxSdk.ts:static DEFAULT_XXX_MAINNET_FRONTEND: Conf = { ...VeraxSdk.DEFAULT_XXX_MAINNET, mode: SDKMode.FRONTEND, };Increment the version of the package in package.json
Publish the package to npm
pnpm run publish:public
