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 relationships
  • IlluminationRegistry - Manages token burns for attestations
  • TokenLinkRegistry - Links creator tokens to the protocol
  • VisualizationAssembler - Builds graph structures from on-chain data
  • IlluminationAnalyzer - 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: 0xdaabbfc98a09f542f5f3f13694284ca96dd32934
ILLUMINATION_REGISTRY: 0x2aaca41ef9bb156ce3c302e696cff5e7e2b974bf
TOKEN_LINK_REGISTRY (V2): 0xE07869Fd7625e83bb3FBbEe32F9B9110d8a9b8dD
ILLUMINATION_ANALYZER: 0x4b2f2a03ed6744df981198fc3c231953179db699
EAS: 0x4200000000000000000000000000000000000021

Using 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.