[BIP-627] Enable syrupUSDC / sDAI Gauge (Ethereum)

PR with Payload

This proposal on behalf of the Maple Finance team is to enable a 2% gauge for a 50/50 syrupUSDC/sDAI pool on Ethereum. The pool is to support liquidity for the LP token from Maple’s newest product, Syrup. The pool will earn Syrup Drips.

References/Useful links:

Link to:
• Website → https://maple.finance/ and https://syrup.fi/
• Documentation → Welcome to Syrup | Syrup
• Github Page → GitHub - maple-labs/maple-core-v2
• Communities → x.com and Telegram: Contact @maplefinance

Protocol Description:

Syrup provides permissionless access to institutional yield sources via Maple Finance’s lending engine, which has facilitated more than 4 billion in loans to date. The yield is sourced from collateralized loans to crypto’s largest institutions, leveraging Maple’s smart contract infrastructure. syrupUSDC is the receipt LP token for lenders who deposit USDC into the Syrup smart contracts.


The underlying lending product for Syrup requires duration matching against the loan book issued against the provided lender capital. Liquidity in the worst case will take up to as long as the call period defined for each loan (which in some cases may be 30 days). Enabling a Balancer pool with sDAI can foster more immediate liquidity for the pool token, and deep liquidity will enable further integrations throughout DeFi as Syrup grows.


  1. Governance: Maple Labs guides the direction of the protocol’s development, with MPL holders voting on certain governance decisions. The governor controls Maple Globals and has emergency access to pause certain functionality and is monitored by a multisig that includes Maple’s founders as well as core investors.

  2. Oracles: No, whilst the protocol has the ability to use chainlink oracles as collateral is held mainly at qualified custodians this feature of the protocol isn’t used.

  3. Audits: Audits from reputable firms including Trail of Bits, Spearbit, 0xMacro, and Three Sigma can be found in Maple and Syrup gitbooks (Security | Syrup and Security | Maple). Syrup runs on Maple Finance’s smart contract infrastructure which has facilitated more than $4 billion of loans since inception.

  4. Centralization vectors: The Governor and Operational Admin are the main administrators of the protocol, and is managed by a multisig. They control the administrative functions in the protocol, such as managing the MapleTreasury, defining global parameters and administrative functions to manage Loans for a given Pool. Additionally Pool Delegates are trusted actors. Pool Delegates have to go through a KYC process & due diligence to be onboarded to the Maple protocol by the Governor. They have a public reputation to protect, and are incentivized to act in the protocol’s best interest to grow their pool’s size.

  5. Market History: The asset has not observed volatility and will not be expected to outside of events of default from the underlying loan book. Maple’s smart contracts implement ERC 4626 so the value of one share of syrupUSDC will always be increasing in underlying asset value, provided there are outstanding loans. The Balancer pool itself will be seeded with liquidity next week following the broader launch of Syrup.

  6. Value: No; lenders can request withdrawal via the Syrup application which will be serviced as liquidity becomes available. The purpose of the Balancer pool will be to encourage more instant liquidity for users to get in and out of Syrup. However, provided liquidity becomes deep enough this could become a valid path as the primary source of liquidity for Syrup users looking to withdraw.

Link to Syrup pool: MaplePool | Address 0x80ac24aa929eaf5013f6436cda2a7ba190f5cc0b | Etherscan
Link to Balancer pool: ComposableStablePool | Address 0x48a5bfb5bd44345db0b31fa4b5a204890695c9b4 | Etherscan
Link to gauge: Vyper_contract | Address 0x1A33F4e48fc9A6b015Ff44Fa7a592d3aC9F9B99e | Etherscan

Technical Specification

The Balancer Maxi LM Multisig 0xc38c5f97B34E175FFd35407fc91a937300E33860 will interact with the GaugeAdderv4 at 0x5DbAd78818D4c8958EfF2d5b95b28385A22113Cd and call the addGauge function with the following arguments: gauge(address): 0x1A33F4e48fc9A6b015Ff44Fa7a592d3aC9F9B99e
gaugeType(string): Ethereum