Contracts

v3 Contracts

The YieldFi SDK provides TypeScript types for type-safe smart contract interactions with YieldFi v3 contracts using ethers.js. This section covers how to interact with YieldFi v3 smart contracts.

Available V3 Contracts

  • Manager V3 - Core protocol manager contract for deposits and withdrawals

  • Vault - ERC-4626 vault token contracts (represents vault shares)

V3 Contract ABIs

V3 contract ABIs are included in the SDK package:

import ManagerV3ABI from "yieldfi-sdk/abis/v3/Manager.json";
import VaultABI from "yieldfi-sdk/abis/v3/Vault.json";

Quick Start

Using Wagmi

import {
  connectManagerV3,
  connectVault,
  getContractAddresses,
  Chain,
} from "yieldfi-sdk";
import { ethers } from "ethers";
import { useAccount, useWalletClient } from "wagmi";
import ManagerV3ABI from "yieldfi-sdk/abis/v3/Manager.json";
import VaultABI from "yieldfi-sdk/abis/v3/Vault.json";

function ContractExample() {
  const { address } = useAccount();
  const { data: walletClient } = useWalletClient();

  const connectContracts = async () => {
    if (!walletClient || !address) {
      throw new Error("Wallet not connected");
    }

    // Setup provider and signer from wagmi
    const provider = new ethers.BrowserProvider(walletClient);
    const signer = await provider.getSigner();

    // Get contract addresses
    const contracts = getContractAddresses(Chain.ETHEREUM);

    // Connect to Manager V3
    const managerV3 = connectManagerV3(
      contracts.manager,
      ManagerV3ABI,
      signer
    );

    // Connect to a specific Vault (get address from Vault API)
    const vaultAddress = "0x5bE91d34FeFbB7554497a74e25dC6df96bFef5DB";
    const vault = connectVault(vaultAddress, VaultABI, provider);

    return { managerV3, vault };
  };
}

Using Browser Provider

V3 Contract Architecture

Manager V3

The Manager V3 contract handles:

  • Deposits: Users deposit assets, receive vault shares

  • Redemption Requests: Users request redemption, shares are locked

  • Redemption Processing: Operators process redemptions from queue

  • Queue Management: Track and manage redemption queue

Vault Contract (ERC-4626)

The Vault contract is an ERC-4626 compliant vault token:

  • Represents shares in a vault

  • Supports standard ERC-4626 operations

  • Shares can be locked for redemption requests

  • Provides conversion between shares and assets

Next Steps

  • Manager Contract - Manager V3 contract operations

  • Vault Contract - Vault contract operations (ERC-4626)

  • Examples - Complete integration examples

Last updated