Skip to content

Sage Protocol SDK

Purpose

  • Backend-agnostic helpers for interacting with Sage Protocol contracts (governance, DAOs, libraries, prompts, tokens).
  • Shared foundation for the CLI, backend services, and upcoming web UI.

Design Principles

  • Pure data in/out; no console prompts or environment coupling.
  • Minimal ABI fragments maintained alongside the contracts (see src/abi).
  • Composable modules – import only what you need.

Quick Start

npm i --workspace @sage-protocol/sdk
import sdk from '@sage-protocol/sdk';

const provider = sdk.getProvider({ rpcUrl: 'https://base-sepolia.publicnode.com' });

// Discover DAOs deployed by the latest factory
const subdaos = await sdk.subdao.discoverSubDAOs({
  provider,
  factoryAddress: '0x396Ac71fa8145a89a38B02a7235798c1cD350966',
  fromBlock: 0,
});

// Fetch governance metadata for a DAO governor
const info = await sdk.governance.getGovernorInfo({ provider, governor: subdaos[0].governor });