LogoLogo
Summer.fiContact us
  • Summer.fi
    • Overview
    • Basic Concepts
    • Audits
  • Lazy Summer Protocol
    • Lazy Summer Protocol
      • ARKs
        • Buffer ARK
        • RAFT
          • Dutch Auctions
      • Fees
      • Contracts Addresses
    • Rebalancer
    • Governance
      • Cross-Chain Governance
      • Rewards
      • Tip Streams
      • $SUMR Token
        • Delegation
        • Voting Power Decay
  • Summer.fi pro
    • General
      • Smart Contracts and Documentation
      • Costs and Fees
      • Address Compliance Check
      • Security
      • Referrals Program
        • FAQ
        • How to refer a friend
    • Products
      • Borrow
        • Frequently Asked Questions
      • Multiply
        • The difference between Borrow and Multiply Vaults
        • Frequently Asked Questions
      • Swap and Bridge
      • Earn
        • Aave v2 stETH
        • Aave v3 stETH
        • Dai Savings Rate (DSR)
          • sDAI
          • What is sDAI Conversion?
      • $RAYS
        • FAQ
    • Automation
      • Stop-Loss
        • How to setup your Stop-Loss
        • Trailing Stop-Loss
      • Auto-Buy
      • Auto-Sell
      • Take Profit
        • Auto Take Profit
          • How to setup Auto Take Profit
  • LEGAL
    • UK Disclaimer
    • Risks of using our products
  • Get in touch
    • Contact Us
Powered by GitBook
LogoLogo

Products

  • Borrow
  • Multiply
  • Earn

About

  • Team
  • Security
  • Terms
  • Privacy

Resources

  • Blog
  • Bug Bounty
  • Brand Assets

Oazo Apps 2023

On this page
  • Core Functions
  • RAFT operates automatically to:
  • Impact on Returns
  • Yield Enhancement
  • Harvest Management
  • Auction System
  • Asset Return
  • Integration Points
  • RAFT connects with:

Was this helpful?

Export as PDF
  1. Lazy Summer Protocol
  2. Lazy Summer Protocol
  3. ARKs

RAFT

RAFT maximizes yield in the Lazy Summer Protocol by managing reward tokens generated by ARKs. When users deposit into a Fleet through a Vault, their assets are distributed across ARKs that generate yield. RAFT harvests these rewards, converts them through auctions into the Fleet's base asset, and returns them to increase overall returns.

Core Functions

RAFT operates automatically to:

  1. Harvest rewards generated by ARKs

  2. Convert rewards to base assets through Dutch auctions

  3. Return converted assets to enhance vault yields

As a vault user, RAFT requires no direct interaction. The system works continuously to optimize returns on deposited assets.

Impact on Returns

When ARKs generate rewards in external tokens, RAFT ensures optimal conversion back to the base asset. Dutch auctions start at higher prices and decrease gradually, finding the market-clearing price while protecting value.

Yield Enhancement

Consider a DAI vault with $1000 deposited. The ARKs generate COMP and AAVE rewards. RAFT:

  • Collects these reward tokens automatically

  • Auctions them for DAI through Dutch auctions

  • Returns the DAI to increase vault value

  • Reflects gains in vault share price

Harvest Management

The harvest system tracks rewards per ARK and initiates auctions:

function _harvest(address ark, bytes calldata rewardData) internal returns (
    address[] memory harvestedTokens, 
    uint256[] memory harvestedAmounts
) {
    (harvestedTokens, harvestedAmounts) = IArk(ark).harvest(rewardData);
    for (uint256 i = 0; i < harvestedTokens.length; i++) {
        obtainedTokens[ark][harvestedTokens[i]] += harvestedAmounts[i];
    }
}

Auction System

Dutch auctions handle reward token conversion:

mapping(address => mapping(address => DutchAuctionLibrary.Auction)) public auctions;

function buyTokens(address ark, address rewardToken, uint256 amount) external returns (uint256) {
    DutchAuctionLibrary.Auction storage auction = auctions[ark][rewardToken];
    uint256 paymentAmount = auction.buyTokens(amount);
    paymentTokensToBoard[ark][rewardToken] += paymentAmount;
}

Asset Return

Converted assets return to ARKs through boarding:

function _board(address rewardToken, address ark, bytes memory data) internal {
    uint256 balance = paymentTokensToBoard[ark][rewardToken];
    if (balance > 0) {
        paymentToken.forceApprove(ark, balance);
        IArk(ark).board(balance, data);
        paymentTokensToBoard[ark][rewardToken] = 0;
    }
}

Integration Points

RAFT connects with:

FleetCommander

  • Controls ARK deployment

  • Manages asset allocation

  • Sets permissions

ARKs

  • Generate rewards

  • Accept boarded assets

  • Provide harvest functions

PreviousBuffer ARKNextDutch Auctions

Last updated 3 months ago

Was this helpful?