Smart Rewards SDK

Smart Rewards SDK

A TypeScript SDK for interacting with the Smart Rewards protocol. This SDK provides a type-safe way to query campaigns, rewards, and user data from the Smart Rewards GraphQL API.

Installation

npm install @steer-protocol/smart-rewards-sdk
# or
yarn add @steer-protocol/smart-rewards-sdk

Quick Start

import { createClient } from '@steer-protocol/smart-rewards-sdk';

// Initialize the SDK
const sdk = createClient('YOUR_API_ENDPOINT', {
// Optional headers
// authorization: 'Bearer YOUR_TOKEN'
});

// Query active campaigns
const campaigns = await sdk.campaigns({
first: 10,
filter: {
status: CampaignStatus.Active
}
});

Features

  • 🔒 Type-safe GraphQL queries
  • 📊 Campaign management
  • 💰 Reward tracking
  • 👤 User balance monitoring
  • 🏦 Vault interactions

API Reference

Client Initialization

createClient(endpoint: string, headers?: Record<string, string>)

Creates a new SDK client instance.

Campaigns

  • campaigns(): Query campaigns with filtering and pagination
  • campaign(id: string): Get details of a specific campaign
  • campaignsByPool(poolId: string, chainId: number): Get campaigns for a specific pool

Rewards

  • rewards(): Get all rewards across campaigns
  • userRewards(options): Get rewards for a specific user
  • claimRewards(options): Query claimed rewards
  • rewardByCampaignId(id: string): Get rewards for a specific campaign

Vaults

  • vaults(): Query vaults with filtering and pagination
  • vault(id: string, chainId: number): Get details of a specific vault
  • vaultAPRs(): Get APR data for vaults

Pools

  • pools(): Query pools with filtering and pagination
  • pool(id: string, chainId: number): Get details of a specific pool

Examples

Check out the examples directory for more detailed usage examples:

  • Basic Usage: Core SDK functionality
  • Campaign Management
  • Reward Tracking
  • User Operations

Type Definitions

The SDK provides comprehensive TypeScript definitions for all operations:

  • Campaign types
  • Reward structures
  • Vault configurations
  • Pool information
  • User data

Error Handling

The SDK uses standard Promise-based error handling. Wrap your calls in try-catch blocks:

try {
const result = await sdk.campaigns();
} catch (error) {
console.error('Error fetching campaigns:', error);
}

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT License