# Gearbox Protocol curator documentation full export > Full text export for agents and retrieval systems. Use https://docs.gearbox.finance/curators/llms.txt for compact routing before loading this file. Source hierarchy and freshness rules: - Static documentation describes protocol mechanics, integration patterns, and operational procedures. - Mutable market facts such as APY, utilization, market availability, supported assets, supported chains, rates, addresses, or live incidents must be verified through Gearbox app, Gearbox Data, governance, security, deployment, or owner-reviewed sources before answering. - Legal, tax, investment, eligibility, suitability, compliance, and privacy questions require Terms, Privacy, Risks, or owner-reviewed materials. Documentation alone is not legal, financial, tax, or investment advice. - URLs shown in each section are canonical docs routes for this exported content. # Curator documentation Market-curator operations, configuration, governance execution, price feeds, adapter setup, and market activation. ## The Market Source: https://docs.gearbox.finance/curators/the-market File: content/curators/the-market.mdx ## Market Structure ### Market Structure Gearbox uses a hierarchical, tree-structured constraint model: Pools define global rules, Credit Managers inherit and specialize them, and Credit Accounts inherit both. Every node operates strictly within the envelopes defined by its ancestors, ensuring consistent risk and parameter discipline across all strategies. 1. **Pool (Global Constraint Layer):** Defines system-wide parameters: eligible collateral types, price sources, utilization curve, and global limits. All downstream components inherit these constraints. 2. **Credit Managers (Strategy Constraint Layer):** Each Credit Manager refines the global constraints into strategy-specific ones: position-level rules, leverage parameters, liquidation settings and more. Credit Manager configuration + Pool-level boundaries are applied to all the credit accounts. 3. **Credit Accounts (Execution Layer):** Individual accounts execute under both the global Pool constraints and the strategy-level constraints of their Credit Manager. ![Figure](https://docs.gearbox.finance/assets/docs/curators/the-market/01-market-structure.png) ### How Market Rules Shape Outcomes Understanding the rules at each level guides decision-making process for every participant: * **For lending users (LPs and borrowers)** * Constraints set the credit risk and expected yield for LPs. Tighter settings reduce risk and also reduce return. * Borrowers must operate within market parameters, so they should review the rules before taking leverage. * **For curators** * Constraints determine the target investors by fixing the risk and return profile on both supply and borrow sides. * **For asset issuers and applications** * Market configuration includes parameters that shape UX: external integrations, capital capacity, and liquidation discounts influence how end users experience the product. ### Market-specific rules #### Pool-level rules If a user disagrees with these terms, they need to select another pool. * **Total debt limit:** maximum that can be borrowed across the entire pool * **Collateral limit:** maximum that can be borrowed against each token * **Main Price Feed:** price source for calculating account value and triggering liquidations * **Reserve Price Feed:** runs safety checks on operations and can block Credit Account actions to protect LPs * **Increase Rate:** one-time fee whenever exposure to a collateral increases * **Collateral-specific rate:** extra interest for borrowing against a given collateral * **IRM:** utilization-based interest rate model * **Loss Policy:** additional liquidation logic for cases that create bad debt **Credit Manager-level rules** If a user disagrees with these terms, they can choose another Credit Manager within the same pool. * **Total debt limit:** maximum aggregate debt of all Credit Accounts created from this Credit Manager * **MinDebt:** minimum required debt for a Credit Account * **MaxDebt:** maximum permitted debt for a Credit Account * **Liquidation Premium:** portion of collateral value paid to the liquidator during liquidation * **Liquidation Fee:** portion of collateral value paid to the curator and Gearbox DAO during liquidation * **Max Enabled Tokens:** number of different collateral tokens that can count toward account value * **Interest Fee:** extra rate on top of the IRM and collateral-specific rate, split between the curator and DAO * **List of allowed collaterals and their LT** (loan to value) * **List of allowed adapters:** restricts which external contracts a Credit Account can use * **Expiration Policy:** curator may set an expiration; after the cutoff date, all Credit Accounts become liquidatable regardless of Health Factor with penalties set by the expired liquidation fee and premium parameters. ## Fee sharing Source: https://docs.gearbox.finance/curators/fee-sharing File: content/curators/fee-sharing.mdx ## Fee sharing ### What fees does Gearbox take? * Interest Fee\ Fee taken from the total interest paid by borrower. Paid when user repays debt * Liquidation Fee\ Fee taken from liquidated collateral *** ### Who set the fees value? Both Interest Fee and Liquidation fee is controlled only by a Curator. *** ### Accrued fees as insurance buffer Both Curator and DAO fees are accumulated on Treasury Splitter contract which is unique for every curator. Curator and DAO have to claim accrued fees from the contract. If a liquidation happens with bad debt, fees from Treasury Splitter contract are burnt to cover loss, so unclaimed fees act as an insurance buffer. *** ### How is the fee split between Curator and Gearbox DAO? All the fees taken by the protocol are split 50/50 between DAO and Curator by default. To change this proportion both Gearbox DAO and Curator should sign transactions on TreasurySplitter contract (requires DAO proposal). *** ### Practical considerations Both Interest and Liquidation fees are set on Credit Manager level. Some examples when it can be useful: * Charge 0% fee on first 5,000,000 USDC borrowed: * Create Credit Manager with limit of 5,000,000 and set its fee to 0% * Once the limit is reached set it to 0. It will allow existing CM users to stay at 0% while disallowing new positions to be opened * Create a new Credit Manager with nonzero Interest Fee keeping other parameters untouched. That will result in new users opening positions with nonzero fee. * Charge higher fee for borrowing at exclusive terms: * Create Credit Manager specifically for collaterals with boosts negotiated by curator * Projects issuing the collateral may have private lp deals or offer higher rewards for position opened for specified period of time. Curator may charge additional fee for bringing the opportunity to borrowers ![Figure](https://docs.gearbox.finance/assets/docs/curators/fee-sharing/01-fees.png) ## Deployment addresses Source: https://docs.gearbox.finance/curators/deployment-addresses File: content/curators/deployment-addresses.mdx ## Deployment addresses ### System contracts System contracts are deployed using [deterministic deployer](https://ethglobal.com/showcase/deterministic-deployer-p3eyi), thus have the same address on all EVM chains. | Contract | Address | |---|---| | Address Provider | 0xF7f0a609BfAb9a0A98786951ef10e5FE26cC1E38 | | Bytecode Repository | 0x1cE2B1BE96a082b1b1539F80d5D8f82Ec06a0f9A | | Cross-Chain Multisig | 0xcCCCCcCc42B7DA9fdEc1761698Fb55fdD41CDF55 | | Instance Manager | 0xBcD875f0D62B9AA22481c81975F9AE1753Fc559A | | Bot List | 0x0Bc03983Da93021a374C964A22b73865220Ce962 | | Price Feed Store | 0x74A868AC479EE145029bB80827BB77F7B7c441cB | | Market Configurator Factory | 0x7D60CfaF7c2cec210638A5e46E4000894830C034 | | GEAR Staking | 0x2fcbD02d5B1D52FC78d4c02890D7f4f47a459c33 | | Pool Factory | 0x2238eDf33a72860cDbaec5F83ec246Df9e85c8E2 | | Credit Factory | 0x81Cda0aB38d8Bd0732123Eb0e36C0C566d35DADD | | Price Oracle Factory | 0xF7533CDCE5A2F7BF78B6fbf4B05f04F45D10140B | | IRM Factory | 0xA7dE2e941c8818E51D1Fd84111d8F71dcafa6C3B | | Rate Keeper Factory | 0xbede127c14407b9c345f5d7fae5782ab8eaa33f3 | | Loss Policy Factory | 0x0E535b7D073a93646512cEa18fa7e650CC2b17C4 | | Batches Chain | 0x59b2fd348e4Ade84ffEfDaf5fcdDa7276c8C5041 | ### Helper (periphery) contracts | Contract | Address | |---|---| | Account Compressor | 0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394 | | Credit Suite Compressor | 0x93Cba8445b13a05287bFf90D882cbcB514D617b7 | | Gauge Compressor | 0x12c8faEdD62cF0C5d4D742E57B98737a9a3F5E0f | | Market Compressor | 0x70F1753a765C4df582FFA3B8d96AB492714E8992 | | Periphery Compressor | 0xa7ED6dB5761613CaE7CaCfAAE9Dca07a77809F9d | | Price Feeds Compressor | 0x847a05C22c7508C674342A95356Adf9b3a0e0D57 | | Rewards Compressor | 0x19Ca61E672d1c6105f609418bfDC784F92F4Ecf0 | | Token Compressor | 0xAe3Dd11e5a7f99eD4cba2768D4095a55fbF7841B | | Router | 0x00aDE38841AB8c6e236E232041e43B41d74B8B45 | | DefiLlama Compressor | 0x81cb9eA2d59414Ab13ec0567EFB09767Ddbe897a | | Withdrawal Compressor | 0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023 | ## Create a Market Source: https://docs.gearbox.finance/curators/create-a-market File: content/curators/create-a-market.mdx ### Prerequisites: The Price Feed Check Before creating a market, the underlying asset (the token you want lenders to deposit) must be whitelisted in the **Price Feed Store** of the current chain. **Check Availability:** 1. Go to the **Price Feed Store** section in the interface (click on the needed chain on [Instances page](https://permissionless.gearbox.foundation/instances)) 2. Search for your target token (e.g., USDC, WETH). 3. **If it exists:** Proceed to the steps below. 4. **If it is missing:** You must add it first. Guide: [add-required-price-feeds](https://docs.gearbox.finance/curators/add-required-price-feeds) ### Configuration Walkthrough []() ## Market Parameters 1 #### Asset & Identity * **Pool Version:** Select the latest verified version (currently **v3.1**). * **Underlying Asset:** Select the token lenders will deposit (e.g., USDC). * **Price Feed:** Select the Oracle feed used to value this asset. * **Market Name:** A descriptive name for your dashboard (e.g., "USDC Core Market"). 2 ## Global Capacity (Total Debt Limit) Max amount of underlying token that can be borrowed from entire pool. * **Tip:** Setting this higher than your immediate target TVL will help to avoid frequent updates. * *Note:* You will set more granular limits for specific strategies later. 3 #### Interest Rate Model (The Cost Engine) The IRM determines the base borrowing rate based on pool utilization. Gearbox uses a **Two-Kink Model** to create a stable "Optimal Zone" for utilization. **Key Parameters:** * **U1 (Optimal Low):** The start of your target utilization range. * **U2 (Optimal High):** The end of your target utilization range. * **R\_base:** The interest rate at 0% utilization (The minimum cost of capital). * **R\_slope1 / R\_slope2:** The rate increase as utilization rises to U1 and U2. * **R\_slope3 (Penalty):** The sharp rate spike after U2. This forces borrowers to repay if liquidity becomes scarce. **Strategy Tip:** A common approach is to target **80-85% utilization**. Set the borrow rate at this level to be roughly **60-70% of the expected yield** of the collateral strategies. This leaves a healthy spread for borrowers while attracting lenders.\ **Important: The Curator Fee is additive.**\ The Interest Fee (curator's & DAO's revenue) is charged **on top** of the rate paid to lenders. *Example:* If the IRM rate is **5%** and your Interest Fee is **20%**, the borrower pays **6%** total (5% to LPs + 1% Fee). Ensure your IRM leaves room for this markup while remaining competitive. * ***Reference:*** * [Desmos IRM visualizer](https://www.desmos.com/calculator/d281eeb4a9) * [Mainnet ETH pool](https://app.gearbox.fi/pools/0xda0002859b2d05f66a753d8241fcde8623f26f4f/utilization) * [Mainnet USDC pool](https://app.gearbox.fi/pools/0xda00000035fef4082f78def6a8903bee419fbf8e) 4 ## Rate Governance (The "Tumbler") This determines how you manage **Collateral-Specific Rates** (add-on fees for specific collaterals of increased demand). * **Type:** Select **Tumbler**. This allows the Risk Curator to manually update rates as needed. * **Epoch Length:** The mandatory waiting period between rate updates. * *Example:* If set to **2 days**, you can only adjust rates once every 48 hours. This gives borrowers predictability. 5 #### Safety (Loss Policy) This defines the logic for handling "Bad Debt" (when a position is insolvent even after liquidation). * **Policy Type:** Select **Aliased**. * **Function:** This protects Liquidity Providers during market de-pegs. If the market price of a collateral crashes (e.g., a flash crash), the system can switch to a "Fundamental Price" (e.g., Exchange Rate) to prevent selling collateral at a massive loss, effectively pausing liquidations until the market stabilizes. ### Next Steps The Liquidity Pool is now deployed. However, users cannot borrow yet because there are no **Strategies** (Credit Managers) attached to it. ## Execute transactions onchain Source: https://docs.gearbox.finance/curators/execute-transactions-onchain File: content/curators/execute-transactions-onchain.mdx This is the final step. With the market configured, parameters verified, and user experience tested, the changes are ready to be pushed to the live blockchain. ### The Timelock Lifecycle Gearbox governance enforces a **24-hour Timelock** on all critical changes. This security feature provides users time to exit if they disagree with a parameter change. Deployment consists of two distinct actions: 1. **Queue (Propose):** Submit the transaction to the Timelock contract. The 24-hour countdown begins. 2. **Execute (Apply):** After the countdown ends, submit a second transaction to apply the changes. 1 ### Finalize the Proposal Navigate to the GIP page in the interface. 1. **Finalize:** Click **"Finalize GIP"**. This locks the configuration and prepares the transaction data. 2. **Set Earliest Execution Date:** * The default timelock is 24 hours. * **Calculation:** `Current Time + Signing Buffer + 24 Hours`. * *Recommendation:* Add a buffer (e.g., 2 hours) to allow sufficient time for collecting signatures from multisig signers before the target execution time. **Troubleshooting:** If last-minute edits are required, click **"Reopen for Changes"**. Re-finalization is required after editing. ![Figure](https://docs.gearbox.finance/assets/docs/curators/execute-transactions-onchain/01-finalize-the-proposal.png) 2 ## Queue the Transaction The interface generates a link to the **Permissionless Safe App**. 1. Click the link to open the Safe App. 2. **Sign & Submit:** Execute the transaction in the Safe. This initiates the onchain timer. ![Figure](https://docs.gearbox.finance/assets/docs/curators/execute-transactions-onchain/02-queue-the-transaction.png) ### Video walkthrough []() 3 ## Execute (After 24 Hours) Once the timelock expires: 1. Return to the **Permissionless Safe App**. 2. **Sign & Submit:** Execute the final transaction. ### Video walkthrough []()
Learn more: Transaction lifecycle details ![Figure](https://docs.gearbox.finance/assets/docs/curators/execute-transactions-onchain/03-timeline.png)
### Deployment Complete The market is now live on the blockchain. * **New Pools:** Lenders can deposit assets. * **New Strategies:** Borrowers can open Credit Accounts. **Requirement:** Ensure the frontend PRs have been merged so users can view the new market and strategies in the app. * Review [frontend listing guide](https://docs.gearbox.finance/curators/listing-a-new-asset-in-the-main-app). ## Claim accrued fees Source: https://docs.gearbox.finance/curators/claim-accrued-fees File: content/curators/claim-accrued-fees.mdx Unclaimed fees sit in the protocol and act as a first line of defense against bad debt. If a liquidation results in a loss, the protocol can burn these accrued fees to cover the deficit before touching the Liquidity Pool. 1 ## Initiate a Proposal Navigate to the **Permissionless Interface**. 1. Click **"New GIP"** (or select an existing draft). 2. Select the **Market** you want to claim fees from. Then select a market you want to claim fees for. 2 ## Add Distribution Action 1. Go to the **Details** tab of the Market. 2. Locate the **Accrued Fees** section. 3. Click the **"Distribute"** button. * *Note:* This adds a transaction to your GIP batch. It does not execute immediately. ![Figure](https://docs.gearbox.finance/assets/docs/curators/claim-accrued-fees/01-add-distribution-action.png) 3 ## Execute via Timelock Like all governance actions, claiming fees is subject to the standard proposal lifecycle. 1. **Finalize** the GIP. 2. **Queue** the transaction in your Safe (starts the 24h timelock). 3. **Execute** the transaction after the timelock expires. Once executed, the funds will appear in your Fee Collector wallet. ## Create Credit Manager Source: https://docs.gearbox.finance/curators/create-credit-manager File: content/curators/create-credit-manager.mdx 1 ### Name Name can reflect the properties of collaterals and position size: * Volatile/ Correlated * Blue-chip/ Experimental * Small/ Medium/ Big (depending on account debt limit) Simple notation is calling naming it with tiers: Tier 1; Tier 2; Tier 3\ Higher tier means larger positions and safer collaterals. 2 ### **Interest Fee** % of borrowing interest taken by DAO and Curator\ Default fee split is 50/50 between DAO and Curator Interest fee of a Credit Manager ***can’t be changed*** after it’s deployed. Curator's fee is added ***on top of interest paid*** by borrower.\ If the IRM + [collateral-specific rate](https://docs.gearbox.finance/core/interest-rate-model#total-cost-of-capital) is 5% and the fee is 20% of the interest, then borrowers pay 6%. Interest fee & Credit Manager's debt limit can be used to ***bootstrap Market utilization.*** e.g. Create Credit Manager with limit of 5,000,000 USD and Interest Fee of 0% can be created to incentivize first borrowers as they will get more favorable borrow rates. 3 ### Liquidation Premium & Fee * **Premium -** % of liquidated collateral taken by liquidator Liquidation premium & fee of a credit manager can’t be modified after it’s deployed. * **Fee -** % of liquidated collateral taken by DAO and Curator It’s not recommended to set liquidation fee to be lower than 0.01%. If the fee is set to 0, then account that fully consists of leveraged underlying token will create bad debt upon liquidation. There is no impact of liquidation fee on the safety of liquidations (it doesn't increase or decrease probability of succesfull liquidations with profit). Borrower loses Liquidation Premium + Liquidation Fee from liquidation collateral. Expired liquidation premium and fee are useful only if Credit Manager is expirable, which is a rare case, so you can freely omit that parameters.\ If set, "Expired" versions of liquidation premium and fee are applied after Credit Manager expiration. 4 ### Minimum debt, Maximum debt, Max. enabled tokens * **Minimum & Maximum debt** - Credit account created in this Credit Manager can't have debt less than minimum and more than maximum. * **Max. enabled tokens** - maximal amount of different tokens that can be counted towards account value (used as cross-collateral margin). **maxDebt/minDebt <= 100/max enabled tokens**\ \ \&#xNAN;*Example: If max enabled tokens = 4 and minimum debt = 10k USDC, maximum debt can't be larger than 250k USDC.* 5 ### Whitelist policy, Expiration **Whitelist** - Allow borrowing only to owners of particular NFT. **Expiration** - Credit Manager can be shut down following specified schedule. May be useful for time-sensitive types of collaterals. 6 ### Total Debt Limit Maximal sum debt on all credit accounts created in this Credit Manager. Interest fee & Credit Manager's debt limit can be used to ***bootstrap Market utilization.*** e.g. Create Credit Manager with limit of 5,000,000 USD and Interest Fee of 0% can be created to incentivize first borrowers as they will get more favorable borrow rates. ## Configure Credit Manager Source: https://docs.gearbox.finance/curators/configure-credit-manager File: content/curators/configure-credit-manager.mdx ### ***Setup examples*** [setup example (BNB chain: USD1 pool, USDX collateral)](https://www.notion.so/Adapter-setup-example-BNB-chain-USD1-pool-USDX-collateral-208145c16224807fa1a0d318c01bc1ae?pvs=21) [setup example (Ethereum chain: tBTC pool, uptBTC collateral)](https://www.notion.so/Adapter-setup-example-Ethereum-chain-tBTC-pool-uptBTC-collateral-20e145c1622480c886d8d43dc5e9f5bb?pvs=21) [setup example (Ethereum chain: USDC pool, frxUSD/USDf collateral)](https://gearboxprotocol.notion.site/Adapter-setup-example-Ethereum-chain-USDC-pool-frxUSD-USDf-collateral-24c145c16224809d80d2d171e1128317?source=copy_link) ### ***Collaterals*** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-credit-manager/01-collaterals.png) 1 #### ***Add new collateral*** Select token from those already added to Market. If not present, [add token to Market.](https://docs.gearbox.finance/curators/configure-market#add-new-asset-and-set-main-feed) Set LT of a collateral - Liquidation Threshold (same as Liquidation LTV on other lending protocols) LT can't be higher than 100% - liquidation Fee - liquidation Premium 2 #### Modify LT of existing collateral To protect borrowers from immediate liquidations, LT can't be changed immediately.\ LT ramping makes LT linearly change current LT to target LT over a specified period. The minimal Ramp duration is 2 days (172800 seconds). Ramp starts when transactions are executed onchain (duration of ramp can be set in UI). ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-credit-manager/02-modify-lt-of-existing-collateral.png) ### ***Adapters*** [***Detailed section on adapters configuration.***](https://docs.gearbox.finance/curators/configure-adapters) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-credit-manager/03-adapters.png) ## Key concepts & system overview Source: https://docs.gearbox.finance/curators/key-concepts-system-overview File: content/curators/key-concepts-system-overview.mdx With permissionless architecture Gearbox has became even more composable, evolving into a techical stack that allows growing lending businesses, developing DeFi ecosystems and deploy lending markets on any chain by enyone having interest and capacity to do so. is the entrypoint for no-code deployment, curation and collaboration with Gearbox. #### What is permissionless? Anyone can deploy Market Configurator to create and manage Gearbox Markets without needing governance approval. #### What is Gearbox Market? Gearbox Market is a set of modular contracts allowing to facilitate lending, borrowing and productive usage of collaterals at rules set by Curator.\ Properties of a single market include but are not limited to Underlying Token, its Price Feed, Interest Rate Model, collateral-specific Limits and Additional Rates. #### What is Gearbox Instance? **Instance** = **Chain ID** activated by DAO for deployment + Chain-specific address of **DAO Treasury** + **Instance Owne**r multisig that helps configure chain-specific parameters but can't affect Markets configuration. #### What can curator change? The Curator can adjust all Market parameters, with a mandatory 24-hour timelock enforced at the smart-contract level for any changes. #### What is possible with permissionless curation? Each market consists of tens of contracts, including Pool, Oracle, IRM, Loss policy, Credit Managers and Adapters. Such modular architecture allows creating products with market-best flexibility and granular parametrization making Gearbox Protocol the premier platform for crafting sophisticated financial products that address specific market demands and drive long-term value creation. Below is a diagram of the contracts and parameters that a curator can configure, so you can get an idea of how detailed market configuration can be. ![Figure](https://docs.gearbox.finance/assets/docs/curators/key-concepts-system-overview/01-system.png) ## Curator's operations Source: https://docs.gearbox.finance/curators/curator-s-operations File: content/curators/curator-s-operations.mdx Morpho has pioneered the concept of curated lending markets in DeFi, but its approach differs significantly from Gearbox's model. Below is a clear comparison of how curators function in each protocol: #### Morpho: Active Capital Allocation In Morpho, curators are active capital allocators. They: * Distribute depositors' funds across various yield-generating markets. * Operate within markets defined by immutable parameters, such as Loan-to-Value (LTV) ratios and oracles. #### Gearbox: Risk Parameter Management In Gearbox, curators have a more limited role, focusing solely on risk management. They: * Set risk parameters for markets, such as LTV ratios or liquidation thresholds. * Have no authority to move or allocate depositors' funds, which remain under user or protocol control. | Action | Gearbox | Morpho | | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Add exposure to new collateral |
  1. Set collateral limit, LTV and oracle for a new token in Market
  2. Borrowers can now use pool's liquidity
|
  1. Add nonzero supply cap for existing market (LTV and oracle are pre-configured)
  2. Deposit vault's funds to the new market
  3. Borrowers can now use vault's liquidity
| | Modify collateral LTV or Price Feed |
  1. Set new price feed
  2. Start ramp of LTV to target value
  3. Feed & LTV for old and new borrowers are changed
|
  1. Deploy a market with needed LTV and oracle and set nonzero supply cap for it
  2. Feed & LTV are changed only for new borrowers
  3. Start withdrawing liquidity from old market & push borrowers out by raising rate
| | Increase/decrease collateral-specific borrow rate |
  1. Set a new collateral-specific rate in addition to IRM utilization rate
|
  1. Move vault's allocation in/out of the Market to move dynamic IRM
| | Enable 1-click leverage for a collateral |
  1. Allow the list of needed adapters in the Market
|
  1. Contact contango or another strategy provider to integrate your collateral
| ## Curation plans Source: https://docs.gearbox.finance/curators/curation-plans File: content/curators/curation-plans.mdx This page does not impose any access restrictions. Instead, it serves as a guide for Curators, helping them navigate the process of building a lending business on Gearbox and making effective use of the technical stack built around permissionless contracts. The Gearbox Permissionless Governance contracts are designed to enable non-custodial use by anyone interested. The "tariffs" below serve only as an analogy to guide Curators in choosing the level of autonomy and customization that fits their goals, whether it's testing business ideas, expanding into new markets quickly, or fine-tuning every critical detail. ### Codebase usage | Feature | Basic | Professional | Enterprise | |---------|:-----:|:------------:|:----------:| | Build transactions to Create and Configure Markets using [Permissionless Interface](https://permissionless.gearbox.foundation/curators/) (PI), using all the Gearbox contracts that were signed by auditors in Bytecode Repository | ✅ | ✅ | ✅ | | Use Gearbox testing suite to simulate the state, test transactions and Front-End before launching Markets in production | ✅ | ✅ | ✅ | | Request additional integrations (adapters, price feeds) from Gearbox core developers | | ✅ | ✅ | | Develop and audit new pieces of code for specific needs | | | ✅ | ### Front-end | Feature | Basic | Professional | Enterprise | |---------|:-----:|:------------:|:----------:| | Get your personal Curator's domain (your_curator.gearbox.fi) | ✅ | ✅ | ✅ | | Get your Market and Strategies featured on app.gearbox.fi | | ✅ | ✅ | | Host your own version of Gearbox Front-end | | | ✅ | ### Fee sharing and Liquidity Mining incentives | Feature | Basic | Professional | Enterprise | |---------|:-----:|:------------:|:----------:| | Receive 50% of fees generated by curated markets | ✅ | ✅ | ✅ | | Receive $GEAR LM incentives for the Markets' deposits | | ✅ | ✅ | | Negotiate specific fee/token sharing with DAO | | | ✅ | ### Monitoring tools and Emergency permissions | Feature | Basic | Professional | Enterprise | |---------|:-----:|:------------:|:----------:| | Use Gearbox monitoring services to keep an eye on critical metrics (Optimistic Liquidator, Insolvency Monitor) or connect external products (Hypernative, etc.) | ✅ | ✅ | ✅ | | Use Emergency and Loss liquidators maintained by Gearbox core developers | ✅ | ✅ | ✅ | | Run own monitoring tools and liquidators | | ✅ | ✅ | ## Tooling for curators Source: https://docs.gearbox.finance/curators/tooling-for-curators File: content/curators/tooling-for-curators.mdx ## Essential tooling for curators Gearbox goes beyond providing just a protocol by offering a complete ecosystem of tools tailored for curators. These tools enable: * **Market Configuration**: Safely set up and manage lending markets with intuitive interfaces. * **Transaction Integrity**: Ensure the accuracy and security of transactions before they are executed onchain. * **Pre-Deployment Testing**: Test changes in a controlled environment to validate configurations and prevent errors. * **Multi-Chain Support**: Operate seamlessly on almost any EVM-compatible blockchain. #### Curation Supply Chain The curation supply chain in Gearbox is supported by a set of specialized tools designed to streamline market deployment and transaction management while prioritizing security and transparency. **Permissionless Interface** * **URL**: * **Purpose**: Enables curators to create transaction batches for market deployment and configuration using human-readable tables. The interface generates transaction data, which is uploaded to IPFS, with the Content Identifier (CID) signed by the GIP creator to prevent phishing. * **Note**: This interface can't modify onchain state directly; it consists both of a frontend and backend maintained by Gearbox contributors. Therefore it shouldn't be perceived as a final source of truth for onchain state or actions. ![Figure](https://docs.gearbox.finance/assets/docs/curators/tooling-for-curators/01-curation-supply-chain.png) **Permissionless Safe** * **URL:** [**https://safe.gearbox.finance/**](https://safe.gearbox.finance/) * **Repository**: * **Purpose**: An open-source, IPFS-hosted version of the Safe Multisig UI designed to review and sign transactions securely in a human-readable format. It eliminates backend dependencies to mitigate risks like Bybit-type attacks and performs checks of IPFS CID signature to prevent phishing. * **Note**: The open-source nature and IPFS hosting ensure users can verify the code's integrity. ![Figure](https://docs.gearbox.finance/assets/docs/curators/tooling-for-curators/02-curation-supply-chain.png) **Anvil Fork-Based Simulations** * **Purpose**: A unique Gearbox service that allows curators to test market configurations and transaction changes on a fork of the blockchain before onchain execution. This ensures the correctness of state changes and supports testing of various Gearbox components, including liquidators, routers, and frontends. ![Figure](https://docs.gearbox.finance/assets/docs/curators/tooling-for-curators/03-curation-supply-chain.png) ## Create a new Curator (Market Configurator) Source: https://docs.gearbox.finance/curators/create-a-new-curator-market-configurator File: content/curators/create-a-new-curator-market-configurator.mdx The **Market Configurator** serves as the central administration contract for a lending business. It acts as the root permission node. From this single point of control, Curators deploy new markets, adjust risk parameters, and manage fee distribution. This contract must be deployed once per blockchain network. ## Prerequisites **Separation of Drafting vs. Signing** The Gearbox Curation Interface is a **drafting tool**, not a signing terminal. * **Drafting:** You may connect **any** standard wallet (e.g., a hot wallet) to the Gearbox UI to configure parameters and generate transaction files. * **Signing:** The actual execution happens securely within the Gearbox Safe interface () * **Benefit:** Operations teams can draft complex updates without requiring the Admin/Signers to connect their high-security wallets to the web interface. **Recommendation for MPC Users (Fordefi, Fireblocks, etc.)** Institutional MPC wallets often lack direct support for batch transaction builders. * **Recommendation:** Deploy a **1/1 Safe Multisig** with your MPC address as the sole signer. * **Why:** This acts as a compatibility layer, allowing you to utilize the Gearbox Safe interface and transaction batching flow while retaining the custody security of your MPC provider. ## Deployment walkthrough **Access the Interface:** [https://permissionless.gearbox.foundation/curators](https://www.google.com/url?sa=E\&q=https%3A%2F%2Fpermissionless.gearbox.foundation%2Fcurators) []() 1 ## Define Governance Roles * **Admin Address:** * *Function:* Primary governance. Can modify all parameters subject to a **24-hour timelock**. * *Recommendation:* Main Safe Multisig (or 1/1 Safe for MPC users). * **Emergency Admin:** * *Function:* Crisis response. Can disable specific tokens and perform limited list of emergency actions instantly (bypassing timelock). * *Recommendation:* A separate Security Multisig or secure Hardware Wallet. * **Fee Collector:** * *Function:* Revenue destination. Receives all accrued interest and liquidation fees. * **Transaction Format:** * Select **SAFE** to generate a compatible JSON file.
UI walkthrough ![Figure](https://docs.gearbox.finance/assets/docs/curators/create-a-new-curator-market-configurator/01-define-governance-roles.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/create-a-new-curator-market-configurator/02-define-governance-roles.png)
2 #### Execute transactions in Safe UI The interface generates a JSON file containing the deployment bytecode. 1. Navigate to the **Safe App** (using the Admin wallet defined in Step 1). 2. Open the **Transaction Builder** application. 3. Upload the generated JSON file. 4. Review the transaction details and execute.
UI walkthrough ![Figure](https://docs.gearbox.finance/assets/docs/curators/create-a-new-curator-market-configurator/03-execute-transactions-in-safe-ui.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/create-a-new-curator-market-configurator/04-execute-transactions-in-safe-ui.png)
3 #### Sync Permissionless Interface Once the transaction is confirmed onchain, the Gearbox interface must index the new Configurator. 1. Navigate to the **Instances Page** on the Gearbox UI. 2. Select the relevant chain and click **Sync**. 3. Wait for the sync to complete. The new Market Configurator will appear in the dashboard.
UI walkthrough On Instances Page click on a chain where you've deployed Market Configurator ![Figure](https://docs.gearbox.finance/assets/docs/curators/create-a-new-curator-market-configurator/05-sync-permissionless-interface.png) Click on a Sync button and wait for Sync to end ![Figure](https://docs.gearbox.finance/assets/docs/curators/create-a-new-curator-market-configurator/06-sync-permissionless-interface.png)
### Next Steps With the Market Configurator deployed, the infrastructure is ready for the first lending Market. ## Allow leverage strategies Source: https://docs.gearbox.finance/curators/allow-leverage-strategies File: content/curators/allow-leverage-strategies.mdx ## What is a strategy? A **Strategy** (technically a "Credit Manager") is a specific credit product offered to borrowers. While the Pool holds the liquidity, the Strategy defines **how that liquidity can be used**. * *Example 1:* "Stablecoin Farming" (Low Risk, High LTV, Whitelisted Stablecoins only). * *Example 2:* "Memecoin Trading" (High Risk, Low LTV, Wide asset list). You can attach multiple Strategies to a single Pool, allowing to segment risk and offer different terms for different user behaviors. ## Prerequisites: The Strategy Library To make setup easy, Gearbox uses **Strategy Bundles**. These are pre-configured "recipes" organized by the **Collateral Token** you want to support. **How to check availability:** 1. Open the **New Strategy** tab in the interface. 2. **Search for the Target Token** you want users to leverage (e.g., search for `wstETH` or `sUSDe`). 3. **If the token appears:** A Strategy Bundle exists. Selecting it will automatically configure the necessary smart contract connections (Adapters) to enable leverage for that asset. 4. **If the token is missing:** A bundle for this specific asset hasn't been created yet. * *Action:* Contact Gearbox Contributors to request a new Strategy Bundle. ### How to add and configure a strategy 1 ## Click on a "New Strategy" tab ![Figure](https://docs.gearbox.finance/assets/docs/curators/allow-leverage-strategies/01-click-on-a-new-strategy-tab.png) 2 ## Select Strategy Search for your Target Token to allow leverage on. * *Note:* The bundle automatically handles the complex technical setup (Adapter configuration), so you only need to focus on the financial parameters. ![Figure](https://docs.gearbox.finance/assets/docs/curators/allow-leverage-strategies/02-select-strategy.png) **Liquidation Threshold (LT)**\ This determines the maximum leverage. * *Formula:* `Max Leverage = 1 / (1 - LT)` * *Example:* LT 90% = 10x Leverage. LT 80% = 5x Leverage. **Interest Fee (Revenue)**\ The percentage of the borrowing interest that is captured as revenue. * *Split:* By default, this fee is split 50/50 between Curator and the Gearbox DAO. * *Impact:* This is charged **on top** of the base rate. If the base rate is 5% and your fee is 20%, the borrower pays 6%. **Important:** In the current version, the Interest Fee percentage is fixed upon deployment. To change it later, you must deploy a new Credit Manager. **Growth Hack:** Set a **0% Interest Fee** initially to attract early users with cheaper rates, then launch a new "Premium" strategy later once you have traction. 3 ## Liquidation Economics These parameters ensure the system remains solvent by incentivizing third-party liquidators. **Liquidation Premium (The Bounty)**\ The percentage of collateral given to the liquidator as a reward. **Liquidation Fee (The Penalty)**\ The percentage of collateral taken by the Protocol (You + DAO) during a liquidation. **Risk Management Intuition:**\ The Liquidation Premium is not just a "fee", it is the **incentive** for liquidators to keep the protocol solvent by forcefully exchanging Collateral token for the Debt token.\ For the liquidations to happen organically, it must take multiple factors into account: 1. **Slippage:** The cost of selling the collateral on a DEX. 2. **Gas Costs:** The transaction fee to execute the liquidation. 3. **Time value of money + collateral risk:** If the asset is illiquid and/or has timelocked redemptions, liquidator will have to hold the collateral through redemption cycle. 4. **Oracle reliability:** Lending market values collateral by the oracle price, however "true" value at every given moment can differ with magnitude defined by oracle methodology and market conditions. 4 ## Position Limits **Min & Max Debt**\ Defines the size of accounts allowed in this strategy. * *Min Debt:* Must be high enough to cover gas costs for liquidators. (e.g., $10,000+ on Ethereum Mainnet). * *Max Debt:* Limits exposure to a single whale. **Max Enabled Tokens**\ The maximum number of different tokens a user can hold as collateral simultaneously. * *Rule of Thumb:* Keep this number low (1) for efficiency. In practice, users rarely use more than 1 unique collateral token. **Technical Constraint:**\ The protocol enforces a ratio between your debt limits and the token count to ensure liquidations are always mathematically possible. **Formula:** `maxDebt / minDebt <= 100 / maxEnabledTokens` *Example:* If you allow **4 tokens**, the ratio `100/4 = 25`. Therefore, your Max Debt cannot be more than **25x** your Min Debt.\ \&#xNAN;*(If Min Debt = 10k, Max Debt must be <= 250k).* 5 ## Lifecycle (Optional) If you are running a fixed-term lending product (e.g., a "Season 1" pool or a bond-like structure), you can configure expiration settings. **Expiration Date**\ The timestamp after which the strategy winds down. * *Behavior:* After this date, **all** accounts can be liquidated, regardless of their Health Factor. Borrowing is disabled. **Expired Premium & Fee**\ You can set different liquidation penalties that apply *only* after the expiration date. * *Use Case:* Usually set lower than standard penalties to minimize users' losses if market conditions allow it. 6 #### Review & Deploy Review the configuration summary. ![Figure](https://docs.gearbox.finance/assets/docs/curators/allow-leverage-strategies/03-review-and-deploy.png) ### Next Steps Now you need to ensure that the resulting market state matches with the expectations. The best way to do it is to simulate execution of the real transactions on chain fork. The Testing section will show how to do it. ## Verify & Simulate Source: https://docs.gearbox.finance/curators/verify-simulate File: content/curators/verify-simulate.mdx Before executing any transaction on the mainnet (which costs gas, time and operations), it's better to verify that configuration works as intended. Gearbox provides a **Simulation Service** (Fork Testing). The system spins up a temporary "Sandbox" copy of the blockchain, applies your changes, and runs a list of tests. ## Automated Safety Checks The simulation runs a suite of automated checks to ensure your parameters are safe and functional. You should review the output of these tests (typically provided in the GIP report or Interface). ## The "Staging" App (User Experience Test) Automated tests check the math, but they don't check the experience. The simulation service generates a temporary **Staging Frontend** connected to the Sandbox fork. **Action:** Open the Staging App link and act as a user. 1. **Connect Wallet:** Use a test wallet (the fork will impersonate your tokens). 2. **Open a Position:** Try to borrow funds using your new strategy. 3. **Execute a Trade:** Try to swap assets or deposit into a vault via the adapter. 4. **Close/Repay:** Ensure you can exit the position. **After the fork has been created and the tests have passed, you can open the App connected to the test blockchain state.** ![Figure](https://docs.gearbox.finance/assets/docs/curators/verify-simulate/01-the-staging-app-user-experience-test.png) #### Application test walkthrough []() ## Prepare the Main Interface Once the contracts are deployed, they exist on the blockchain, but the official Gearbox Interface (app.gearbox.finance) may not know the imporant data: token icon, collateral APY, the list of points earned by borrowers or suppliers. For the tokens and strategies to be supported by the app, ensure that frontend configuration has all the required data: [listing-a-new-asset-in-the-main-app](https://docs.gearbox.finance/curators/listing-a-new-asset-in-the-main-app) ## Next Steps If the simulations pass and the UI looks correct, you are ready to execute the transactions onchain. ## Price feeds' configuration Source: https://docs.gearbox.finance/curators/price-feeds-configuration File: content/curators/price-feeds-configuration.mdx The feeds configurations are reviewed at . It requires CID of txs file uploaded to IPFS. ![Figure](https://docs.gearbox.finance/assets/docs/curators/price-feeds-configuration/01-price-feeds-configuration.png) #### TL;DR (Actionable checklist) 1. Txs simulation must pass. Click on Simulate button next to each batch to check. 2. Check the displayed price in the multisig UI to adequatly match current market values 1. Review allowPriceFeed transactions. 2. Grab the token address and verify its price on a DEX aggregator () 3. If not tradable on aggregators, ask the proposer for the correct reference (e.g. Pendle UI for PTs, Curve UI for LP tokens, or the issuer’s app for derivatives/vaults) 4. Zero price feed (always returns $0) can be safely added to any token for compatibility. 3. Check staleness period of the feed 1. Pull feeds → 4 min staleness 2. Push feeds → Heartbeat + 15 min (Ethereum) / Heartbeat + 2 min (L2s & faster chains). 4. Check that the feed contract is verified 1. Confirm verification on the chain’s block explorer. 5. Check that feeds are adequately capped from above: 1. Stablecoin feeds are capped by $1.04 from above 2. PT feeds for dollar-pegged vaults are capped by $1 from above 6. If the feed is deployed from external factory, it should use no Pull feeds as underlying feeds of factory deployment. ⚠️ If any of these criteria aren’t met: don’t sign, ask in chat for clarification. ✅ For a setLimiter transactions it's enough to check that simulation passes. This action updates exchange rate bounds of LP price feeds, and its correctness is checked on a contract level. *** #### 1) Purpose & Scope These Terms & Conditions define the minimum due‑diligence and neutral‑gatekeeping standards for IO signers when **adding, configuring, or allowing** price feeds in the **Price Feed Store (PFS)** on any supported EVM chain. The sole goal is to ensure that, **at the moment of signing**, every configured feed **returns an adequate market price for the intended token, normalized to 8 decimals**, and satisfies staleness / quality constraints. > Scope explicitly excludes any market‑risk, business, or curation decisions. IO signers act only as neutral technical gatekeepers. *** #### 2) Authority, Membership & Neutrality (summary) * **Authority (PFS):** IO may add/remove feeds; set staleness period; attach/detach feeds to tokens; and run feed configuration calls required by integrated providers. * **Neutrality:** IO remains **business-neutral**. Decisions must be based **only on objective technical criteria** below. All valid, safe requests should be processed in a reasonable timeframe. * **Non‑interference with markets:** PFS changes **do not alter behavior of existing Markets by themselves** and **are not auto‑applied** to them. *** #### 3) Definitions & Expectations * **Price Feed Store (PFS):** Chain‑specific registry of tokens and feeds. A token can be used as collateral only after its token entry and at least one allowed feed are present. * **8‑decimal normalization:** All effective Gearbox price feeds **must return USD‑denominated prices with 8 decimals** (`1e8` scale). Signers should verify output scale when checking a feed. * **Staleness Period:** Maximum allowed time since last update before a feed is considered stale and reverts/invalidates. * **Adequate market price:** A price reasonably close to reputable sources at the time of signing. *** #### 4) Pre‑Signing Due‑Diligence (hard requirements) **Signers must complete all checks below before approving the transaction.** If any check fails, **do not sign.** **4.1 Contract & Deployment** 1. **Feed contract is verified** on a reputable explorer (Etherscan/chain explorer). 2. If the feed is not external, it must be deployed from Bytecode Repository. **4.2 Price Output & Decimals** 1. **Price sanity:** Read the feed (via explorer read panel, provider dashboard, or PFS UI). The value must be **within a reasonable range** of one or more of: 1. **CoinGecko** (or equivalent public index), 2. **Trusted DEX/aggregators** (Uniswap/Curve/Balancer; 1inch/Cow/Odos), 3. **Designated platforms** when public indexes are unavailable (e.g., **Pendle markets** for PTs; **Pyth Insights**; **Redstone App**; protocol UIs for ERC4626 vault exchange rate). 2. **Decimals:** Confirm that the effective price value is **normalized to 8 decimals**. **4.3 Staleness** 1. **Staleness period** must be reasonable for the source and chain: 1. **Pull‑type feeds (e.g., Pyth/Redstone pull):** *recommended* `240s` (4 min) unless documented otherwise. 2. **External Aggregator feeds (push/heartbeat):** heartbeat **+ 15 min** (slower chains, e.g. Ethereum) or **+ 2 min** (faster chains, e.g. L2s). **4.4 Asset‑Specific Parameters (when applicable)** 1. **Stablecoin‑to‑USD feeds:** The observed price should be **bounded from above at 1.04**. 2. **Pegged assets feeds (LST-to-ETH, LRT-to-BTC, cbBTC-to-BTC etc.):** The observed ratio should be **bounded from above at 1.04**. *** #### 5) Refusal Policy If **any** requirement in fails or is inconclusive, **do not sign any transactions**. Examples: * Contract not verified; * Output not 8‑decimals normalized; * Price materially diverges from reputable venues; * Staleness period unreasonable for the source/chain; * Asset‑specific parameters missing/incorrect. *** ### Asset classes Asset class is a pair of (token-specific features, price feed methodology) which defines the behavior of collateral in different market scenarios. The same token can have different risks for LPs/Borrowers if priced differently. All of the tokens can be borrow-only or used as collaterals. \ Consider cases of * Correlated debt/collateral pairs * Volatile debt/collateral pairs Describe the policy of setting reserve feeds and aliased loss policy. Take into account that pull feeds providers (pyth and especially redstone) can be less reliable than push Some of the used feeds can be provided by token issuer itself (for example Resolv PoR, midas feeds etc.) and have no strict update frequency (we've seen Resolv update PoR feeds 2 hours later than was initially stated) 1. Stablecoins/ synthetic dollars\ USDT, USDe, USDai, DAI, USDf etc. 2. ETH or BTC equivalents 1. stETH, tBTC etc 3. Yield-bearing vaults\ Stream.finance xUSD, Midas vaults, tETH, LRTs etc. 1. Priced using ERC4626 feeds 2. Priced using composite feeds (prices can be market-based, exchange rate or PoR) 4. Pendle PT tokens 1. TWAP-based pricing or deterministic feeds 5. Curve, Balancer LP tokens 1. For the tokens having rate oracle or erc4626 vault attached in Curve or Balancer pools, oracle price appreciation is automatically displayed in virtual\_price 6. Pendle LP tokens 1. TWAP-based pricing or deterministic feeds 7. Delayed withdrawal phantom tokens 1. Since delayed withdrawal tokens are not liquidatable, the most favorable setting is when the position's HF is high enough not to fall below 1 due to accrued debt while redemption is being processed.\ \ One of the ways to achieve it is to set reserve feed of withdrawal token to be lower than its Main feed by some percentage. This percentage will effectively enforce the minimal health factor for user to have to initiate delayed withdrawal.\ \ Reserve to main price discount of 2% will mean that user has to maintain HF above \~1.02 to initiate full withdrawal of his collateral. ## Instance activation guidlines Source: https://docs.gearbox.finance/curators/instance-activation-guidlines File: content/curators/instance-activation-guidlines.mdx #### TL;DR (Actionable checklist) 1. Chain's block Gas Limit ≥ 30M (it's possible to execute transaction that uses 30M gas) 2. Canonical safe proxy factory v1.4.1 (0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67) is verified 3. $GEAR address is either null or can be verified on block explorer to be $GEAR token correctly bridged from Ethereum 4. Wrapped Gas Token address is listed on Chain's docs as canonical 5. Instance Owner Safe Proxy is deployed on target chain and can be verified on block explorer 6. Financial Multisig Safe Proxy is deployed on target chain and can be verified on block explorer ⚠️ If any of these criteria aren’t met: don’t sign, ask in chat for clarification. > Chain sync process involves uploading all the bytecode of used contracts to Bytecode Repository (like onchain github for secure deployment of all the modules)\ \ Here is an example of sync txs on Optimism: \ \ The process is gas- and txs- extensive, and requires \~400M of gas and RPC with 10k blocks per getLogs request. ## Listing a new asset in the main App Source: https://docs.gearbox.finance/curators/listing-a-new-asset-in-the-main-app File: content/curators/listing-a-new-asset-in-the-main-app.mdx Once the market contracts are deployed onchain, the Gearbox Interface (`app.gearbox.fi`) must be updated to display them. The official interface is maintained by Gearbox Contributors. To accelerate the listing process, Curators can submit a **Pull Request (PR)** to the configuration repositories. This provides the development team with the necessary data (icons, addresses, APY sources) in a ready-to-merge format. ## Prerequisites 1. **GitHub Account:** Required to submit changes. 2. **Asset Icons:** High-quality `.svg` files for the underlying token and any reward tokens. 3. **Contract Addresses:** The addresses of the deployed Credit Managers. 4. **APY Data Sources:** Links to DefiLlama or Merkl pools (if applicable). 1 ## Upload Asset Icons **Repository Location:** **Instructions:** * Format: `.svg` (Strict requirement). * Naming: **Lowercase symbol** (e.g., `susde.svg`, `wsteth.svg`).
Asset display example ![Figure](https://docs.gearbox.finance/assets/docs/curators/listing-a-new-asset-in-the-main-app/01-upload-asset-icons.png)
**Merkl Campaigns:** If the strategy earns rewards via Merkl, the reward token icon must also be uploaded, or the APR tooltip will break.
Merkl display example ![Figure](https://docs.gearbox.finance/assets/docs/curators/listing-a-new-asset-in-the-main-app/02-upload-asset-icons.png)
2 ### Configure Lending Pools (Earn Page) If a new Liquidity Pool was deployed, it must be added to the "Earn" page configuration. **Repository Location:** **Fill in the following fields:** * `name`: The displayed name (e.g., "Edge UltraYield USDC"). * `address`: The contract address of the Liquidity Pool. * `chainId`: The integer ID of the network (e.g., `1` for Mainnet, `42161` for Arbitrum). * `network`: The string name of the network (e.g., "Mainnet", "Arbitrum"). * `curator`: The entity managing the pool. * *Constraint:* This must match a valid `Curator` type defined in the [Gearbox SDK](https://github.com/Gearbox-protocol/sdk/blob/master/src/sdk/chain/chains.ts). * `poolType`: The category tag (e.g., `["stable"]`, `["eth"]`). * *Constraint:* This must match a valid pool type defined in the [Pools type list](https://github.com/Gearbox-protocol/static/blob/main/src/core/pools.ts). 3 ### Configure Strategies (Farm Page) If new Credit Managers (Strategies) were deployed, they must be added to the "Farm" page configuration. **Repository Location:** **Fill in the following fields:** * `name`: The display name (e.g., "Lido staked ETH"). * `id`: The token symbol (e.g., "susde"). This serves as the unique key. * `tokenOutAddress`: The address of the collateral token. * `creditManagers`: An array containing the addresses of all Credit Managers that support this strategy. * *Example:* `["0xCM_Address_1", "0xCM_Address_2"]` * `strategyType`: The category tag (e.g., `["stable"]`, `["eth"]`). * *Constraint:* This must match a valid strategy type defined in the [Strategy types list.](https://github.com/Gearbox-protocol/static/blob/main/src/core/strategy.ts) * `issuesOnClose`: Set to `true` if the asset has delayed redemptions or requires extra capital to close (prevents users from getting stuck). 4 ## Connect Yield Data (APY) #### Option A: DefiLlama Integration If the underlying protocol is tracked on DefiLlama. **Repository Location:** * **Action:** Add the DefiLlama Pool ID to the configuration map. #### Option B: Merkl Integration If the strategy earns incentives via Merkl. **Repository Location:** * **Action:** Add the Merkl Campaign parameters to the relevant Network object (e.g., `Plasma`, `Monad`). * **Key:** The token address (e.g., `"0x2d84..."`). * **Value Object:** * `id`: The token address(repeated). * `symbol`: Token symbol (e.g., `"USDT0USDe"`). * `type`: Usually `"common"`. #### Option C: Points Campaigns If the strategy or pool earns points (e.g., Ethena Sats, EigenLayer Points), the configuration is split into three parts. **1. Register the Point Type**\ If this is a new point system, define it in the base configuration. * [**Path**](https://github.com/Gearbox-protocol/apy-server/blob/92bf265744b95ecf7ce85da67278b27a71229691/src/tokens/points/constants.ts#L58) * **Action:** Add a new entry to `REWARDS_BASE_INFO`. ```typescript somnia: (multiplier: PointsReward["multiplier"]): PointsReward => ({ name: "Somnia", units: "points multiplier", multiplier, type: "somnia", }), ``` **2. Apply to Strategies (Farm Page)**\ If the points are earned by holding collateral (e.g., weETH). * [**Path**](https://github.com/Gearbox-protocol/apy-server/blob/92bf265744b95ecf7ce85da67278b27a71229691/src/tokens/points/constants.ts#L276C14-L285C7) * **Action:** Add the collateral address to `POINTS_INFO_BY_NETWORK`. ```typescript { address: "0xCollateralAddress...", symbol: "weETH", rewards: [REWARDS_BASE_INFO.etherfi(200n)], // 200n = 2x Multiplier }, ``` **3. Apply to Pools (Earn Page)**\ If the points are earned by depositing into a lending pool. * **File:** * **Action:** 1. Add the Pool Address to `const POOLS`. 2. Add the Token Address to `const TOKENS`. 3. Add the Reward Logic to the Network array. ```typescript { pool: POOLS.USDC_E_V3_SOMNIA, token: TOKENS.USDC_E_SOMNIA, symbol: "USDC.e", amount: 12n * 1000n, // 12n * 1000n = 1.2x Multiplier duration: "day", name: `${REWARDS_BASE_INFO.somnia(1n).name} ${REWARDS_BASE_INFO.somnia(1n).units}`, type: REWARDS_BASE_INFO.somnia(1n).type, estimation: "absolute", condition: "holding", }, ``` ## Emergency admin Source: https://docs.gearbox.finance/curators/emergency-admin File: content/curators/emergency-admin.mdx UI for executing Emergency Admin function is located at [https://permissionless-safe.gearbox.foundation/emergency/](https://permissionless-safe.gearbox.foundation/emergency/) ### Why is it needed? The Emergency Admin role has a very limited set of actions that can be executed immediately, without a timelock. These actions are designed to let curators respond quickly to incidents and protect the solvency of the market. *** ### How to add an emergency admin? Only one address can have Emergency Admin role. It is set at the moment of creating a Market Configurator. It can be configured in Curators' UI for the existing Market Configurator: []() *** ### What are the available functions, its scope and impact? | Action | New positions | Borrow | Withdraw | Adapter call | Liquidate | |---|---|---|---|---|---| | Token Limit = 0 Impact: Asset (Pool) | ❌ | ⚠️ | ✅ | ✅ | ✅ | | Forbid Adapter Impact: Adapter (CM) | ⚠️ | ✅ | ✅ | ❌ | ⚠️ | | CM debt limit = 0 Impact: CM | ❌ | ⚠️ | ✅ | ✅ | ✅ | | Forbid borrowing Impact: CM | ❌ | ❌ | ✅ | ✅ | ✅ | | Set Main Feed Impact: Asset (Pool) | ✅ | ✅ | ⚠️ | ⚠️ | ⚠️ | | Forbid Token Impact: Collateral (CM) | ❌ | ❌ | ❌ | ❌ | ✅ | | Pause CM Impact: CM | ❌ | ❌ | ❌ | ❌ | ❌ | | Pause Pool Impact: Pool | ❌ | ❌ | ❌ | ❌ | ❌ | *** ### Emergency scenarios
Collateral token incident * **Low severity** *(incident status is unclear)* * **Set token limit = 0** in Pool * Collateral exposure can't be increased * Existing positions operations are not limited * **Medium severity** *(collateral behavior is unhealthy, but no immediate bad debt risk)* * **Forbid token** in Credit Manager * Collateral exposure can't be increased * Existing positions operations are limited * Operations which decrease HF are blocked (increase debt, withdraw collateral, swap into different collateral with lower LT) * Operations which increase balance of forbidden token are blocked * **High severity** *(collateral poses risk to market solvency)* * **Pause** all Credit Managers which have exposure * No user-side operations are allowed * Only emergency liquidators can liquidate accounts
Price feed incident #### **Overpricing token** * **Feed price is higher than market price enough to block liquidations**\ In cases when price feeds deviates from market price by more than liquidation premium, liquidations become unprofitable. * **Low severity** *(existing positions create no insolvency risks)* * Set **Token Limit = 0** in Pool to limit increasing exposure to Asset. * Consider creating a new Credit Manager with higher liquidation premium. * **High severity** *(existing positions create risk to market solvency)* * **Set Main Feed** of token to one that is closer to market value. * This action will reduce Health Factor of existing positions which may result in immediate liquidations. * If the new Main feed is equal to current Reserve feed, reserve feed will be automatically detached from token, which will block operations relying on Safe Price (Collateral withdrawals, Usage of adapters, Partial Liquidations). * **Feed price is higher than market price enough to drain Pool**\ In cases when price feeds higher than market price by more than 1/LT of a token, one can buy token on secondary market and borrow more than was the cost, repeating it until "buy" liquidity or the pool is exhausted.\ \ \&#xNAN;*This risk is mitigated if at least one of Main and Reserve feeds returns adequate value, as the token at risk will be priced at minimal price during collateral withdrawals.* * **High severity** * **Forbid token** in Credit Manager * Collateral exposure can't be increased * Existing positions operations are limited (users can only fully close accounts)
External protocol incident **An external contract that is used through Adapter may appear to be misconfigured, hacked or is a proxy contract having its implementation replaced for an unsafe one.** Call **Forbid Adapter** for every Credit Manager which has the adapter allowed.
#### Emergency Methods Definitions **Token‑Specific** **`setTokenLimit(token, 0)`** * **Impact Scope:** Pool * Sets the quota limit for a token to zero. * Users cannot increase quota in that token, meaning new exposure to collateral can't be created. * Withdrawals, debt increases, and adapter calls for existing positions remain enabled. **`forbidToken(token)`** * **Impact Scope:** Credit Manager * Highly ***Restricts allowed operations*** for accounts. * Operations which decrease HF are blocked (increase debt, withdraw collateral, swap into different collateral with lower LT) * Operations which increase balance of forbidden token are blocked * **Liquidations** are not impacted. **Feed‑Specific** **`setMainPriceFeed(token, feed)`** * Switches the main price feed of a token to another feed pre‑approved in the Price Feed Store. * Target feed must have been added at least 1 day earlier. * **Side effects:** * If the new main feed equals the current reserve feed, the reserve feed is removed (token ends up with only one feed). * New main price may be low enough to trigger immediate liquidations of Credit Accounts. **Adapter‑Specific** **`forbidAdapter(adapter)`** * Disables calls through a specific adapter. * Prevents swaps on DEXes, vault deposits/withdrawals, etc. * **Side effects:** * If the forbidden adapter highly contributes to some tokens' liquidity, forbidding it may break liquidations, since most of Gearbox's internal liquidators rely on allowed adapters for searching tokens' swap paths. External liquidators may or may not be affected. **Pool‑Global** **`pausePool(pool)`** * Pauses pool‑level operations (deposit into pool, withdraw LP tokens) * Designed to be combined with Credit Manager pause to prevent bank runs in the most extremal scenarios. **`setCreditManagerDebtLimit(cm, 0)`** * Sets the Credit Manager debt limit to zero. * Prevents new borrowing capacity from the pool into that CM. Existing positions are not affected. **Credit Manager‑Global** **`pauseCreditManager(cm)`** * Pauses all Credit Manager operations. * Borrowing, withdrawing collateral, opening & closing credit accounts, performing adapter calls are blocked. * Only whitelisted **Emergency Liquidators** can liquidate accounts. **`forbidBorrowing(cm)`** * Forbids opening new accounts in the CM. * Prevents increasing debt in existing accounts. **Loss Policy** **`setAccessMode(mode)`** * Adjusts who can execute liquidations which result in bad debt accrual. * Modes must be documented (TBD). **`setChecksEnabled(flag)`** * Enables/disables specific safety checks within loss policy. ## Pausable/Unpausable admin Source: https://docs.gearbox.finance/curators/pausable-unpausable-admin File: content/curators/pausable-unpausable-admin.mdx > ### UI for executing Pausable admin functions is located at Pausable admin can pause active **Pools** and **Credit Managers.** Unpausable admin can unpause paused **Pools** and **Credit Managers.** > Pausable admin is a sensitive role, but its permissions are softer that unpausable admin.\ \ You can set **pausable admin** to be **EOA** to be able to react quickly, but **unpausable admin should be a multisig**. *** ## Multipause Multipause is a helper contract that allows pausing multiple Market contracts in one transaction. > For multipause contract to function, you need to add a Multipause contract and at least one Pausable admin to the list. ## How to add admins and multipause []() *** *** ## Functions definition **`Pause Pool(pool)`** * Pauses pool‑level operations (deposit into pool, withdraw LP tokens) * Designed to be combined with Credit Manager pause to prevent bank runs in the most extremal scenarios. **`Pause Credit Manager(cm)`** * Pauses all Credit Manager operations. * Borrowing, withdrawing collateral, opening & closing credit accounts, performing adapter calls are blocked. * Only whitelisted **Emergency Liquidators** can liquidate accounts. **`Pause Market (cm)`** * Pause Pool and all Credit Managers of a Market. **`Pause All Contracts (mc)`** * Pause all Pool and all Credit Managers of a Market Configurator. *** ## How to pause contracts Source: https://docs.gearbox.finance/curators/how-to-pause-contracts File: content/curators/how-to-pause-contracts.mdx 1 ### Navigate to emergency dashboard & Select Curator 2 ### Pause needed contracts ![Figure](https://docs.gearbox.finance/assets/docs/curators/how-to-pause-contracts/01-pause-needed-contracts.png) * `Pause CM` * Forbid all operations with credit accounts within a CM * Liquidations are allowed to whitelisted emergency liquidators * `Pause pool` * *Forbid deposits and withdrawals* * `Pause market` * *Pause pool and all CMs* * `Pause all contracts` * *For each market:* * *Pause pool and all CMs* ## How to unpause contracts Source: https://docs.gearbox.finance/curators/how-to-unpause-contracts File: content/curators/how-to-unpause-contracts.mdx ## Unpause Credit Manager 1 ### Navigate to the curator's page ### 2 ### Create a new GIP, select a Market and go to the paused Credit Manager's page Add unpause transaction and execute GIP ![Figure](https://docs.gearbox.finance/assets/docs/curators/how-to-unpause-contracts/01-create-new-gip-select-market-go-paused-credit-manager.png) ## Unpause Pool 1 ### Navigate to the curator's page ### 2 ### Create a new GIP, select a Market and go to Details section Add unpause transaction and execute GIP ![Figure](https://docs.gearbox.finance/assets/docs/curators/how-to-unpause-contracts/02-create-new-gip-select-market-go-details-section.png) ## Add required Price Feeds Source: https://docs.gearbox.finance/curators/add-required-price-feeds File: content/curators/add-required-price-feeds.mdx ### Price Feed Store (PFS) The Price Feed Store is a chain-specific registry that lists which tokens and price feeds can be used within Gearbox on that chain. For a token to be used as collateral, it must first be added to the Price Feed Store, along with a list of available price feeds. Only the **Instance Owner**—a chain-specific multisig—can add or update entries in the Price Feed Store. This role acts as a neutral technical gatekeeper, ensuring safe and verified configurations while staying out of risk or business decisions. The Instance Owner multisig is open to participation from active curators and chain contributors, making the process transparent and inclusive without compromising protocol safety. ### How to work with PFS? Interface for accessing each chain's PFS is located at [https://permissionless.gearbox.foundation/instances](https://permissionless.gearbox.foundation/instances/1). **Demo of PFS setup workflow:** []() ### What price feed sources are already integrated? *(Click on feed to see details)* | Price source | Feed type | Supported collaterals & features | |---|---|---| | [Chainlink, Redstone push, EO AggregatorV3Interface - compatible external price providers](https://docs.gearbox.finance/curators/add-required-price-feeds#external-feeds) | External | Blue-chip tokens | | [ERC4626 exchange rate](https://docs.gearbox.finance/curators/add-required-price-feeds#erc4626-exchange-rate) | ERC4626 | Most of the yield-bearing vaults | | [Pyth](https://docs.gearbox.finance/curators/add-required-price-feeds#pyth) | Pyth | Blue chip & emerging tokens | | [Redstone pull](https://docs.gearbox.finance/curators/add-required-price-feeds#redstone-pull) | Redstone | Deployed on any EVM on day 0 | | Upper bound | Bounded | Bound borrowed tokens to protect borrowers from liquidationsBound collateral tokens to protect LPs from price manipulation | | Multiply 2 feeds price | Composite | Optimal way to price correlated token pairs | | Constant price | Constant | Hardcode pegged assetsApply premium or discount combining with composite feed | | [Curve LP](https://docs.gearbox.finance/curators/add-required-price-feeds#curve-stable) | Curve_crypto Curve_stable | Collateralize Curve LP tokens | | Token price from Curve Pool | Curve TWAP | Collateralize experimental tokens with pricing based on DEX trades | | [Pendle PT](https://docs.gearbox.finance/curators/add-required-price-feeds#pendle-pt) | Pendle PT TWAP | Get TWAP market price of PTs | | [Kodiak Island](https://docs.gearbox.finance/curators/add-required-price-feeds#kodiak-island) | Kodiak_island | Get island share price | ### Updatable LP bounds Some tokens in Gearbox are tokenized vault shares — they represent ownership of assets inside a vault or liquidity pool. Examples include: * Vault tokens like ERC-4626 share tokens * LP tokens from DEXs or yield strategies **How pricing works:** * Each share has an exchange rate to its underlying asset (e.g., 1 share = X ETH). * The LP price feed combines: * the share price from the vault, and * the USD price of the underlying asset. **Why bounds are needed:** * Vault share prices can be manipulated or distorted through smart-contract exploits. * Normally, share prices move slowly and predictably with yield — not like volatile traded tokens. **To protect against abnormal price swings, Gearbox sets updatable bounds:** * A minimum and maximum price for each LP share. * These bounds cap sudden drops or spikes in reported prices. * They are updated periodically to track the vault’s real exchange rate as it appreciates over time. This mechanism keeps LP pricing stable, reliable, and manipulation-resistant while still following genuine on-chain growth. *** ### Setup details
Pyth **Click New Feed and select Pyth type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/01-setup-details.png) ***Pyth dashboard with feeds info:*** [***https://insights.pyth.network/price-feeds***](https://insights.pyth.network/price-feeds) * Name: * Specify token Symbol and Price methodology * Examples: * Name: RLP (Redemption rate)\ Feed: * Name: RLP (Market)\ Feed: * Token: * Token address\ Needed for Gearbox contracts to understand what pull feed needs to be updated * descriptionTicker * The same as name\ This parameter is to be removed later * priceFeedId ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/02-setup-details.png) * Pyth * Address of Pyth singleton contract on the target chain\ see here: * Ethereum - 0x4305FB66699C3B2702D4d05CF36551390A4c69C6 * Berachain - 0x2880aB155794e7179c9eE2e38200202908C17B43 * Etherlink - 0x2880aB155794e7179c9eE2e38200202908C17B43 * maxConfToPriceRatio (takes value in bps: 300 = 3%) * Except for the current price, Pyth returns confidence interval * If the width of confidence interval in % is larger than this parameter, feed ourput is considered invalid causing tx revert * Example (consider maxConfToPriceRatio = 3%) * Valid price: * Price: 3000 * Confidence interval: 15 * confToPriceRatio = 15/3000 = 0.5% * Invalid price: * Price: 3000 * Confidence interval: 120 * confToPriceRatio = 120/3000 = 4% * Staleness Period * Gearbox contracts track the timestamp of last Feed's update\ If the update happened more than Staleness Period seconds ago, feed value should be updated or the contracts will revert * Recommended value for Pull feeds: 240s = 4min Right after a new Pyth feed is deployed it's required to send 0.000001 ETH to its address. Without it won't function and can't be added to Price Feed Store.
External feeds **Click New Feed and select External type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/03-setup-details.png) ***Dashboards of external providers:*** * *Redstone:* [***https://app.redstone.finance/app/feeds/***](https://app.redstone.finance/app/feeds/) * *Chainlink:* [***https://docs.chain.link/data-feeds/price-feeds/addresses?page=1\&testnetPage=1***](https://docs.chain.link/data-feeds/price-feeds/addresses?page=1\&testnetPage=1) * *EO:* [***https://docs.eo.app/docs/eprice/feeds-addresses/price-feed-addresses***](https://docs.eo.app/docs/eprice/feeds-addresses/price-feed-addresses) * *Some* *protocols may provide custom feeds compatible with AggregatorV3Interface* * [*Resolv*](https://docs.resolv.xyz/litepaper/for-developers/smart-contracts/price-oracles) * [*Midas*](https://docs.midas.app/defi-integration/price-oracle) #### *Config parameters:* * Name: * Specify token Symbol and Provider name * Examples: * USDC (Chainlink) * hemiBTC (EO) * ETH (Redstone Push) * mTBILL (Midas NAV) * priceFeedAddress * Address of deployed feed * Staleness Period (in seconds) * Gearbox contracts track the timestamp of last Feed's update\ If the update happened more than Staleness Period seconds ago contracts will revert\ \ \&#xNAN;***Motivation**: If the feed with heartbeat of 24 hours wasn't updated in the last 30 hours, smth bad happened with the oracle providers and protocol operations are blocked waiting for Curator to interfere* * Recommended value: * Heartbeat + 15 minutes for slower chains (Ethereum) * 87 300s = 24h + 15min * Heartbeat + 2 minutes for faster chains * 86 520s = 24h + 2min
ERC4626 exchange rate *This contract fetches mint/redeem rate from specified erc4626 vault and multiplies it by the underlying feed output to return the vault shares' USD price.* **Click New Feed and select ERC4626 type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/04-config-parameters.png) #### *Config parameters:* * Name: * Specify token Symbol and underlying feed price Provider name * Example: * Name: sDAI (Chainlink)\ Will mean that this feed takes ERC4626 sDAI/DAI exchange rate directly from sDAI contract + DAI/USD price from Chainlink * Vault: * Address of ERC4626 vault to fetch mint/redeem rate from. * underlyingPriceFeed: * Select existing price feed * Example: * If the specified vault it sUSDe, then underlying price feed should return USDe/USD price. To understand what asset's feed should be passed as underlying, go to the ERC4626 vault contract and call its ***asset()*** method — you will get the address of the token which is vault's underlying.
Redstone pull **Click New Feed and select Redstone type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/05-config-parameters.png) #### *Config parameters:* * Name: * Specify token Symbol and Price methodology Examples: * Name: ezETH (Market)\ Feed: * Name: ezETH (Fundamental)\ Feed: * Token: * Token address\ Needed for Gearbox contracts to understand what pull feed needs to be updated * descriptionTicker * The same as name\ This parameter is to be removed later * dataServiceId * Most likely should be kept untouched\ Internal variable for non-standard sources of redstone data * dataFeedId * The same as Symbol in Redstone UI ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/06-config-parameters.png) * signersThreshold * Minimum amount of signatures from Redstone nodes to have for the feed's result to be deemed valid. * Redstone currently have maximum of 5 nodes. * The safest option is to set this value to 5 (this was historically used in Gearbox), but sometimes couple of Redstone nodes may stop working for a short periods of time. * Signer 1/2/3/4/5 * Most likely should be kept untouched\ Redstone have fixed list of signers' addresses that rarely (if ever) changes
Kodiak island **Click New Feed and select Kodiak\_island type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/07-config-parameters.png) #### *Config parameters:* * Name: * Specify token Symbol and sources of Underlying Prices\ Example: * Name: iBERA-iBGT (Pyth; Redstone push) * [Island](https://app.kodiak.finance/#/liquidity/pools/0x24afceb372b755f4953e738d6b38e9e4646d9f57?farm=0x199f156bba61496401dc2a009b5f69eb9a7e6f21\&chain=berachain_mainnet) * Feed0: [Pyth iBERA](https://insights.pyth.network/price-feeds/Crypto.IBERA%2FUSD) * Feed1: [Redstone push iBGT](https://app.redstone.finance/app/feeds/berachain/ibgt/) * kodiakIsland: * Island Address * PriceFeed0 * Select the feed from already added to price token with 0'th index in terms of USD * PriceFeed1 * Select the feed from already added to price token with 1'st index in terms of USD * descriptionTicker * The same as name\ This parameter is to be removed later
Pendle PT **Before any deployment, ensure that pendle market has correct cardinality. It should be no less than twapWindow / blockTime + 1 for a given chain.** To check cardinality, go to LP contract and get \_storage()\[4].\ To update cardinality, call increaseObservationsCardinalityNext of an LP contract. ### Pendle chainlink-compatible factory * Factory Addresses: * Plasma: 0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26 * Mainnet: 0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd 1. Deploy PT to SY oracle using createOracle Factory method **Market**: Pendle Market address\ **twapDuration**: twap duration in seconds (1800 recommended)\ **baseOracleType**: 0 (PT to SY price) ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/08-pendle-chainlink-compatible-factory.png) 2. Add deployed pendle feed as external (staleness period = 1) 3. Deploy Composite Gearbox Oracle\ Set Feed 1 to previously deployed PT-to-SY feed\ Set Feed 2 to feed which prices SY to USD SY to USD feed shouldn't be of updatable type (Redstone Pull or Pyth pull) ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/09-pendle-chainlink-compatible-factory.png) 3. Deploy Bounded Gearbox Oracle\ Set underlying feed to previously deployed Composite feed\ Set bound to 1 ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/10-pendle-chainlink-compatible-factory.png) ### Gearbox PT feed **Click New Feed and select Pendle PT TWAP type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/11-gearbox-pt-feed.png) #### *Config parameters:* * Name: * Specify token Symbol and source of Underlying Price\ Example: * Name: PT-sUSDE-25SEP2025 (Chainlink) * Underlying feed: sUSDe/USD (Chainlink) * market * Pendle Market address ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/12-config-parameters.png) * UnderlyingPriceFeed * The feed contract is able to fetch price of PT token in terms of SY token from the Pendle Market and then multiplies it by SY price in terms of USD ⇒ underlying feed is an intended method to price SY in terms of USD. * priceToSy * ***Most likely you need to check this box*** (if on the previous step you set underlying price feed to be equal to SY price) * If you don't check this box, you will need to use asset price as underlying price feed. (read more about the difference between Asset and SY [here](https://docs.pendle.finance/Developers/Contracts/StandardizedYield#asset-of-sy--assetinfo-function)) * twapWindow * The window length in seconds for averaging market price * Value of 1800s was usually used for previous deployments ### Deploy Bounded Gearbox Oracle Set underlying feed to previously deployed PT TWAP feed\ Set bound to 1
Curve Stable **Click New Feed and select Curve\_stable type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/13-deploy-bounded-gearbox-oracle.png) #### *Config parameters:* * **Name** * Specify pool Symbol and sources of Underlying Prices\ Example: * Name: crvUSD-USDC (Chainlink) * [Pool](https://www.curve.finance/dex/ethereum/pools/factory-crvusd-0/deposit/) * Feed0: Chainlink crvUSD * Feed1: Chainlink USDC * **Token** * LP token address ![Figure](https://docs.gearbox.finance/assets/docs/shared/curve-stable-token-input.png) * **Pool** * The address of the pool ![Figure](https://docs.gearbox.finance/assets/docs/shared/curve-stable-pool-input.png) * underlyingPriceFeed 0/1/2/3 * Select a feed from allowed list to price pool's tokens at given indexes * If pool has only 2 tokens in it, specify only underlyingPriceFeed0 & 1
Pendle LP **Before any deployment, ensure that pendle market has correct cardinality. It should be no less than twapWindow / blockTime + 1 for a given chain.** To check cardinality, go to LP contract and get \_storage()\[4].\ To update cardinality, call increaseObservationsCardinalityNext of an LP contract. ### Pendle chainlink-compatible factory * Factory Addresses: * Plasma: 0xAcD67f36183c8bA6b80Cfa60375510Ce17D0dd26 * Mainnet: 0x9E5129dcC15d39625617DcD7F0F44FB0BB957FFd 1. Deploy PT to SY oracle using createOracle Factory method **Market**: Pendle Market address\ **twapDuration**: twap duration in seconds (1800 recommended)\ **baseOracleType**: 2 (LP to SY price) ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/08-pendle-chainlink-compatible-factory.png) 2. Add deployed pendle feed as external (staleness period = 1) 3. Deploy Composite Gearbox Oracle\ Set Feed 1 to previously deployed LP-to-SY feed\ Set Feed 2 to feed which prices SY to USD SY to USD feed shouldn't be of updatable type (Redstone Pull or Pyth pull) ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/09-pendle-chainlink-compatible-factory.png) 3. Deploy Bounded Gearbox Oracle\ Set underlying feed to previously deployed Composite feed\ Set bound to 1 ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/10-pendle-chainlink-compatible-factory.png) ### Gearbox PT feed **Click New Feed and select Pendle PT TWAP type** ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/11-gearbox-pt-feed.png) #### *Config parameters:* * Name: * Specify token Symbol and source of Underlying Price\ Example: * Name: PT-sUSDE-25SEP2025 (Chainlink) * Underlying feed: sUSDe/USD (Chainlink) * market * Pendle Market address ![Figure](https://docs.gearbox.finance/assets/docs/curators/add-required-price-feeds/12-config-parameters.png) * UnderlyingPriceFeed * The feed contract is able to fetch price of PT token in terms of SY token from the Pendle Market and then multiplies it by SY price in terms of USD ⇒ underlying feed is an intended method to price SY in terms of USD. * priceToSy * ***Most likely you need to check this box*** (if on the previous step you set underlying price feed to be equal to SY price) * If you don't check this box, you will need to use asset price as underlying price feed. (read more about the difference between Asset and SY [here](https://docs.pendle.finance/Developers/Contracts/StandardizedYield#asset-of-sy--assetinfo-function)) * twapWindow * The window length in seconds for averaging market price * Value of 1800s was usually used for previous deployments ### Deploy Bounded Gearbox Oracle Set underlying feed to previously deployed PT TWAP feed\ Set bound to 1
Balancer V3 LP ### Balancer chainlink-compatible factory Feeds of underlying tokens used for deployment shouldn't be of updatable type (Redstone Pull or Pyth pull) Factory address: * Plasma: 0x86e67E115f96DF37239E0479441303De0de7bc2b * Mainnet: 0x83bf399fa3dc49af8fb5c34031a50c7c93f56129
## Configure Market Source: https://docs.gearbox.finance/curators/configure-market File: content/curators/configure-market.mdx ### Assets ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-market/01-assets.png) 1 #### Add new asset and set Main Feed **Asset:** Collateral token address. Select from PriceFeed Store or [add new if needed.](https://docs.gearbox.finance/curators/add-required-price-feeds) **Price Feed:** Collateral token Main price feed. Select from PriceFeed Store or [add new if needed](https://docs.gearbox.finance/curators/add-required-price-feeds). Main feed is used to for collateral pricing during liquidation checks. 2 #### Set Reserve Feed Select from PriceFeed Store or [add new if needed](https://docs.gearbox.finance/curators/add-required-price-feeds). Used to protect the protocol against manipulations of Main Feeds’ price. See [Dual-oracle pricing](https://docs.gearbox.finance/core/dual-oracle-system) for detailed explanation. Set Reserve Feed equal to Main Feed if you have no other options.\ \&#xNAN;***If reserve price feed is not set, part of the protocol functions (withdrawals, partial liquidations) won't be available.*** 3 #### Quota limit Max amount of debt that can be backed by particular asset in the pool. Measured in amount of underlying asset. Used for calculation of Account Value and quota interest rate.\ see [Docs](https://docs.gearbox.finance/core/liquidation-dynamics#what-is-a-health-factor) for detailed explanation. 4 #### Quota Increase Fee **Rarely used, feel free to omit**\ When user increases Quota (CA-specific max amount of debt that can be backed by particular collateral), charge a fixed % fee on the quota difference: works like a one-time fee charged on swaps by exchanges. Added to account's Debt. Distributed as a DAO & Curator fee on repayment according to the fee split rules. ### Rates ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-market/02-rates.png) 1 #### Collateral-specific Rates Additional rate which is applied on top of IRM-based utilization rate for borrowing against particular collaterals. To modify collateral-specific rates, set the intended rates in front of each collateral and click "Update Rates". See [Collateral-specific rates](https://docs.gearbox.finance/curators/fee-sharing) for detailed explanation. Setting IRM in a way that **borrow rate at target utilization (\~80-85%)** equals **60-70% of expected collateral yield** will allow you to bootstrap utilization by allowing favorable rates.\ Equlibrium rate can then be found by increasing collateral-specific rates. ### IRM ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-market/03-irm.png) 1 #### IRM parameters Rate curve parameters can be changed after the creation of Market by executing transactions generated from "Change Model" action. ### Loss policy Additional logic applied during CA liquidation if it results in creation of Bad Debt.\ Properly set loss policy is especially helpful in cases when secondary market oracle is used as a Main feed. **Risks of using secondary market price as Main price feed** \ \&#xNAN;***Example**:* * Main ezETH feed - Market price ## Configure Adapters Source: https://docs.gearbox.finance/curators/configure-adapters File: content/curators/configure-adapters.mdx ## ### What are adapters? The Credit Account design enables active interaction with the DeFi ecosystem while borrowing — such as swapping tokens, depositing into vaults, claiming rewards, and more. However, allowing arbitrary operations poses security risks. > Adapters — modular contracts that enable secure, controlled interactions with external protocols. ### Why do curators need to configure adapters? Having adapters properly configured in the market is essential for allowing collateral swaps, 1-click leverage and other UX features of Gearbox protocol. > Existing offchain infra (Front End, Liquidator) rely on router for finding paths from/to available collaterals. Router is not part of Gearbox protocol, therefore it’s not present in Bytecode repository. Router is used by Gearbox SDK to provide swap paths and it doesn’t interact with core contracts directly. ### What protocols are already integrated? | Protocol | Supported actions | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | | Uniswap, Sushiswap, Oku Trade [V2](https://docs.gearbox.finance/curators/configure-adapters#uniswap-sushiswap-v2), [V3](https://docs.gearbox.finance/curators/configure-adapters#uniswap-sushiswap-pancakeswap-iguanadex-oku-trade-v3) | Swaps | | Pancakeswap, IguanaDEX [V3](https://docs.gearbox.finance/curators/configure-adapters#uniswap-sushiswap-pancakeswap-iguanadex-oku-trade-v3), [StableSwap](https://docs.gearbox.finance/curators/configure-adapters#pancakeswap-iguanadex-stableswap) | Swaps, Stableswap LP deposits | | Balancer [V2](https://docs.gearbox.finance/curators/configure-adapters#balancer-v2), [V3](https://docs.gearbox.finance/curators/configure-adapters#balancer-v3) | Swaps, LP deposits | | Curve [Stableswap, CryptoSwap, Stable NG](https://docs.gearbox.finance/curators/configure-adapters#curve-stableswap-cryptoswap-and-stableng) | Swaps, LP deposits | | [***Pendle***](https://docs.gearbox.finance/curators/configure-adapters#curve-stableswap-cryptoswap-and-stableng) | PT swaps | | [Mellow](https://docs.gearbox.finance/curators/configure-adapters#mellow-erc4626) ERC4626 vaults, DVstETH | Instant deposits, Delayed withdrawals | | Velodrome, Aerodrome V3, Stableswap | Swaps | | Camelot, Thena (Algebra AMM dexes) V3 | Swaps | | ***Napier*** | PT Swaps, LP deposits | | ***Convex*** | Staking LP, claiming rewards | | [***Fluid DEX***](https://docs.gearbox.finance/curators/configure-adapters#fluid-dex) | Swaps | | Camelot, Thena, Quickswap (Algebra AMM) V3 | Swaps | | ***Trader Joe*** | Swaps | | ***Infrared*** | Staking LP, claiming rewards | | ***Sky*** | DAI - USDS conversion, Staking USDS for SKY | | ***Lido*** | stETH - wstETH conversion | | [***ERC4626***](https://docs.gearbox.finance/curators/configure-adapters#erc4626) | Instant deposits and withdrawals (whenever possible) | | [***Kodiak Island***](https://docs.gearbox.finance/curators/configure-adapters#erc4626) | Deposit into Island, Swaps in pool | | Uniswap V4 | Swaps | | InfiniFi | Instant deposits, Delayed withdrawals | All the source code and audit reports of the contracts can be found in [Bytecode Repository](https://permissionless.gearbox.foundation/bytecode). Use search, click on the target contract and then **View Source** or **View Report**. All the Adapters can be found by searching for the ADAPTER domain in Bytecode Repository. [setup example (BNB chain: USD1 pool, USDX collateral)](https://www.notion.so/Adapter-setup-example-BNB-chain-USD1-pool-USDX-collateral-208145c16224807fa1a0d318c01bc1ae?pvs=21) [setup example (Ethereum chain: tBTC pool, uptBTC collateral)](https://www.notion.so/Adapter-setup-example-Ethereum-chain-tBTC-pool-uptBTC-collateral-20e145c1622480c886d8d43dc5e9f5bb?pvs=21) [setup example (Ethereum chain: USDC pool, frxUSD/USDf collateral)](https://gearboxprotocol.notion.site/Adapter-setup-example-Ethereum-chain-USDC-pool-frxUSD-USDf-collateral-24c145c16224809d80d2d171e1128317?source=copy_link)
Uniswap, Sushiswap V2 ### Router configuration For the router on the chain to support swaps, Uniswap V2 worker should be configured. It requires passing the following addresses: * SwapRouter * **Add UniswapV2 adapter (requires providing router address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/01-router-configuration.png) * Uni V2 deployment addresses: * Sushi V2 deployment addresses: > Before allowing pools in adapter, please ensure that tokens from a pair are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add WETH/USDC pool both WETH and USDC must be added before.* * **Configure adapter to whitelist pools:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/02-router-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/03-router-configuration.png) * Uni V2 * Configuration requires specifying tokens from a pair ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/04-router-configuration.png) * Sushi V2 * Configuration requires specifying tokens from a pair ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/05-router-configuration.png)
Uniswap, Sushiswap, Pancakeswap, IguanaDEX, Oku trade V3 ### Router configuration For the router on the chain to support swaps, Uniswap V3 worker should be configured. It requires passing the following addresses: * SwapRouter * QuoterV2 * **Add UniswapV3 adapter (requires providing SwapRouter address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/06-router-configuration.png) * Uni V3 deployment addresses: * Sushi V3 deployment addresses: * Oku Trade deployment addresses: * PancakeSwap deployment addresses: * IguanaDEX deployment addresses: > Router deployment must have bytecode of Uniswap's [SwapRouter.sol](https://github.com/Uniswap/v3-periphery/blob/v1.0.0/contracts/SwapRouter.sol) contract. Sometimes it has only [SwapRouter02](https://github.com/Uniswap/swap-router-contracts/blob/main/contracts/SwapRouter02.sol) deployment specified.\ \ On some chains that was already solved by deploying required implementation of router (see below).\ If it's not, reach out to Gearbox contributors. * Custom SwapRouter deployments: * Uni V3 * [BNB chain](https://bscscan.com/address/0xe7aC922b9751C7aca3A46D5505F36d5BbB1456b6#code) * Oku Trade * [Etherlink](https://explorer.etherlink.com/address/0x2afB54fcaECd41BE4Ecd05d7bd2e193F2F05B99d?tab=contract) * [Plasma](https://plasmascan.to/address/0x9Ed7DFCDE80838f9FfaF4e7fFCe5CcE4737c3e3b) * [Optimism](https://explorer.optimism.io/address/0xDb7D5A2146533BAE5C08A869Cb7e085d8Bee6e0F?tab=contract) > Before allowing pools in adapter, please ensure that tokens from a pair are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add WETH/USDC pool both WETH and USDC must be added before.* * **Configure adapter to whitelist pools:**\ \&#xNAN;*Configuration requires specifying tokens and fee from a pair* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/07-router-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/08-router-configuration.png) * Uni V3 ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/09-router-configuration.png) * Sushi V3 ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/10-router-configuration.png) * [PancakeSwap](https://pancakeswap.finance/info/v3/pairs), [IguanaDEX](https://www.iguanadex.com/info/v3?chain=etherlink) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/11-router-configuration.png)
Velodrome, Aerodrome Concentrated Liquidity (Slipstream) For the router on the chain to support swaps, Uniswap V3 worker should be configured. It requires passing the following addresses: * SwapRouter * Quoter * **Add UniswapV3 adapter (requires providing SwapRouter address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/06-router-configuration.png) * Velodrome V3 (Slipstream) multichain deployment addresses: * Aerodrome V3 (Slipstream) * **Configure adapter to whitelist pools:**\ \&#xNAN;*Configuration requires specifying tokens and fee from a pair* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/07-router-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/08-router-configuration.png) * Fee is a number specified in UI divided by 10000\ e.g. Concentrated Volatile 100 ⇒ fee = 0.01%\ Concentrated Stable 1 ⇒ fee = 0.0001% ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/15-router-configuration.png)
Curve StableSwap, CryptoSwap and StableNG * **How to understand what's the type of the pool of interest:** 1. Go to the block explorer page of Curve Address provider on a chain of interest:\ 2. Call Address Provider's get\_address method with id = 7 to get address of MetaRegistry\ On Mainnet MetaRegistry is located [here](https://etherscan.io/address/0xF98B45FA17DE75FB1aD0e7aFD971b0ca00e379fC). 3. Call get\_registry\_handlers\_by\_pool of MetaRegistry, passing target pool address as argument. 4. Check non-zero address from step 3. output. It usually has clues in first lines of its code. > Before adding adapter, please ensure that tokens from a pool and pool LP token itself are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add 3Pool (USDC/USDT/DAI) adapter both USDC, USDT, DAI and 3Pool token itself must be added before.*\ \ \&#xNAN;*learn how to find pool's token address below.* * ***If the pool is not Stable NG:***\ \&#xNAN;*Select Curve V1 2/3/4 Assets adapter depending on the number of different tokens in target pool:* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/16-router-configuration.png) * ***If the pool is Stable NG:***\ \&#xNAN;*Select Curve StableNG adapter:* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/17-router-configuration.png) > If the pool operates with non-erc20 ETH balance, deploy a ETH Gateway first and then pass it as target address.\ See the list of deployed gateways below and reach out to Gearbox team if the needed is not present. * ***Adapter arguments:*** * **Target Address** * The address of the pool ![Figure](https://docs.gearbox.finance/assets/docs/shared/curve-stable-pool-input.png) * **LP token** * The address of the pool's LP token (may be different from pool itself) ![Figure](https://docs.gearbox.finance/assets/docs/shared/curve-stable-token-input.png) * **Base Pool Address** * Applicable only if pool is a metapool.\ Example: [this](https://www.curve.finance/dex/ethereum/pools/factory-v2-251/deposit/) pool has [FRAX/USDC](https://www.curve.finance/dex/ethereum/pools/fraxusdc/deposit/) as its base pool. * **Crypto Swap or PancakeSwap pool** * If Type of Pool is Crypto Swap (a.k.a Twocrypto/ Tricrypto) checkout this box. * ETH Gateway deployments: * Mainnet: * [ETH/stETH pool](https://etherscan.io/address/0xdc24316b9ae028f1497c275eb9192a3ea0f67022) Gateway: 0x0675cb2066bacae2edfd09633d5b62be3c619a35
PancakeSwap/ IguanaDEX StableSwap > Before adding adapter, please ensure that tokens from a pool and pool LP token itself are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add USDX/USDT adapter both USDX, USDT and pool's LP token itself must be added before.*\ \ \&#xNAN;*learn how to find pool's token address below.* * **Select Curve V1 2 Assets adapter:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/16-router-configuration.png) * **Target Address** * The address of the pool ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/21-router-configuration.png) * **LP token** * The address of the pool's LP token (can be retreived by calling token() method of pool contract) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/22-router-configuration.png) * **Base Pool Address** * Not applicable to PancakeSwap. Leave untouched. * **Crypto Swap or PancakeSwap pool** * Checkout this checkbox.
Pendle ### Router configuration For the router on the chain to support swaps, Pendle worker should be configured. It requires passing the following addresses: * routerStatic ### Adapter configuration * **Add Pendle adapter (requires providing router address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/23-adapter-configuration.png) * Pendle deployment addresses: > Before adding pool to adapter, please ensure that pool's input token and PT token are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add Pendle pool for PT-sUSDe, both sUSDe and PT-sUSDe must be added before.* * **Configure adapter to whitelist pools:**\ \&#xNAN;*Configuration requires specifying market address and input/output tokens* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/24-adapter-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/25-adapter-configuration.png) * ***Market:*** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/26-adapter-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/27-adapter-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/28-adapter-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/29-adapter-configuration.png) * ***Input token:***\ Select a token that is in the "1 SY Equals To" row on the screenshot above ^ * ***Pendle token:***\ Target PT token
Fluid DEX ### Router configuration For the router on the chain to support swaps, Fluid worker should be configured. It requires passing the following addresses: * fluidDexResolver > Before adding pool to adapter, please ensure that pool's tokens are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add Fluid DEX for wstUSR/USDT, both wstUSR and USDT must be added.* * **Add Fluid DEX adapter (requires providing DEX address)** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/30-router-configuration.png) > If the pool includes ETH token, ETH Gateway must be deployed first and then be passed as target address to Fluid DEX adapter. * Fluid deployment addresses: > DEX addresses have names in the similar format: **Dex\_wstUSR\_USDT.**\ Search the name based on required tokens above. * ETH Gateway deployments: * Mainnet: * **Dex\_wstETH\_ETH: 0x9f294BF3201533B652aFb6B10c0385972C28a16f** * **ezETH\_ETH: 0xa59fc0102b7c2aee66e237ee15cb56ad58a97b2e** * **rsETH\_ETH: 0xb219cE3Fa907edCb375B7375F3C50d920e244bba** * **weETH\_ETH:** 0x0A226E0efa6FCF26837441d623210A9464349200
ERC4626 ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/31-router-configuration.png) Takes ERC4626 **Vault Address** as parameter. Target vault must be added as Asset to Market and as Collateral to Credit Manager. > Before adding adapter, please ensure that token being underlying asset of a ERC4626 vault is added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add sDAI ERC4626 adapter DAI itself must be added before.* Operates using deposit, withdraw, mint and redeem functions of ERC4626 standard. Allows performing swaps from the vault’s **asset** token into ERC4626 vault **share** token. > Sometimes tokens look very much like ERC4626 but with overwritten methods, like those implementing timelocked deposits and withdrawals.\ Note that this adapter works with vanilla standard methods only.\ \ e.g. sUSDe can be minted from USDe using ERC4626 deposit interface, but has timelocked withdrawals.
Kodiak Island ### Router configuration For the router on the chain to support swaps, Kodiak Island worker should be configured. It requires passing: * \_kodiakIslandRouter - 0x679a7C63FC83b6A4D9C1F931891d705483d4791F * \_kodiakSwapRouter - 0xEd158C4b336A6FCb5B193A5570e3a571f6cbe690 * \_kodiakQuoter - 0x644C8D6E501f7C994B74F5ceA96abe65d0BA662B Takes Gateway Address as parameter. On Berachain it's 0x8d41361d340515d1cdd8c369ca7b5c79f6b2e9c9. ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/32-router-configuration.png) After adding adapter, click configure to whitelist particular Islands. > Before adding Island to adapter, please ensure that Island's tokens and Island itself are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add WBERA/iBERA Island, WBERA, iBERA and Island must be added.* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/33-router-configuration.png)
Convex-staked Curve LP > Before adding and configuring Convex pool adapters, ensure that **Curve LP token**, **Convex Deposit Token**, **Staked Phantom Token**, **CRV** and **CVX** are added as collaterals to Market and Credit Manager (everything except **Staked Phantom Token** can have zero limit, LT and feed).\ \ \ **Convex Deposit Token** can be found by its symbol. If the Curve LP token has symbol frxUSDUSDf, then Convex deposit token will have symbol cvxfrxUSDUSDf. **Staked Phantom Token** can be found by its symbol. If the Curve LP token has symbol frxUSDUSDf, then Convex deposit token will have symbol stkcvxfrxUSDUSDf. **Add Convex Base Reward Pool adapter.** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/34-router-configuration.png) * ***Base Reward Pool Address:*** * Rewards contract address from Convex pool Info. ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/35-router-configuration.png) * ***Staked phantom token:*** * **Staked Phantom Token** can be found by its symbol. If the Curve LP token has symbol frxUSDUSDf, then Convex deposit token will have symbol stkcvxfrxUSDUSDf. **Add Convex Booster adapter** > If the Credit Manager already includes the Convex Booster adapter, skip it and proceed to the next step (Update Convex booster Pool IDs). > Booster address is single across all chains and is suggested as default option. ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/36-router-configuration.png) **Update Convex booster Pool IDs** > After each new Convex pool is added, Booster pool ids should be updated. ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/37-router-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/38-router-configuration.png)
Balancer V2 ### Router configuration For the router on the chain to support swaps, Balancer V2 worker should be configured. Configuration requires passing: * BalancerQueries Balancer deployment addresses can be found [here](https://docs-v2.balancer.fi/reference/contracts/deployment-addresses/mainnet.html). ### Adapter configuration * **Add BalancerV2 adapter (requires providing Vault address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/39-adapter-configuration.png) * Deployment addresses:\ > Before adding adapter, please ensure that tokens from a pool and pool LP token itself are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add WETH/osETH pool to adapter both WETH, osETH and WETH/osETH token itself must be added before.*\ \ \&#xNAN;*learn how to find pool's token address below.* * **Finding Pool LP Token Address:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/40-adapter-configuration.png) * **Configure adapter to whitelist pools:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/41-adapter-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/42-adapter-configuration.png) * Configuration requires specifying PoolID which can be found on Balancer UI ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/43-adapter-configuration.png)
Balancer V3 ### Router configuration For the router on the chain to support swaps, Balancer V3 worker should be configured. Configuration requires passing: * [BalancerV3MultiActionQueries](https://github.com/Van0k/balancer-queries/blob/master/src/BalancerV3MultiActionQueries.sol) (needs to be deployed manually, reach out to contributors for support) Balancer deployment addresses can be found [here](https://docs.balancer.fi/developer-reference/contracts/deployment-addresses/plasma.html#core-contracts). BalancerV3MultiActionQueries deployments: * Plasma * 0x1a9B1bfD35fA3932493b5f4F20Cb16b2B88Cc0C8 * Mainnet * 0x0BA8417d19D87b7b5C9dA8762ba505d61D1bF1E7 * Optimism * 0x1b8a4BA520C7789D7bE7476960B8Cdd42e57d928 * Monad * 0x79840073664F6c7bD384C3452B2C034cDEEFEAe5 ### Adapter configuration * **Add BalancerV3 adapter (requires providing Gateway address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/44-adapter-configuration.png) * Gateway deployment addresses: * Ethereum: * v3.10 (outdated) 0x21f55223de449224e8bdf4f59452e072bdf7af57 * **v3.11** — 0x8A57c21234ddc225499843F6A073dd374c952560 * Plasma: * v3.10 (outdated) 0xd5c89297ad23e12d7f0ff24112418dbe9ebeae56 * **v3.11** — 0x55109bA88c396008cfBe9F27Ad97A7e1e4394f6F * Optimism: * **v3.11** — 0x77b2dfc344072fa242f2d03893ccbdbb0ef47b7c * Monad * **v3.11** — 0x9dA18982a33FD0c7051B19F0d7C76F2d5E7e017c > Before adding adapter, please ensure that tokens from a pool are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add* waEthLidowstETH*/rstETH pool to adapter both* waEthLidowstETH*, rstETH and* waEthLidowstETH*/rstETH token itself must be added before.*\ \ \&#xNAN;*learn how to find pool's token address below.* > What are *wa*-tokens?\ It's erc4626 vaults representing positions staked in Aave pools.\ To support swaps from wstETH through waEthLidowstETH*/rstETH* boosted Balancer pool, you need to include wa-token as collateral and add erc4626 adapter with wa-token address as vault which will process swaps from wstETH to waEthLidowstETH. * **Finding Pool LP Token Address:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/45-adapter-configuration.png) * **Configure adapter to whitelist pools:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/41-adapter-configuration.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/47-adapter-configuration.png) * Configuration requires specifying Pool Address which can be found on Balancer UI ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/45-adapter-configuration.png)
Mellow ERC4626 ### Router configuration For the router on the chain to support swaps, Mellow worker should be configured. Reach out to contributors for support. > Before adding adapter, please ensure that mellow vault (LRT itself) and its Withdrawal Phantom Token are added ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ If the phantom token is not present in PFS, ask Gearbox contributors to help you deploy a new one. #### **Add Mellow ERC4626 adapter:** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/49-add-mellow-erc4626-adapter.png) * Vault address * Select a corresponding Mellow vault (LRT itself) that was previously added as collateral. * Phantom Token * A token that tracks user's position in withdrawal queue and allows unstaking LRT right from the Credit Account. #### **Add Mellow claimer adapter:** This adapter allows claiming unstaked tokens after the redemption request was processed. ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/50-add-mellow-claimer-adapter.png) Mellow Claimer is a contract deployed by Mellow. Deployment addresses can be found here: **Configure Mellow Claimer Adapter** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/51-add-mellow-claimer-adapter.png) ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/52-add-mellow-claimer-adapter.png) * Multi vault * Mellow LRT itself * Phantom token * A token that tracks user's position in withdrawal queue and allows unstaking LRT right from the Credit Account.
Midas (direct deposits & redemptions) Midas risks: \- If Midas rejects a withdrawal request, a credit account that has the request rejected will have its phantom token balance locked and non-claimable. This means that de-facto the account has bad debt (that cannot be liquidated) until the situation is resolved manually \- A gateway has a function to manually process a cancelled request by paying an amount of at least pendingTokenOutAmount for the respective credit account (the function can be called by anyone). This will allow the credit account to claim a withdrawal as if it was normally processed \- It's best to forbid the withdrawal phantom token if there is a rejected request to Gearbox CA, since Midas might accidentally refund the withdrawal to the CA itself, leading to double counting. Forbidding the token will prevent the user to borrow and withdraw more against their collateral in this case. > For safety, each curator on each chain must have its own gateway and phantom token for each vault. Gateway addresses: * Plasma * Hyperithm Curator: 0xB375DF6a1D7a1c172e65D4FBDA2d3caa144Bf8e7 Phantom token addresses: * Plasma * Hyperithm Curator: 0x0835e60e9A56734cEE76e3953c3BE0635Fcb71d5
Velodrome, Aerodrome V1 & V2 (Basic volatile and Basic stable) For the router on the chain to support swaps, Velodrome worker should be configured. It requires passing the following addresses: * Router * **Add Velodrome V2 adapter (requires providing Router address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/53-add-mellow-claimer-adapter.png) * Velodrome v2 optimism deployment addresses: * **Configure adapter to whitelist pools:**\ \&#xNAN;*Configuration requires specifying tokens and fee from a pair*\ \&#xNAN;*Look for Pool Factory in deployment addresses* ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/54-add-mellow-claimer-adapter.png) * Is Stable?\ Basic stable ⇒ Stable\ Basic volatile ⇒ not Stable
Uniswap V4 ### Router configuration For the router on the chain to support swaps, Uniswap V3 worker should be configured. It requires passing the following addresses: * [Universal Router](https://github.com/Uniswap/universal-router/blob/dev/contracts/UniversalRouter.sol) * [Quoter](https://github.com/Uniswap/v4-periphery/blob/main/src/lens/V4Quoter.sol) * **Add UniswapV4 adapter (requires providing Gateway address):** ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/55-router-configuration.png) * Uni V4 deployment addresses: * Gateway deployment addresses: * Monad: 0xCC7944C237DC540585935F19Bc9aeA0003BC4224 * Ethereum: 0x3b74c70283b291e875da84d58176a63dac5d1824 > Before allowing pools in adapter, please ensure that tokens from a pair are added as ***Assets to Market*** and as ***Collaterals to Credit Manager***.\ \ \&#xNAN;*e.g. to add WETH/USDC pool both WETH and USDC must be added before.* > To fetch fee, tick spacing and hook list, go to **Position Manager** contract and call ***poolKeys*** method passing first 52 symbols of pool identifier from Uniswap UI as PoolID.\ \ E.g. if uniswap link has 0x9b25899648292dce5f8805823aebd0d025bf2625be3162a2f1199e13d8d300c8, then 0x9b25899648292dce5f8805823aebd0d025bf2625be3162a2f1 should be passed as poolID to Position Manager. \ \ Position Manager addresses on different chains can be found [here](https://docs.uniswap.org/contracts/v4/deployments). ![Figure](https://docs.gearbox.finance/assets/docs/curators/configure-adapters/56-router-configuration.png) * **Configure adapter to whitelist** \ \&#xNAN;*Configuration requires specifying tokens and fee from a pair*
## Configure fee split Source: https://docs.gearbox.finance/curators/configure-fee-split File: content/curators/configure-fee-split.mdx []()