Hi Aave community!
I’m Weiting Chen, representing Term Structure, and we’re excited to present our proposal to become a GHO facilitator.
Please check the form below to learn more.
As always, feel free to reply with any concerns or questions. We’re happy to answer them all.
Background
- Title of Facilitator:
Term Structure (https://ts.finance/) - High Level Description of Mechanism / Request:
Term Structure aims to become a GHO facilitator, enabling fixed-rate and fixed-term lending and borrowing of GHO on our customized zkRollup (zkTrue-up) on Ethereum, using aTokens and the principal tokens (PTs) from Pendle as collateral. Additionally, we’d like to explore allowing DAOs to borrow against the LP tokens from their protocol-owned liquidity (POL). - Author / Link to License:
Weiting Chen. MIT License. - Link to whitepaper (if applicable):
https://docs.ts.finance/ - How Facilitator Futhers GHO:
We expand GHO’s utility by offering fixed-rate and fixed-term borrowing options, currently unavailable on Aave v3. It also explores new use cases for GHO, such as lending against PTs or LP tokens, thereby increasing GHO’s adoption. - Organization / DAO responsible for operation of the Facilitator (if applicable):
TKSpring Ltd., based in Taiwan, built and maintained the Term Structure protocol. The company is a subsidiary of Decentral Portal (BVI) invested by Cumberland DRW, Hashkey Capital, etc. - History, Details, Background of the operator of the Facilitator (if applicable):
TKSpring Ltd. has been building Term Structure since late 2022.
- The company raised $4.25M in November 2023, led by Cumberland DRW.
- The company received grants from the Arbitrum Foundation in March 2024.
- The protocol went live in June 2024 with wstETH, weETH, wBTC, and sDAI as the collateral.
- The protocol started to support Pendle’s PTs as collateral in August 2024.
Credit Line Details
- Requested Facilitator Cap: 4M GHO
- Cap Increase Roadmap (if applicable):
- Upon successfully utilizing 1M GHO with aTokens as collateral, increase the cap to 2M GHO.
- Upon successfully utilizing an additional 1M GHO with aTokens and Pendle’s PTs as collateral, increase the cap to 3M GHO.
- Upon successfully utilizing an additional 1M GHO with aTokens, Pendle’s PTs, and LP tokens as collateral, increase the cap to 4M GHO.
- Use of Funds:
Issuing fixed-rate and fixed-term loans against aTokens, PTs, and potentially LP tokens from third parties’ POL. - Revenue Streams:
Our robust revenue model includes multiple streams:
- Borrowing Fees: 10% of the interest from loans.
- Spread on the Interest: We apply a spread on the interest rate to lend to the borrowers.
- Withdrawal Fees: 2 GHO per withdrawal from our zkTrue-up.
- Protocol Penalties: We charge up to 5% on the collateral as the protocol penalty upon liquidation.
- Revenue Split / Interest Terms:
40% of GHO-associated lending/borrowing revenue from points a and b above will be shared with Aave. - Collateral Posted:
No, we will not be posting any collateral. Our protocol is designed to mathematically ensure that the borrowers over-collateralize all loans. This means that for every loan created, the borrower must provide collateral worth more than the loan itself; otherwise, the transaction will fail when submitted back to Ethereum. This design choice eliminates the need for us, as the protocol operators, to post additional collateral. It’s a key feature of our system that helps maintain security and stability for all users. - Other Commercial Details/Considerations:
Mechanism & Risk Details
- Detailed Description of the Facilitator:
Term Structure enables users to borrow GHO at fixed rates and terms on our zkRollup (zkTrue-up), using aTokens as collateral. Users deposit assets on Ethereum, which are then used as collateral on our zkRollup. This allows for gas-free transactions, with users only paying transaction fees on the rollup. Additionally, the system is designed to be non-custodial. Users can retrieve their assets with the forced withdrawal even if our server is down. Lastly, we guarantee mathematically that each loan is over-collateralized, ensuring the system’s stability and security. - How Facilitator is backing GHO:
With aTokens, PTs, or LP tokens as the collateral. Also, each loan is over-collateralized. - If RWA - description of legal structure etc:
N/A - Detail any / all risks (Oracle risk, Third-party Dependencies, Contract risk, Cross-chain, Bridging, Regulatory, etc) as well as any prevention/mitigation methods:
- Oracle Risk:
We use oracles like RedStone and Chainlink to price the value of the collateral right now. If one provides a price that severely deviates from the actual price, loans can be liquidated. To mitigate this, we can use the median price between multiple providers. - Insufficient Liquidity:
We need a certain level of liquidity to liquidate the collateral for a loan. If there isn’t, bad debts could be incurred. We will strategically select highly liquid collaterals to ensure adequate liquidity and implement a conservative, scalable cap structure for maximum borrowable amounts. - Rug Pull:
Since we aim to support collaterals issued by third parties, these assets could be worthless should the team behind those protocols disappear. We will exclusively work with teams with proven track records or support assets issued by immutable contracts, minimizing the risk of rug pulls.
Governance Controls
- List of controls given to Aave DAO:
As a rule of thumb, Term Structure keeps functions related to daily operations, and others are given to Aave DAO.
- setVerifier: set the address for the verifier, the smart contract on Ethereum that verifies the ZK proof upon submission
- setEvacuVerifier: set the address that can be used to trigger the evacuation mode
- setPriceFeed: set the Oracle address for an asset
- Controls given not to Aave DAO:
- setInsuranceAddr: set the Insurance Fund address
- setTreasuryAddr: set the Treasury address
- setFlashLoanPremium: set the fee for the flash loan
- setActivatedRoller: set if the roll-to-Aave function is active or not
- setVaultAddr: set the vault’s address
- setFundWeight: set the weight/discount factor for each asset
- setPaused: set if the system is paused
- setStableCoin: set if an asset is a stablecoin
- setMinDepositAmt: set the minimum deposit amount for an asset.
- withdrawProtocolFee: set the withdrawal fee for an asset
- setBorrowFeeRate: set the borrowing fee for an asset
- setRollOverFee: set the rollover fee for an asset
- setHalfLiquidationThreshold: set the threshold for half liquidation
- setLiquidationFactor: set the threshold for full liquidation
- Alternative controls / roles that may be present but not set (optimistic governance? Risk Admin? SubDAO etc) + description on who can set these roles
Currently, no. - Upgradability controls
We use the diamond standard to upgrade our contracts. One 4-of-6 multisig wallet is the sole admin for all our contracts.
Facilitator Code
- Code Repository:
- Audit Report (optional but strongly recommended): GitHub - term-structure/audits
- Documentation: Overview | Term Structure Docs
- Non-technical explainer: https://docs.ts.finance/
- License Details: Check the repos listed above.