Protocol Overview

Struct Finance offers users a way to customize interest rate instruments and compose them with options available in the ecosystem to construct superior financial products. Our platform opens up the number of investment choices available, enables varying protection levels, abstracts risk management and complex pricing away from its users while providing highly-competitive yields on various digital assets. ****

Contract Addresses (Avalanche)

Please note that these linked contracts are specifically related to our GMX integration.

Smart Contract Asset Link Smart Contract Asset Name
https://snowtrace.io/address/0x64ae9e549e807139afab354fe4470b7f458d9655#code FEYGMXProduct Implementation
https://snowtrace.io/address/0x46f8765781Ac36E5e8F9937658fA311aF9D735d7#code FEYGMXProductFactory
https://snowtrace.io/address/0x3bEf4cE67588bEb59d37F47ee2e6DE7065C7F4F8#code StructSPToken
https://snowtrace.io/address/0x6ae12b0adf9716181c07d19dfe76442ab1b3817b#code GMXYieldSource
https://github.com/struct-defi/struct-contracts/blob/main/contracts/protocol/adapters/TraderJoeLPAdapter.sol TraderJoeLPAdapter
https://snowtrace.io/address/0xcB4E352825df013D4b827b0E28DE3E996655cb97#code GlobalAccessControl
https://snowtrace.io/address/0xE0CF087363e44cfe25e31C42d407795986FE8202#code Helpers

1. Product Implementation (FEYProduct)

The fixed and enhanced yield contract containing core functions of the protocol: depositing, claiming excess, and withdrawals. Interacts with the Yield Source contract to supply and remove liquidity from the underlying protocol.

2. Factory (FEYProductFactory)

Creates new FEYProduct contracts (using clones) with user-defined configurations such as tranche start and end times, tranche tokens, fixed rate, etc. It also has methods to whitelist tokens and token pairs.

3. SP Token (StructSPToken)

An ERC1155 standard token is used to represent user's position in each tranche, Every tranche is assigned a unique ID in the StructSPToken and is minted at a 1:1 ratio for deposits.

Note that FEYProduct and FEYProductFactory components have a new implementation for each integration (platform). The implementation of StructSPToken remains the same, but there will be a new deployment for each integration.

4. YieldSource

Helps the FEYProduct contract to interact with the external protocols. For example, TraderJoeYieldSource contract interacts with each respective protocol to add/remove liquidity and compound rewards.

The GMXYieldSource contract works slightly differently, in that there is only 1 instance of the contract, which supplies and redeems any combination of tokens from the GMX V1 liquidity pool.

5. Global Access Control (GAC)

Enforces the access control methods for the entire protocol implemented by the GACManaged contract which inherits the GlobalAccessControl for the roles. All the core contracts will inherit the GACManaged contract.

Role Privilege
GOVERNANCE FEYFactory: Sets parameters including product, yield source, andprice oracle implementations, min and max tranche duration, protocol fees, leverage threshold min and max, fixed rate max, min deposit value, whitelist tokens and pairs.FEYProduct: Sets slippage and rescues tokens in case they get stuck.YieldSource: Distributes rewards via the Yield Source to incentivize Products.SPToken: Sets the Factory implementation and the base token URI for all token IDs.DistributionManager: Initializes contract, adds/removes/edits distribution recipients, sets rewards per second.
KEEPER Calls recompoundRewards on the YieldSource
PAUSER Pause/unpause the protocol globally
PRODUCT Mints and burns SP Tokens, supplies tokens to and redeems tokens from YieldSource, queues fees on DistributionManager.
FACTORY Calls depositFor on Product, calls setFEYGMXProductInfo on YieldSource.
WHITELIST_MANAGER Grants WHITELISTED roles to accounts
WHITELISTED Creates products without fulfilling minimum deposit requirement