Quick Start
Getting Started with Influence Protocol
Learn how to integrate with the Influence Protocol to read attestations, query creator networks, and build on-chain influence graphs.
What is Influence Protocol?
Influence Protocol is an open protocol for documenting and quantifying creator influence on-chain. It enables:
- Attestations: Document influence relationships between creators and participants
- Illuminations: Reward meaningful attestations with token burns
- Visualization: Build graph networks showing creator-participant relationships
- Metrics: Calculate influence scores across creator, portfolio, network, and consistency pillars
Installation
npm install @influence-protocol/sdk ethers # or pnpm add @influence-protocol/sdk ethers
Quick Example: Read Participant Graph
The simplest way to get started is reading a participant's influence graph:
Note: The SDK defaults to Base Sepolia. For Base Mainnet, you must pass a custom config (see below).
import { JsonRpcProvider } from 'ethers';
import { createRelationalClient } from '@influence-protocol/sdk';
// For Base Mainnet, pass custom contract addresses
const provider = new JsonRpcProvider('https://mainnet.base.org');
const client = createRelationalClient(provider, {
visualizationAssembler: '0x...', // Base Mainnet address
relationalResolver: '0xdaabbfc98a09f542f5f3f13694284ca96dd32934',
illuminationAnalyzer: '0x4b2f2a03ed6744df981198fc3c231953179db699',
});
// Get a participant's influence graph
const graph = await client.getParticipantGraph('0x...');
console.log('Nodes:', graph.nodes);
console.log('Edges:', graph.edges);Protocol Architecture
Core Contracts
RelationalResolver- Indexes attestations and relationshipsIlluminationRegistry- Manages token burns for attestationsTokenLinkRegistry- Links creator tokens to the protocolVisualizationAssembler- Builds graph structures from on-chain dataIlluminationAnalyzer- Calculates influence metrics
Data Sources
- On-chain contracts: Real-time, authoritative data via SDK
- Subgraph: Indexed, fast queries for dashboards and analytics
- REST API: Hosted endpoints at
https://sdk.stayradiant.xyz/api
Base Mainnet Addresses
All contracts are deployed on Base Mainnet (Chain ID: 8453). Note: The SDK defaults to Base Sepolia, so you must pass these addresses as a custom config for Base Mainnet:
RELATIONAL_RESOLVER: 0xdaabbfc98a09f542f5f3f13694284ca96dd32934ILLUMINATION_REGISTRY: 0x2aaca41ef9bb156ce3c302e696cff5e7e2b974bfTOKEN_LINK_REGISTRY (V2): 0xE07869Fd7625e83bb3FBbEe32F9B9110d8a9b8dDILLUMINATION_ANALYZER: 0x4b2f2a03ed6744df981198fc3c231953179db699EAS: 0x4200000000000000000000000000000000000021Using Base Mainnet:
const client = createRelationalClient(provider, {
visualizationAssembler: '0x...', // TODO: Get Base Mainnet address
relationalResolver: '0xdaabbfc98a09f542f5f3f13694284ca96dd32934',
illuminationAnalyzer: '0x4b2f2a03ed6744df981198fc3c231953179db699',
});Next Steps
Agent Notes
- Always normalize addresses to checksum format before making queries.
- The SDK defaults to Base Sepolia. For Base Mainnet, pass a custom config with the contract addresses above.
- For production apps, prefer subgraph queries for performance; use contracts for real-time validation.
- All timestamps are Unix epoch seconds; amounts are in wei (18 decimals).
- Use
getAddress()from ethers to normalize addresses to checksum format.