# Table of Contents - [Introduction | Arcadia Finance](#introduction-arcadia-finance) - [Overview | Arcadia Finance](#overview-arcadia-finance) - [Concepts | Arcadia Finance](#concepts-arcadia-finance) - [Arcadia Farms | Arcadia Finance](#arcadia-farms-arcadia-finance) - [Automated Market Maker (AMM) | Arcadia Finance](#automated-market-maker-amm-arcadia-finance) - [Arcadia DeFi Accounts | Arcadia Finance](#arcadia-defi-accounts-arcadia-finance) - [Arcadia Rewards | Arcadia Finance](#arcadia-rewards-arcadia-finance) - [Arcadia Lending Pools | Arcadia Finance](#arcadia-lending-pools-arcadia-finance) - [Collateralized Loans | Arcadia Finance](#collateralized-loans-arcadia-finance) - [Users | Arcadia Finance](#users-arcadia-finance) - [Protocols | Arcadia Finance](#protocols-arcadia-finance) - [Bearish Crypto | Arcadia Finance](#bearish-crypto-arcadia-finance) - [Bullish Crypto | Arcadia Finance](#bullish-crypto-arcadia-finance) - [Lenders | Arcadia Finance](#lenders-arcadia-finance) - [Tutorials | Arcadia Finance](#tutorials-arcadia-finance) - [Delta Neutral ETH | Arcadia Finance](#delta-neutral-eth-arcadia-finance) - [Farmers | Arcadia Finance](#farmers-arcadia-finance) - [Benefits | Arcadia Finance](#benefits-arcadia-finance) - [First Strategy | Arcadia Finance](#first-strategy-arcadia-finance) - [Delta Neutral USD | Arcadia Finance](#delta-neutral-usd-arcadia-finance) - [Foundry | Arcadia Finance](#foundry-arcadia-finance) - [Protocol Owned Liquidity | Arcadia Finance](#protocol-owned-liquidity-arcadia-finance) - [Strategists | Arcadia Finance](#strategists-arcadia-finance) - [Accounts | Arcadia Finance](#accounts-arcadia-finance) - [Governance | Arcadia Finance](#governance-arcadia-finance) - [Advanced Strategies | Arcadia Finance](#advanced-strategies-arcadia-finance) - [Arcadia DAO | Arcadia Finance](#arcadia-dao-arcadia-finance) - [Dashboard | Arcadia Finance](#dashboard-arcadia-finance) - [Token Mechanics | Arcadia Finance](#token-mechanics-arcadia-finance) - [Treasury Management | Arcadia Finance](#treasury-management-arcadia-finance) - [Contract Addresses | Arcadia Finance](#contract-addresses-arcadia-finance) - [Fee Rebates | Arcadia Finance](#fee-rebates-arcadia-finance) - [Flash Actions | Arcadia Finance](#flash-actions-arcadia-finance) - [Protocol | Arcadia Finance](#protocol-arcadia-finance) - [Position Wizard | Arcadia Finance](#position-wizard-arcadia-finance) - [Developers | Arcadia Finance](#developers-arcadia-finance) - [Circuit Breakers | Arcadia Finance](#circuit-breakers-arcadia-finance) - [Security & Risk | Arcadia Finance](#security-risk-arcadia-finance) - [Roles | Arcadia Finance](#roles-arcadia-finance) - [Insurance/Cover | Arcadia Finance](#insurance-cover-arcadia-finance) - [Risk Management | Arcadia Finance](#risk-management-arcadia-finance) - [Audits | Arcadia Finance](#audits-arcadia-finance) - [Arcadia Creditors | Arcadia Finance](#arcadia-creditors-arcadia-finance) - [Deep Dives | Arcadia Finance](#deep-dives-arcadia-finance) - [Compounders | Arcadia Finance](#compounders-arcadia-finance) - [Contact and Support | Arcadia Finance](#contact-and-support-arcadia-finance) - [Arcadia DeFi Accounts | Arcadia Finance](#arcadia-defi-accounts-arcadia-finance) - [Integrations | Arcadia Finance](#integrations-arcadia-finance) - [Resources | Arcadia Finance](#resources-arcadia-finance) - [Merkl Operators | Arcadia Finance](#merkl-operators-arcadia-finance) - [Yield Claimers | Arcadia Finance](#yield-claimers-arcadia-finance) - [Asset Pricing | Arcadia Finance](#asset-pricing-arcadia-finance) - [Arcadia and Uniswap v4 | Arcadia Finance](#arcadia-and-uniswap-v4-arcadia-finance) - [Liquidations | Arcadia Finance](#liquidations-arcadia-finance) - [Asset Managers | Arcadia Finance](#asset-managers-arcadia-finance) - [Fees | Arcadia Finance](#fees-arcadia-finance) - [Composable Pricing Logic | Arcadia Finance](#composable-pricing-logic-arcadia-finance) - [Margin Calculations | Arcadia Finance](#margin-calculations-arcadia-finance) - [Brand Assets | Arcadia Finance](#brand-assets-arcadia-finance) - [Liquidators | Arcadia Finance](#liquidators-arcadia-finance) - [Creditors | Arcadia Finance](#creditors-arcadia-finance) - [Creditors | Arcadia Finance](#creditors-arcadia-finance) - [Asset Managers | Arcadia Finance](#asset-managers-arcadia-finance) - [CoW Swapper | Arcadia Finance](#cow-swapper-arcadia-finance) - [CoW Swapper: Deep Dive | Arcadia Finance](#cow-swapper-deep-dive-arcadia-finance) - [Asset Managers | Arcadia Finance](#asset-managers-arcadia-finance) - [MCP Server | Arcadia Finance](#mcp-server-arcadia-finance) - [Rebalancers | Arcadia Finance](#rebalancers-arcadia-finance) - [Managing positions | Arcadia Finance](#managing-positions-arcadia-finance) - [Compounders: Deep Dive | Arcadia Finance](#compounders-deep-dive-arcadia-finance) - [For AI Agents | Arcadia Finance](#for-ai-agents-arcadia-finance) - [Delta Neutral Strategies | Arcadia Finance](#delta-neutral-strategies-arcadia-finance) - [Core protocol | Arcadia Finance](#core-protocol-arcadia-finance) - [Liquidity Provision | Arcadia Finance](#liquidity-provision-arcadia-finance) - [Rebalancers: Deep Dive | Arcadia Finance](#rebalancers-deep-dive-arcadia-finance) - [Unknown](#unknown) - [Unknown](#unknown) --- # Introduction | Arcadia Finance ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-1925d720b6a09369bdfc23a3472abcc4273d5f88%252FArcadia%2520General%2520Green.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=a843371c&sv=2) ### [hashtag](https://docs.arcadia.finance/#welcome-to-arcadia-finance) Welcome to Arcadia Finance [Join us on Discordarrow-up-right](https://discord.com/invite/PXcr8SEeTH) to ask questions and discuss strategies [Follow us on Xarrow-up-right](https://x.com/ArcadiaFi) to stay up to date with the latest developments. [NextOverviewchevron-right](https://docs.arcadia.finance/introduction/overview) Last updated 21 days ago --- # Overview | Arcadia Finance [hashtag](https://docs.arcadia.finance/introduction/overview#what-is-arcadia) What is Arcadia? --------------------------------------------------------------------------------------------------- **Arcadia Finance** allows everyone, both professional market makers as everyday users, to earn yield, leveraging [Automated Market Maker (AMM)](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) liquidity positions. It supports both virtual and concentrated liquidity positions and is integrated with major Decentralized Exchanges (DEXs) such as Uniswap and Aerodrome. The protocol is deployed on **Base**, **Optimism**, and **Unichain**. Arcadia Finance is the first user-facing application built on top of The Arcadia Protocol, designed to showcase its power. **The Arcadia Protocol** is the next-generation DeFi asset management protocol that powers Arcadia Finance. Through user-owned DeFi Accounts, it provides: * Simple one-click transactions to enter sophisticated high-yield strategies, normally reserved for professionals. * Automation of asset and risk management without giving up on self custody. * Built-in margin. * An interface for third parties and AI agents to manage assets within onchain enforceable boundaries. For deeper technical details, see the [protocol whitepaperarrow-up-right](https://github.com/arcadia-finance/whitepapers/blob/main/main.pdf) . ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-011c4c79589fdd88a0b1ede64c4eb9ee9f294c64%252Farcadia-protocol.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=b4948e97&sv=2) Arcadia Protocol **Pragma Labs** is the research company that develops The Arcadia Protocol and the underlying off-chain infrastructure. **Arcadia Protocol LLC** develops, commercializes and hosts user-facing applications built on top of The Arcadia Protocol. [PreviousIntroductionchevron-left](https://docs.arcadia.finance/) [NextConceptschevron-right](https://docs.arcadia.finance/introduction/concepts) Last updated 21 days ago --- # Concepts | Arcadia Finance This page explains some commonly used concepts and terminology in a non-technical way. [PreviousOverviewchevron-left](https://docs.arcadia.finance/introduction/overview) [NextArcadia DeFi Accountschevron-right](https://docs.arcadia.finance/introduction/concepts/arcadia-defi-accounts) Last updated 21 days ago --- # Arcadia Farms | Arcadia Finance Arcadia streamlines liquidity provision on multiple leading DEXs through an intuitive interface that combines essential pool data with flexible position management. Depending on the users' strategy and risk appetite, they can use margin or spot Accounts to provide liquidity. With **margin Accounts** users can only provide liquidity to pools where the underlying assets are accepted as collateral by Arcadia’s lending pools. At the time of writing, more than 100 pools are available for margin liquidity provision. With **spot Accounts**, on the other hand, users can create LP positions for any token, including speculative meme coins or community tokens. Since no leverage is taken, the underlying assets do not need to be allowed as collateral. Users maintain complete control over their LP positions, just as they would when interacting directly with DEXs. This includes the ability to adjust position ranges, open or close positions, and modify leverage ratios for margin positions. Next to being a helpful platform for beginning liquidity providers, it is suited for experienced liquidity providers who understand DEX mechanics and want to maintain granular control while benefiting from streamlined position management across multiple platforms. [PreviousArcadia Lending Poolschevron-left](https://docs.arcadia.finance/introduction/concepts/lending-pools) [NextArcadia Rewardschevron-right](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards) Last updated 21 days ago --- # Automated Market Maker (AMM) | Arcadia Finance Automated Market Makers (**AMMs**) are smart contracts that enable decentralized trading without an order book. Instead of matching buyers and sellers, AMMs use liquidity pools—funded by liquidity providers (LPs)—to facilitate trades Traditional **virtual Automated Market Makers (vAMMs)** distribute liquidity across all possible prices, ensuring continuous trading but leading to **capital inefficiency**. Most liquidity remains unused, especially for stable or correlated asset pairs. **Concentrated Liquidity Automated Market Makers (clAMM)** solve this by allowing liquidity providers (LPs) to allocate funds within a specific price range. This makes capital more efficient and increases fee earnings, but it comes with trade-offs. * **No Yield When Out of Range** If the market price moves outside an LP’s selected range, their liquidity is no longer active, meaning **no fees are earned** until the price moves back or the position is adjusted. * **Impermanent Loss (IL)** IL occurs when the relative price of assets in the pool changes, causing LPs to end up with more of the weaker-performing asset. In CL pools, **IL is amplified** when using narrow ranges, as price movements can quickly push positions out of range, forcing LPs to either take a loss or adjust their range at additional cost. While CL pools offer higher efficiency, they require **active management** to stay profitable. LPs must balance range size, rebalancing frequency, and market volatility to minimize risks. **This is where Arcadia comes in.** [PreviousArcadia Rewardschevron-left](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards) [NextCollateralized Loanschevron-right](https://docs.arcadia.finance/introduction/concepts/collateralized-loans) Last updated 21 days ago --- # Arcadia DeFi Accounts | Arcadia Finance Arcadia DeFi Accounts are user-owned smart contracts that function like self-custodial wallets, but with added efficiency and automations. They allow users to batch multiple transactions and automate portfolio management, making complex DeFi interactions seamless. Actions that would normally require multiple steps—like rebalancing liquidity positions, unwinding assets, or managing leverage—can be executed in a single transaction with an Arcadia DeFi Account. There are 2 types of Arcadia Accounts: 1. **Spot Accounts** * Create LP positions with any assets. * No borrowing or leverage—just an optimal way to manage liquidity. 2. **Margin Accounts** * Support leverage by borrowing against collateral. * LP positions can only be created using allowlisted assets. * Assets inside the account contribute to its overall health, enabling greater flexibility in liquidity management. * Deposited and borrowed assets count as collateral. Both account types benefit from **Arcadia’s automation tools** like the **auto-rebalancer** and **auto-compounder**, and one-click zaps, helping users optimize their liquidity positions effortlessly. For a technical explanation what Arcadia accounts are and how they work, see [here](https://docs.arcadia.finance/protocol/arcadia-defi-accounts) . [PreviousConceptschevron-left](https://docs.arcadia.finance/introduction/concepts) [NextArcadia Lending Poolschevron-right](https://docs.arcadia.finance/introduction/concepts/lending-pools) Last updated 21 days ago --- # Arcadia Rewards | Arcadia Finance Arcadia's reward system focuses on incentives that drive participation and usage [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#lenders) Lenders -------------------------------------------------------------------------------------------------- The protocol tracks all lending rewards through ERC4626 yield-bearing tokens that represent your share of the lending pool. These tokens continuously accrue value: * Rewards accumulate automatically in real-time * Rewards are auto-compounding on your lending position #### [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#interests) Interests When users borrow assets from [Arcadia's lending pools](https://docs.arcadia.finance/introduction/concepts/lending-pools) , they pay interest based on utilization. Unlike many protocols that take a fee, Arcadia passes all of these rewards to lenders: * 100% of borrower interest payments flow to lenders * No hidden Arcadia fees, what you deposit is what you can minimally withdraw The protocol uses a dynamic interest rate model that responds to market demand. Interest rates automatically adjust based on pool utilization to maintain optimal liquidity levels. This curve ensures that lenders earn more as demand increases, while borrowers maintain access to reasonably priced loans during normal market conditions. #### [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#liquidation-rewards) Liquidation Rewards When Borrowers get [liquidated](https://docs.arcadia.finance/protocol/liquidations) , up to 50% of liquidation penalties get distributed to Lenders #### [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#aaa-emissions) AAA Emissions Besides all the rewards mentioned earlier Arcadia might decide to incentivise their USDC, wETH or cbBTC pools with additional AAA emissions. #### [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#extra-rewards) Extra Rewards Beyond base protocol rewards, Arcadia works with partners to provide additional earning opportunities: * Extra incentives from partner protocols. * Special rewards during ecosystem promotions (like Superchain rewards). [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#accounts) Accounts ---------------------------------------------------------------------------------------------------- #### [hashtag](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#liquidity-provision) Liquidity Provision When providing liquidity on DEXs, accounts earn multiple reward streams: * Trading fees from standard liquidity positions. * AERO tokens when using staked Slipstream positions. For example: * A margin account user might provide ETH-USDC liquidity on Aerodrome Staked Slipstream with borrowed funds, earning AERO instead of trading fees plus MERKL incentives * A spot account user could do the same strategy without leverage, accessing more exotic pairs that aren't available as collateral. For example, liquidity positions using popular AI, meme and community tokens like VIRTUAL, AIXBT, TOSHI can be created Both account types can optimize their positions and claim rewards through the same mechanisms, with rewards automatically collecting during position adjustments or rebalancing. [PreviousArcadia Farmschevron-left](https://docs.arcadia.finance/introduction/concepts/farms) [NextAutomated Market Maker (AMM)chevron-right](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) Last updated 21 days ago * [Lenders](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#lenders) * [Accounts](https://docs.arcadia.finance/introduction/concepts/arcadia-rewards#accounts) --- # Arcadia Lending Pools | Arcadia Finance Arcadia Lending offers isolated lending pools where [Lenders](https://docs.arcadia.finance/users/lenders) supply assets to earn passive yield. [Strategists](https://docs.arcadia.finance/users/strategists) and [Farmers](https://docs.arcadia.finance/users/farmers) can borrow funds from the lending pools, using their [Arcadia Accounts](https://docs.arcadia.finance/introduction/concepts/arcadia-defi-accounts) as collateral, and pay interests to the Lenders. Deposits in Arcadia’s lending pools can be [covered](https://docs.arcadia.finance/security-and-risk/insurance) , protecting deposits against smart contract exploits. Currently, Arcadia supports **USDC, wETH, and cbBTC lending pools**, each operating independently. These pools follow the ERC-4626 vault standard, making them compatible with platforms like **Superform** and **Vaults.fyi**. #### [hashtag](https://docs.arcadia.finance/introduction/concepts/lending-pools#how-it-works) **How It Works** * **Lenders** deposit assets and receive **yield-bearing tokens** that automatically accrue yield. * **Borrowers** use Arcadia Accounts to create leveraged liquidity positions on various DEXs. * **Interest rates** adjust based on pool utilization—higher borrowing demand means higher returns for lenders. * **Liquidations** ensure unhealthy positions are closed before bad debt occurs, with lenders earning a share of penalties paid by the liquidated Accounts. For information related to fees, see [Fees](https://docs.arcadia.finance/protocol/fees) . [PreviousArcadia DeFi Accountschevron-left](https://docs.arcadia.finance/introduction/concepts/arcadia-defi-accounts) [NextArcadia Farmschevron-right](https://docs.arcadia.finance/introduction/concepts/farms) Last updated 21 days ago --- # Collateralized Loans | Arcadia Finance Arcadia reimagines collateralized lending through an innovative Account-based system. Unlike traditional platforms that treat each asset separately, Arcadia considers your entire portfolio as one, enabling more flexible collateral management and efficient capital use. Note that this is only relevant for margin accounts and not for spot accounts. [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#key-features) Key Features ----------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#borrowing) Borrowing Borrowing enables advanced strategies by allowing you to use borrowed funds within the same transaction. The system checks your position's health only at the end, enabling complex DeFi operations while maintaining security. If your final position is unhealthy, the transaction reverts automatically. For example, if you want to open up a 5x leveraged wETH-cbBTC position with USDC as debt, you can in a single transaction: * Provide just a single asset. This does not even have to be wETH or cbBTC, but can be any asset. * Immediately borrow the required amount of USDC, through a native flashloan-like mechanism. No looping required to reach the maximum leverage. * Use the borrowed funds, together with the deposited asset(s), to swap into the required amounts of wETH and cbBTC. * Use the wETH and cbBTC to create a leveraged LP position. ### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#multi-asset-collateral) Multi-Asset Collateral Arcadia breaks traditional barriers by supporting a wide range of digital assets as collateral. The protocol works with standard tokens (ERC20), LP Positions (ERC721) and more. In theory, any available asset type can be integrated within Arcadia, without the need for a protocol-wide upgrade. ### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#collateral-management) Collateral Management Your Arcadia Account acts as a smart portfolio, valuing assets collectively rather than individually. This means you can adjust your collateral composition freely while maintaining a leveraged position. In practice, this means you can switch pools in which liquidity is provided, change ranges of your positions and adjust leverage ratios, all through a single transaction. ### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#risk-parameters) Risk Parameters The protocol uses four key factors to manage risk effectively. Each factor is [creditor](https://docs.arcadia.finance/protocol/arcadia-creditors) specific, meaning the different Lending Pools have different risk parameters. #### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#asset-based) Asset based **Collateral Factors** determine how much you can borrow against each asset. For example: * A USDC collateral factor of 0.90 means you can borrow up to 90% of your USDC value. This corresponds to 10x leverage. * A wETH collateral factor of 0.80 allows borrowing up to 80% of your wETH value. This corresponds to 5x leverage. **Liquidation Factors** set safety thresholds for your position. For example: * A USDC liquidation factor of 0.95. * A wETH liquidation factor of 0.90. An Account with 850 USDC debt, with a total value equal to 1000 USDC and where the Account assets are fully composed of wETH, will be liquidated when: * The Account value remains equal, but the open debt increases from 850 USDC to 900 USDC (1000/0.9), and/or * The open debt remains equal, but the total account value decreases to 944.44 USDC (850/0.9) Your total borrowing capacity is calculated using a weighted average of these factors based on your portfolio composition. All values in a Margin Account are valued in the asset you have borrowed. For example, if the ETH price is 3500 USD and USDC is worth 1 USD, the protocol values an Account holding 1 ETH at 3500 USDC. **Exposure caps** set a maximum amount of the asset to which the creditor can be exposed. For example: * The USDC Lending Pool has an exposure cap of 5,000 wETH. This means that the Lending Pool can only be exposed to up to 5,000 wETH of collateral, whether as a plain ERC20 asset or as composed in a DEX LP position. #### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#asset-module-based) Asset module based Each Asset Module, for example the Uniswap V3 asset module, the Aerodrome Slipstream asset module, ... has a specific exposure cap. This exposure cap ensures that a specific creditor has no more exposure to the underlying protocol than the cap. This is expressed in USD. For example, the Uniswap V3 asset module may have an exposure cap of 10m USD. Even though from the example of above, it could support one big LP position of 5,000 wETH and 20M USDC, the exposure cap on the Asset Module would not allow Uniswap V3 positions totalling worth more than $10m as collateral. The combination of asset-specific caps and asset module-specific caps allows the creditors for great flexibility in assessing and protecting themselves from risks. ### [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#position-management) Position Management Managing your position is straightforward yet powerful. Arcadia provides: * Real-time monitoring of your position's health, including Telegram notifications * Flexible collateral adjustment capabilities * Flash actions for efficient position modifications, including changing underlying LP pool, changing ranges, ... * Auto-compounder * Auto-rebalancer [hashtag](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#risks) Risks --------------------------------------------------------------------------------------------------- Borrowing assets is inherently risky. Users should be aware of the following risks: * **Liquidation risk**: If the value of your collateral drops below the required threshold, your position will be [liquidated](https://docs.arcadia.finance/protocol/liquidations) . Volatile market conditions can trigger liquidations rapidly. * **Smart contract risk**: Despite extensive [audits](https://docs.arcadia.finance/security-and-risk/audits) , no smart contract system is fully immune to bugs or exploits. * **Oracle risk**: Asset pricing relies on on-chain oracles. Oracle failures or manipulations could cause incorrect valuations and unexpected liquidations. * **Impermanent loss**: Liquidity positions used as collateral are subject to impermanent loss, which reduces collateral value independently of the market direction. * **Interest rate risk**: Borrowing rates adjust dynamically based on pool utilization and can increase significantly during periods of high demand. For more details on protocol security measures, see [Security & Risk](https://docs.arcadia.finance/security-and-risk) . [PreviousAutomated Market Maker (AMM)chevron-left](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) [NextUserschevron-right](https://docs.arcadia.finance/users) Last updated 21 days ago * [Key Features](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#key-features) * [Borrowing](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#borrowing) * [Multi-Asset Collateral](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#multi-asset-collateral) * [Collateral Management](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#collateral-management) * [Risk Parameters](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#risk-parameters) * [Position Management](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#position-management) * [Risks](https://docs.arcadia.finance/introduction/concepts/collateralized-loans#risks) --- # Users | Arcadia Finance Different types of users can earn yield through the Arcadia Protocol. There are four different user groups. The following image illustrates how each of them interacts with the Arcadia Protocol. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-dff6534c73d2b5d1c06c69dd3f8eb4b238325c2a%252Fusers.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=7e5d255e&sv=2) Users [hashtag](https://docs.arcadia.finance/users#id-1.-lenders) 1\. Lenders ---------------------------------------------------------------------------- [Lenders](https://docs.arcadia.finance/users/lenders) are the least sophisticated users. They have no direct exposure to liquidity positions and only indirect exposure to market- or liquidation risks. They only need to choose which assets they want to lend, and how much they want to lend. [hashtag](https://docs.arcadia.finance/users#id-2.-strategists) 2\. Strategists ------------------------------------------------------------------------------------ [Strategists](https://docs.arcadia.finance/users/strategists) are a more sophisticated type of user. They need to understand the risks involved with using AMM liquidity positions. Choosing and managing a yield strategy does not require any technical knowledge or experience. Strategists only need to select one of the four curated yield strategies. The dApp will use data to optimize which pools, ranges, rebalancing frequencies... are used within the curated strategies. [hashtag](https://docs.arcadia.finance/users#id-3.-farmers) 3\. Farmers ---------------------------------------------------------------------------- [Farmers](https://docs.arcadia.finance/users/farmers) are the most sophisticated type of user. Farmers get the full flexibility and tooling to build and manage their yield portfolio's. Farmers can select and combine liquidity positions of any available Pool, choose custom ranges, use leverage, customize automations and much more. [hashtag](https://docs.arcadia.finance/users#id-4.-protocols) 4\. Protocols -------------------------------------------------------------------------------- [Protocols](https://docs.arcadia.finance/users/protocols) providing liquidity in DEXs have very different objectives than typical yield farmers. Where a yield farmer wants to maximize returns, protocols wants to ensure sufficient liquidity, limiting slippage for buyers/sellers, while preserving principle capital. Arcadia Pro is a bespoke suite for PoL management. Under the hood it uses the same (onchain) infrastructure as the main dapp, but optimises for the specific objectives and needs to manage PoL. [PreviousCollateralized Loanschevron-left](https://docs.arcadia.finance/introduction/concepts/collateralized-loans) [NextLenderschevron-right](https://docs.arcadia.finance/users/lenders) Last updated 21 days ago * [1\. Lenders](https://docs.arcadia.finance/users#id-1.-lenders) * [2\. Strategists](https://docs.arcadia.finance/users#id-2.-strategists) * [3\. Farmers](https://docs.arcadia.finance/users#id-3.-farmers) * [4\. Protocols](https://docs.arcadia.finance/users#id-4.-protocols) --- # Protocols | Arcadia Finance Protocols use [Arcadia Foundry](https://docs.arcadia.finance/foundry-intro) to manage onchain liquidity. Foundry serves two use cases: * [**Protocol Owned Liquidity**](https://docs.arcadia.finance/foundry-intro/foundry-pol) **:** Manage liquidity for your native token — rebalancing, bootstrapping, buybacks, and custom distribution strategies. * [**Treasury Liquidity Management**](https://docs.arcadia.finance/foundry-intro/foundry-treasury) **:** Deploy treasury assets (USDC, WETH, wstETH, etc.) as liquidity in established pairs for yield. Both are non-custodial, DAO/multi-sig compatible, and fully automated. See [Foundry Benefits](https://docs.arcadia.finance/foundry-intro/foundry-benefits) for details. [hashtag](https://docs.arcadia.finance/users/protocols#what-are-the-risks) What are the risks -------------------------------------------------------------------------------------------------- Protocol liquidity positions are exposed to: * Smart contract risks * Market risks * Impermanent loss And depending if they use margin or not: * Interest rate risk (interest rate can exceed yields) * Liquidation risk [PreviousFarmerschevron-left](https://docs.arcadia.finance/users/farmers) [NextTutorialschevron-right](https://docs.arcadia.finance/tutorials) Last updated 8 days ago --- # Bearish Crypto | Arcadia Finance **Strategy description:** Maximizes stablecoin accumulation in a bearish market environment by utilizing borrowed wETH to acquire stablecoin-based yield bearing assets. This strategy benefits from downward crypto market movements while generating additional yield. **Yield source:** Generates yield from stablecoin-based yield-bearing assets such as concentrated liquidity positions. **Strategic use cases:** You want to increase your stablecoin holdings during bear market conditions while simultaneously earning yield on your position, and are comfortable with leveraged DeFi strategies. [PreviousBullish Cryptochevron-left](https://docs.arcadia.finance/users/strategists/bullish-crypto) [NextFarmerschevron-right](https://docs.arcadia.finance/users/farmers) Last updated 21 days ago --- # Bullish Crypto | Arcadia Finance **Strategy description:** Maximizes crypto asset accumulation in a bullish market environment by utilizing borrowed USDC to acquire crypto-based yield-bearing assets. This strategy benefits from upward crypto market movements while generating additional yield. **Yield source:** Generates yield from crypto-based stable yield-bearing assets such as concentrated liquidity positions. **Strategic use cases:** You want to increase your crypto holdings during bull market conditions while simultaneously earning yield on your position, and are comfortable with leveraged DeFi strategies. [PreviousDelta Neutral ETHchevron-left](https://docs.arcadia.finance/users/strategists/delta-neutral-eth) [NextBearish Cryptochevron-right](https://docs.arcadia.finance/users/strategists/bearish-crypto) Last updated 21 days ago --- # Lenders | Arcadia Finance Lenders provide capital and earn passive APY. [hashtag](https://docs.arcadia.finance/users/lenders#how-does-it-work) How does it work? --------------------------------------------------------------------------------------------- Lenders deposit a single asset in one of the Arcadia Lending Pools, which can be borrowed by Strategists and Farmers to build leveraged positions. There are currently three available Lending Pools, with more to come in the future. Current pools are: * USDC Lending Pool * WETH Lending Pool * cbBTC Lending Pool There are no lock-up periods or withdrawal fees for Lenders _unless there is an ongoing auction_. There’s no impermanent loss either. For a detailed guide how to deposit in a Lending Pool, see [Here](https://docs.arcadia.finance/tutorials/liquidity-provision) . [hashtag](https://docs.arcadia.finance/users/lenders#where-does-the-yield-come-from) Where does the yield come from? ------------------------------------------------------------------------------------------------------------------------- All yield is ultimately coming from the Strategists and Farmers who borrow funds in their [AMM](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) strategies to boost their returns. As such, Lenders can indirectly benefit from the yield earned by providing liquidity on AMMs, without having to manage the AMM liquidity positions themselves. There are two mechanisms by which Strategists and Farmers pay lenders: interest payments and liquidation penalties: #### [hashtag](https://docs.arcadia.finance/users/lenders#interest-payments) Interest Payments When Strategists and Farmers borrow assets from the lending pools, they pay interests to the Lenders. The interest rate paid is dictated by the utilization of the pool. When there is high demand to borrow, the interest rate paid to Lenders is high. Conversely, when there is low demand to borrow, the interest rate paid to Lenders is low. Most protocols take a cut on the interest rate while passing it on to the Lenders. Arcadia doesn't! ALL of the interests are currently passed on to Lenders. #### [hashtag](https://docs.arcadia.finance/users/lenders#liquidation-penalties) Liquidation Penalties When an Account is liquidated by third-party liquidators, a percentage of the liquidation penalty fee also goes to Lenders —up to 2.4% of the open debt. Here as well, Arcadia takes no fee and passes all the rewards straight to Lenders. [hashtag](https://docs.arcadia.finance/users/lenders#what-are-the-risks) What are the risks ------------------------------------------------------------------------------------------------ Since Lenders do not manage the AMM liquidity positions themselves, they do not have direct market or impermanent loss risks. The risks they are exposed to: * Smart contract risks, for which they can take insurance. * Bad debt. If liquidations of unhealthy Accounts fail or the proceeds of the auctions are not sufficient to cover the open debt, a default event is automatically triggered. All Lenders will lose part of their funds pro rata to their fraction of the lending pool's total assets to recover the bad debt. [PreviousUserschevron-left](https://docs.arcadia.finance/users) [NextStrategistschevron-right](https://docs.arcadia.finance/users/strategists) Last updated 21 days ago * [How does it work?](https://docs.arcadia.finance/users/lenders#how-does-it-work) * [Where does the yield come from?](https://docs.arcadia.finance/users/lenders#where-does-the-yield-come-from) * [What are the risks](https://docs.arcadia.finance/users/lenders#what-are-the-risks) --- # Tutorials | Arcadia Finance [Liquidity Provisionchevron-right](https://docs.arcadia.finance/tutorials/liquidity-provision) [Accountschevron-right](https://docs.arcadia.finance/tutorials/account-overview) [First Strategychevron-right](https://docs.arcadia.finance/tutorials/first-strategy) [Managing positionschevron-right](https://docs.arcadia.finance/tutorials/managing-positions) [Advanced Strategieschevron-right](https://docs.arcadia.finance/tutorials/farm) [PreviousProtocolschevron-left](https://docs.arcadia.finance/users/protocols) [NextLiquidity Provisionchevron-right](https://docs.arcadia.finance/tutorials/liquidity-provision) Last updated 21 days ago --- # Delta Neutral ETH | Arcadia Finance **Strategy description:** Generates yield from both ETH and USD yield-bearing assets while maintaining market neutrality through balanced exposure. This strategy utilizes borrowed USDC to acquire both ETH and USD yield-bearing assets, requiring periodic rebalancing to maintain its delta-neutral position. The USDC used in the LP position is borrowed (shorted) and thus the strategist remains neutral in their USDC exposure. By utilizing very wide ranges, the LP composition is minimally affected by limited market changes. A detailed explanation how the delta neutral strategies work, and their mathematical derivation can be found [herearrow-up-right](https://arcadiafinance.notion.site/Delta-Neutral-strategies-1f7f4240c3264bec82608a85b58329a1?pvs=74) . **Yield source:** Combines multiple yield sources from both ETH and USD-based assets. The yield generated automatically counts towards the Account health, out-earning the interests of the borrowed USDC. **Strategic use cases:** You want to accumulate both ETH and USD holdings independent of ETH's price volatility, while being comfortable with leveraged DeFi strategies and periodic portfolio rebalancing. [PreviousDelta Neutral USDchevron-left](https://docs.arcadia.finance/users/strategists/delta-neutral-usd) [NextBullish Cryptochevron-right](https://docs.arcadia.finance/users/strategists/bullish-crypto) Last updated 21 days ago --- # Farmers | Arcadia Finance Farmers are experienced DeFi users who fully understand how [AMMs](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) work and are looking to optimize their portfolio's risk and return. [hashtag](https://docs.arcadia.finance/users/farmers#how-does-it-work) How does it work? --------------------------------------------------------------------------------------------- Farmers can make use of the full range of features offered by Arcadia, such as: * Selecting any AMM pool of any of the supported DEXs. * Setting custom ranges for the liquidity positions. * Setting automations for their positions, such as compounding or automatic rebalancing. * Selecting various rebalance strategies. * Using leverage to hedge IL risk, or the maximize yield. They can further choose which asset to borrow and how much leverage to take. * Fine grained control to deposit, withdraw, borrow, repay... assets from their Account. For a detailed guide how to farm, see [Here](https://docs.arcadia.finance/tutorials/farm) . [hashtag](https://docs.arcadia.finance/users/farmers#where-does-the-yield-come-from) Where does the yield come from? ------------------------------------------------------------------------------------------------------------------------- Depending on the type of Liquidity Positions that are used, there are two different possibilities: #### [hashtag](https://docs.arcadia.finance/users/farmers#non-staked-liquidity-positions) Non-staked Liquidity Positions All yield comes from trading fees that Traders pay when they swap through the underlying AMM pools. #### [hashtag](https://docs.arcadia.finance/users/farmers#staked-liquidity-positions) Staked Liquidity Positions Holders of staked positions, such as staked Aerodrome, receive token emissions. Depending on the staking mechanism these emissions can be on top of the yield from trading fees. Or as is the case with Aerodrome, stakers choose to earn emissions instead of trading fees. [hashtag](https://docs.arcadia.finance/users/farmers#what-are-the-risks) What are the risks ------------------------------------------------------------------------------------------------ All Strategists are exposed to the following risks: * Smart contract risks * Market risks * Impermanent loss And depending if they use leverage or not: * Interest rate risk (interest rate can exceed yields) * Liquidation risk [PreviousBearish Cryptochevron-left](https://docs.arcadia.finance/users/strategists/bearish-crypto) [NextProtocolschevron-right](https://docs.arcadia.finance/users/protocols) Last updated 21 days ago * [How does it work?](https://docs.arcadia.finance/users/farmers#how-does-it-work) * [Where does the yield come from?](https://docs.arcadia.finance/users/farmers#where-does-the-yield-come-from) * [What are the risks](https://docs.arcadia.finance/users/farmers#what-are-the-risks) --- # Benefits | Arcadia Finance Using Foundry, teams can optimize their onchain liquidity to build deep markets, lower trading slippage, and generate sustainable trading fees instead of paying out endless incentives. Let's take a look at the benefits: * **End "Rented" Liquidity:** By managing your own liquidity, your protocol can achieve deep liquidity without continuously issuing tokens, turning a major capital drain into a potentially revenue-generating asset. * **Protection against MEV and Execution Risk:** Whenever you perform an action through Arcadia, dedicated transaction emulators make sure you don't fall prey to MEV attacks or faulty transactions. * **Strategic Bootstrapping:** If your protocol is launching a token, Arcadia facilitates organic price discovery and provides support for setting up your clAMM pool parameters to ensure deep liquidity. * **Treasury Diversification:** Protocols often hold 100% of their treasury in their native token and lack the ETH or USDC needed to seed a pool. Arcadia provides custom strategies to manage the conversion without crashing the token price. * **Yield on Idle Treasury Assets:** Protocols holding non-native assets like USDC, WETH, or wstETH can deploy them as concentrated liquidity in established pairs, earning trading fees instead of leaving them idle. * **Operational Simplicity:** Arcadia's architecture is modular and can manage your liquidity across multiple venues (including Uniswap V3/V4, Aerodrome, etc.) atomically, with automated rebalancing for your liquidity ranges based on our proprietary algorithms. * **Capital Efficiency:** Arcadia ensures that the capital you deploy is utilized as efficiently as possible, meaning you can achieve the same market depth with a fraction of the capital. * **Better Trader Experience:** By concentrating liquidity around the active price, Arcadia ensures that traders experience minimal slippage, making the ecosystem more attractive to trade in. * **Non-Custodial Security:** Arcadia provides a trustless structure where the protocol retains full ownership of the assets. * **DAO-enabled:** Is your project structured as a DAO? Arcadia readily integrates with Safe and Fireblocks multi-sig wallets so your DAO retains custody without the need for micro-management, thanks to our automations. [PreviousFoundrychevron-left](https://docs.arcadia.finance/foundry-intro) [NextProtocol Owned Liquiditychevron-right](https://docs.arcadia.finance/foundry-intro/foundry-pol) Last updated 8 days ago --- # First Strategy | Arcadia Finance [hashtag](https://docs.arcadia.finance/tutorials/first-strategy#intro) Intro --------------------------------------------------------------------------------- As new DeFi user you might be overwhelmed by all the new technical jargon you come across and may be unfamiliar on starting to earning yield by providing liquidity. Arcadia is designed to simplify your journey into earning yield by providing two options to get started. The first are curated strategies that allow you to enter well-performing liquidity pools in a few clicks. The second is for slightly more advanced users and allow you to pick any single LP (provided Arcadia supports the underlying assets) and also enter it with a few clicks. [hashtag](https://docs.arcadia.finance/tutorials/first-strategy#navigating-to-our-dapp-for-the-first-time) Navigating to our dapp for the first time --------------------------------------------------------------------------------------------------------------------------------------------------------- When you go to [arcadia.financearrow-up-right](http://arcadia.finance/) for the first time you will be greeted by our home page. Here you’ll find a few brief sections on what we’re all about and even a list of our curated strategies that we’ll talk about later. Be sure to go over each section. Our focus today however will be on the Navigation on top of the page. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-ce8b5e0c5ec721e61c10eb4d96f0292aab792532%252Fnavbar.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=60417fbc&sv=2) navbar To open your first position on Arcadia you must first connect your wallet of choice to our application. You can do this by pressing the “Connect Wallet” button. Make sure the selected chain is Base L2. [hashtag](https://docs.arcadia.finance/tutorials/first-strategy#opening-your-first-strategy) Opening your first strategy ----------------------------------------------------------------------------------------------------------------------------- Scroll down on the home page or navigate to the Strategies page and choose one of the curated strategies. These are strategies hand-picked by our algorithms and automatically choose the best underlying assets for the goal of each strategy. For our example we’ll use Delta-Neutral USD. As explained on the strategies card this means we will take USD debt to open up a leveraged liquidity position in a liquidity pair of two USD-pegged stable coins. This will earn yield (from the trading happening on the underlying liquidity pool) in USD-denominated stablecoin. Click on ‘Open Strategy’ and a modal will pop up. This modal will guide you through 3 steps to easily open up your curated strategy. Step 1 will prompt you to input any amount of either USDC, WETH, ETH or cbBTC. You must regard the asset you deposit as a certain "value": the asset you deposit will be converted, together with any taken leverage, into the liquidity position on which you'll be earning yield. Which asset you deposit will thus have no influence on the yield nor interest rate! You will see a table which displays exactly what assets are going to be or created. After you chose your amount, click confirm to be brought to the next step. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-e7c3b16ab3f4be40ced5e58cb7cd2eaaad2f0890%252Finput.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=438011e0&sv=2) Input Step In step 2 we select the account to work with, or create a new one if you don’t have an account. An Arcadia account serves as a non-custodial smart contract wallet, will hold all the collateral assets and keeps tracks of open debt. Approve the assets for our transaction and preview what will exactly happen in the transaction by clicking Outline transaction button. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-56d6939167d1a38e44805a9981b8dd2875d8d11a%252Faccounting.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=d1d03e3c&sv=2) Accounting Step After pressing this button. An outline of the transaction will be generated and presented in step 3. In this example I use 15 USDC to open a delta-neutral usd position. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-65837b39fcdd668cb42d569208c588a6d9e89108%252Foutline.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=79ad68d7&sv=2) Outline This step outlines what will happen in the protocol when your transaction is submitted. In this example you can see 15 USDC is being used from my wallet. Some of it is swapped into USDT and together with the leftover USDC a new Slipstream position is created and staked. Now the only thing that remains is pressing Deposit and signing the transaction in your wallet! Congratulations, you just opened your first Arcadia Position. Follow the other tutorials to learn more about how to open your own strategies, how to manage your newly minted LP positions and more. [PreviousAccountschevron-left](https://docs.arcadia.finance/tutorials/account-overview) [NextManaging positionschevron-right](https://docs.arcadia.finance/tutorials/managing-positions) Last updated 21 days ago * [Intro](https://docs.arcadia.finance/tutorials/first-strategy#intro) * [Navigating to our dapp for the first time](https://docs.arcadia.finance/tutorials/first-strategy#navigating-to-our-dapp-for-the-first-time) * [Opening your first strategy](https://docs.arcadia.finance/tutorials/first-strategy#opening-your-first-strategy) --- # Delta Neutral USD | Arcadia Finance **Strategy description:** Generates yield from both ETH and USD yield-bearing assets while maintaining market neutrality. This strategy utilizes borrowed wETH to acquire both wETH and USD yield-bearing assets, requiring periodic rebalancing to maintain its delta-neutral position. The wETH used in the LP position is borrowed (shorted) and thus the strategist remains neutral in their ETH exposure. By utilizing very wide ranges, the LP composition is minimally affected by limited market changes. A detailed explanation how the delta neutral strategies work, and their mathematical derivation can be found [herearrow-up-right](https://arcadiafinance.notion.site/Delta-Neutral-strategies-1f7f4240c3264bec82608a85b58329a1?pvs=74) . **Yield source:** Combines multiple yield sources from both ETH and USD-based assets. The yield generated automatically counts towards the Account health, out-earning the interests of the borrowed wETH. **Strategic use cases:** You want to accumulate USD holdings independent of crypto market volatility, while being comfortable with leveraged DeFi strategies and periodic portfolio rebalancing. [PreviousStrategistschevron-left](https://docs.arcadia.finance/users/strategists) [NextDelta Neutral ETHchevron-right](https://docs.arcadia.finance/users/strategists/delta-neutral-eth) Last updated 21 days ago --- # Foundry | Arcadia Finance ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-98a27dafe62cd43ea71c20ce76a4f6cd15369e56%252Ffoundry-banner.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=4f5677ce&sv=2) [hashtag](https://docs.arcadia.finance/foundry-intro#arcadia-foundry) Arcadia Foundry ------------------------------------------------------------------------------------------ Arcadia Foundry is a tailor-made solution for protocols looking to deploy and manage onchain liquidity. Acting as a trustless market maker, Foundry serves two core use cases: * [**Protocol Owned Liquidity**](https://docs.arcadia.finance/users/protocols) **:** Automate liquidity management for your native token: rebalancing, bootstrapping, buybacks, and custom distribution strategies. * [**Treasury Liquidity Management**](https://docs.arcadia.finance/foundry-intro/foundry-treasury) **:** Put idle treasury assets to work by providing liquidity in established pairs like WETH/USDC or WETH/wstETH, earning yield while deepening ecosystem liquidity. Both are powered by the same automation infrastructure, non-custodial security model, and DAO/multi-sig compatibility. Explore why protocols choose Foundry with the [summer.fi case studyarrow-up-right](https://paragraph.com/@arcadiafi/arcadia-foundry-summerfi-case-study) . [PreviousAdvanced Strategieschevron-left](https://docs.arcadia.finance/tutorials/farm) [NextBenefitschevron-right](https://docs.arcadia.finance/foundry-intro/foundry-benefits) Last updated 8 days ago --- # Protocol Owned Liquidity | Arcadia Finance Protocols use Foundry to manage liquidity for their native token. Instead of renting liquidity through emissions or incentive programs, protocols deploy their own assets and let Arcadia's automations handle position management. Arcadia migrates existing liquidity positions to an active Foundry strategy in a single transaction, ensuring there is never a liquidity gap during migration. [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#strategies) Strategies -------------------------------------------------------------------------------------------- A non-exhaustive list of strategies tailored for PoL: #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#efficient-rebalancing-for-capital-preservation) Efficient Rebalancing for Capital Preservation PoL deployments require regular re-calibration of position ranges to optimize for trading depth. Rebalancing is optimized for capital preservation, using organic yields to offset impermanent loss. #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#inventory-rebalancing) Inventory Rebalancing Standard rebalancing can cause negative price impact when executed in size. Arcadia's tooling allows inventory rebalancing, which mitigates negative price impact. #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#custom-pol-strategy) Custom PoL Strategy Custom strategies, such as padded distributions to support token price floors and increase depth in high-volume price areas. #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#take-profit-with-zero-price-impact) Take Profit with Zero Price Impact Withdraw assets from liquidity positions without direct price impact or temporarily removing the main liquidity position. #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#structured-buybacks) Structured Buybacks Buybacks can be automated and executed in a structured way to maximise accumulation. [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#yield) Yield ---------------------------------------------------------------------------------- All yield comes from trading fees that traders pay when they swap through the underlying AMM pools. Staked positions (e.g., staked Aerodrome) earn token emissions rather than trading fees. Earned fees and rewards can be auto-compounded back into the position or claimed to the protocol wallet via [Compounders](https://docs.arcadia.finance/protocol/asset-managers/compounders) and [Yield Claimers](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers) . [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-pol#risks) Risks ---------------------------------------------------------------------------------- Protocol owned liquidity is exposed to: * Smart contract risks * Market risks * Impermanent loss And depending if margin is used or not: * Interest rate risk (interest rate can exceed yields) * Liquidation risk [PreviousBenefitschevron-left](https://docs.arcadia.finance/foundry-intro/foundry-benefits) [NextTreasury Managementchevron-right](https://docs.arcadia.finance/foundry-intro/foundry-treasury) Last updated 8 days ago * [Strategies](https://docs.arcadia.finance/foundry-intro/foundry-pol#strategies) * [Yield](https://docs.arcadia.finance/foundry-intro/foundry-pol#yield) * [Risks](https://docs.arcadia.finance/foundry-intro/foundry-pol#risks) --- # Strategists | Arcadia Finance Strategists select one of the four curated strategies to earn yield using [AMMs](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) . They create a position with both their own assets and borrowed assets. [hashtag](https://docs.arcadia.finance/users/strategists#how-does-it-work) How does it work? ------------------------------------------------------------------------------------------------- Strategists are users looking for yield, with certain objectives and/or market outlooks, who see AMMs as a good way to earn yield, but don't have the technical expertise and/or time to monitor and manage individual pools. For these type of users, Arcadia offers a curated set of easy to use strategies that allow them to enter well-performing AMM liquidity pools in a few clicks. The strategies use only stable coins or tokens related to major assets (such as ETH and BTC). Arcadia offers currently four strategies: * [Delta neutral USD](https://docs.arcadia.finance/users/strategists/delta-neutral-usd) : keep USD value of portfolio as stable as possible, while earning yield. * [Delta neutral ETH](https://docs.arcadia.finance/users/strategists/delta-neutral-eth) : keep ETH value of portfolio as stable as possible, while earning yield. * [Bullish Crypto](https://docs.arcadia.finance/users/strategists/bullish-crypto) : USD value of portfolio increases when total market cap increases, while earning yield. * [Bearish Crypto](https://docs.arcadia.finance/users/strategists/bearish-crypto) : USD value of portfolio increases when total market cap decreases, while earning yield. For a detailed guide how to enter in a strategy, see [here](https://docs.arcadia.finance/tutorials/first-strategy) . [hashtag](https://docs.arcadia.finance/users/strategists#where-does-the-yield-come-from) Where does the yield come from? ----------------------------------------------------------------------------------------------------------------------------- Depending on the type of Liquidity Positions that are used within the strategy, there are two different possibilities: #### [hashtag](https://docs.arcadia.finance/users/strategists#non-staked-liquidity-positions) Non-staked Liquidity Positions All yield comes from trading fees that traders pay when they swap through the underlying AMM pools. #### [hashtag](https://docs.arcadia.finance/users/strategists#staked-liquidity-positions) Staked Liquidity Positions Holders of staked positions, such as staked Aerodrome, receive token emissions. Depending on the staking mechanism these emissions can be on top of the yield from trading fees. Or, as is the case with Aerodrome, stakers choose to earn emissions instead of trading fees. [hashtag](https://docs.arcadia.finance/users/strategists#what-are-the-risks) What are the risks ---------------------------------------------------------------------------------------------------- All Strategists are exposed to the following risks: * Smart contract risks * Market risks * Impermanent loss And depending if they use leverage or not: * Interest rate risk (interest rate can exceed yields) * Liquidation risk [PreviousLenderschevron-left](https://docs.arcadia.finance/users/lenders) [NextDelta Neutral USDchevron-right](https://docs.arcadia.finance/users/strategists/delta-neutral-usd) Last updated 21 days ago * [How does it work?](https://docs.arcadia.finance/users/strategists#how-does-it-work) * [Where does the yield come from?](https://docs.arcadia.finance/users/strategists#where-does-the-yield-come-from) * [What are the risks](https://docs.arcadia.finance/users/strategists#what-are-the-risks) --- # Accounts | Arcadia Finance [hashtag](https://docs.arcadia.finance/tutorials/account-overview#tutorial-account-page) Tutorial: Account Page -------------------------------------------------------------------------------------------------------------------- ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-3bb811878d80d14a0a3b6eaf731474be7629cf6d%252Faccount.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=b0998ac8&sv=2) Account overview [hashtag](https://docs.arcadia.finance/tutorials/account-overview#account-page-tutorial) Account Page Tutorial ------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/tutorials/account-overview#account-overview) Account Overview At the top of the page, you'll find your account address, which is your unique identifier on the platform. Below that, you'll see three key metrics: 1. **Net APY (Annual Percentage Yield)**: This represents the overall annualized return on your investments, taking into account all assets in your account and the interest rate. It's calculated by combining the yields from the assets within your account, considering both positive yields and the negative impact of the interest for leveraged positions. 2. **Net Value**: This is the net total value of your account. It represents your actual equity, and is calculated by subtracting the amount of debt from the total value of all assets contained in the account. 3. **Est. daily earnings**: This is the estimated daily earnings of your account, taking into account the current interest rate and the amount of assets in your account. 4. **Total yield earned (Profit and Loss)**: This shows the total yield earned using your account up to the present day. It includes any previously claimed or (auto)compounded rewards. ### [hashtag](https://docs.arcadia.finance/tutorials/account-overview#quick-actions) Quick Actions This section provides easy access to essential account management functions. Some actions may not be available for your account, depending on your account status. * **Optimize**: When concentrated liquidity positions in your account are out of range, this action will automatically adjust the ranges of your positions to ensure they go back within range. * **Add Collateral**: Quickly add extra tokens to your account without altering existing positions. This is particularly useful when you have a leveraged position near liquidation and want to avoid realizing impermanent loss. * **Deposit and Invest**: Add collateral that will be immediately used to update your existing position or strategy. This action harvests any accumulated fees, and together with the added collateral, will increase the value of the positions within your account. This will not affect the ranges set for concentrated liquidity positions. * **Adjust Your Leverage**: Modify the leverage in your account. Similar to the previous action, this will harvest fees. If you're adding leverage, it will increase the value of your positions. If you're removing leverage, it will decrease the value of your positions. This will not affect the ranges set for concentrated liquidity positions. * **Automate Your Portfolio**: Access a modal to manage your automations. For the available automations, see [Asset Managers](https://docs.arcadia.finance/protocol/asset-managers) . * **Notify Me for Strategy Recommendations**: Set up Telegram notifications for important events, such as your position moving out of range, getting close to liquidation or other strategic alerts. * **Need a Break?**: Use this to exit your position into AERO, USDC, cBBTC or WETH. * **Withdraw**: Withdraw your assets from your account. This will not work if this causes your account to become unhealthy. * **Repay Debt**: Repay your debt. ### [hashtag](https://docs.arcadia.finance/tutorials/account-overview#margin-and-health) Margin & Health This section provides crucial information about your account's financial status: * **Gross Value**: The total value of all assets in your account, including leveraged positions. * **Liquidation at Gross Value**: This indicates the gross value threshold at which your account becomes eligible for liquidation. It's essential to monitor this to avoid forced position closures. Make sure the Gross Value never reaches this threshold! * **Leverage**: If applicable, this displays your current leverage ratio, indicating how much borrowed capital you're using. * **Debt**: The amount of debt you've taken, expressed in wETH, USDC or cBTC, which serves as the account's numeraire. * **Interest**: The annualized percentage of interest you're paying on your borrowed funds. * **Health Score**: A qualitative assessment of your account's overall financial health, considering factors like leverage, collateral, and market conditions. ### [hashtag](https://docs.arcadia.finance/tutorials/account-overview#asset-overview) Asset Overview This section lists all assets currently in your account, including: * ERC20 tokens: Standard fungible tokens. * LP (Liquidity Provider) positions: These represent your stakes in liquidity pools. Each LP position displays: * The range of prices at which you're providing liquidity and the current price of the pool. * Fees and rewards earned. * For staked Slipstream positions, a button to claim your AERO rewards. ### [hashtag](https://docs.arcadia.finance/tutorials/account-overview#historical-rates) Historical Rates This graph visualizes the history of your yield earnings over time, allowing you to track your investment performance. ### [hashtag](https://docs.arcadia.finance/tutorials/account-overview#account-history) Account History A comprehensive log of all your account transactions, providing a clear audit trail of your activities on the platform. [PreviousLiquidity Provisionchevron-left](https://docs.arcadia.finance/tutorials/liquidity-provision) [NextFirst Strategychevron-right](https://docs.arcadia.finance/tutorials/first-strategy) Last updated 21 days ago * [Tutorial: Account Page](https://docs.arcadia.finance/tutorials/account-overview#tutorial-account-page) * [Account Page Tutorial](https://docs.arcadia.finance/tutorials/account-overview#account-page-tutorial) * [Account Overview](https://docs.arcadia.finance/tutorials/account-overview#account-overview) * [Quick Actions](https://docs.arcadia.finance/tutorials/account-overview#quick-actions) * [Margin & Health](https://docs.arcadia.finance/tutorials/account-overview#margin-and-health) * [Asset Overview](https://docs.arcadia.finance/tutorials/account-overview#asset-overview) * [Historical Rates](https://docs.arcadia.finance/tutorials/account-overview#historical-rates) * [Account History](https://docs.arcadia.finance/tutorials/account-overview#account-history) --- # Governance | Arcadia Finance [Arcadia DAOchevron-right](https://docs.arcadia.finance/governance/arcadia-dao) [Token Mechanicschevron-right](https://docs.arcadia.finance/governance/tokenomics) [Fee Rebateschevron-right](https://docs.arcadia.finance/governance/fee-rebates) [PreviousPosition Wizardchevron-left](https://docs.arcadia.finance/foundry-intro/foundry-wizard) [NextArcadia DAOchevron-right](https://docs.arcadia.finance/governance/arcadia-dao) Last updated 11 months ago --- # Advanced Strategies | Arcadia Finance [hashtag](https://docs.arcadia.finance/tutorials/farm#intro) Intro ----------------------------------------------------------------------- At Arcadia we not only support curated strategies, but also allow users to enter any LP of which we support the underlying tokens. This allows a user to pick a pool and range, and their leverage to open up a leveraged LP position in any of their favorite LP pools. [hashtag](https://docs.arcadia.finance/tutorials/farm#navigating-to-the-farm-page) Navigating to the farm page. -------------------------------------------------------------------------------------------------------------------- To get to the overview of all the LP pools navigate to the Farm via the link in the navbar on top of the page. When you do this you should be greeted by the following page: ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-2a6be54191413af2cf640afc3c081f03b3d33e50%252Flist-view.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=578a429a&sv=2) Strategy overview On this page you see an overview of all the pools Arcadia currently supports and some information about them. There is are filters on top where you can filter between Uniswap, Staked Slipstream, Slipstream and Aerodrome V1 pools. You can sort by APY, TVL or Volume. Let’s open a position in Staked Slipstream wETH-Aero. Either scroll until you find the one you think you like or filter on “Staked Slipstream” and search on Aero. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-9e3ea07ba716afc7a54dcd7b5be2f4fc22de98b3%252Fstrategy.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=4050b18a&sv=2) Specific pool You can see some information about this pool: * Logo. * Protocol + Pool. * APY: the range of APYs are shown as "base APY - max leveraged APY" based on the 7 day history of the pool. * TVL: TVL of the pool. * Max Leverage: this is the maximum leverage you can take in an arcadia account for this asset. * Volume: the amount traded in the past 24hr. When you click on the pool it navigates you to the following page. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-50ed056babdecf0716305240c4a8828c282d954e%252Fstrategy-wizard.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=37fe6d46&sv=2) Advanced Strategy This is the general overview of an LP pool on Arcadia's Farm pools. On this page you can set the ranges to provide liquidity in (for concentrated pools only), the input amount and the leverage. If you don’t have an account yet or need an account that has a different debt token than the one you have, you can also do that here. Let’s first select which debt token we’d like to use to open our position. Choosing this is important, as it will determine the interest rate, maximum leverage available and the asset you will be borrowing - and thus shorting! You can do this by selecting USDC, wETH or cbBTC in the top right of the page. After you selected a debt token, you can create an account with this specific numeraire. If you already have an account you can use any of those. The debt token of the existing account should be clear by the icon. If you use an existing account that already has some assets in it (and potentially open debt), you can choose to only use those assets and transform them into the newly selected pool. If you have a new account or want to add extra assets, you can do that by checking the "Deposit Extra funds" button. If you pressed this button an input field should appear that allows you to deposit wETH, USDC, ETH or cbBTC. Here you can input the amount you want to add to your account when opening this position. Selecting the range is the next important step for concentrated liquidity pools. You can either use one of the 5 predetermined ranges from Very Narrow to Very Wide or select a custom range. To select a custom range you pick one of the 5 pre existing ranges that comes closest to what you want and then press custom. Two things will happen: A + and - button will appear in the set price range input and two drag-able buttons will appear on the liquidity graph. You can use either or both to fine-tune your preferred range. You can switch the base asset by clicking the "switch to ..." button on the top of the range selector window. By changing the range in which you will provide liquidity, the estimated APY on the top of the page will also change. As a general rule, the more narrow the range is, the higher the APY will be. Note however that in narrow ranges, you will more likely be out of range and not earn any yield, and will have a higher impermanent loss. Wider ranges need less rebalancing and will therefore have lower impermanent loss, but will earn lower yield. When you have selected your range, your account, your deposit amount and your leverage, you are (almost) ready to confirm it. If you selected ETH as a deposit asset, it'll need to be converted into wrapped ETH so Arcadia can use it. If applicable, you may need to approve the amount you selected, and lastly you can outline the transaction. This outline transaction screen is the familiar screen where you see exactly what would happen if you’d trigger this transaction. If you're happy with what's shown, press the confirm button to trigger a wallet action. Sign the transaction in your wallet and it will be executed onchain. You first advanced strategy is opened. The page will automatically navigate to your account page where you can now see your freshly minted LP position earning yield. [PreviousManaging positionschevron-left](https://docs.arcadia.finance/tutorials/managing-positions) [NextFoundrychevron-right](https://docs.arcadia.finance/foundry-intro) Last updated 21 days ago * [Intro](https://docs.arcadia.finance/tutorials/farm#intro) * [Navigating to the farm page.](https://docs.arcadia.finance/tutorials/farm#navigating-to-the-farm-page) --- # Arcadia DAO | Arcadia Finance [hashtag](https://docs.arcadia.finance/governance/arcadia-dao#why-a-dao) Why a DAO? ---------------------------------------------------------------------------------------- As Arcadia evolves, it is essential to ensure that the protocol becomes a sustainable, community-driven entity. Our DAO governance structure is designed around three essential principles that foster a vibrant and resilient community: **predictability, mutual interest, and visibility.** Adhering to these pillars ensures every stakeholder has the clarity, motivation, and insight necessary to participate meaningfully. 1. **Predictability**: By clearly outlining governance rules and token distribution methods, we enable participants to anticipate how decisions are made and resources are allocated. This consistency supports steady, long-term thinking rather than reactive, short-term speculation. 2. **Mutual Interest**: Our incentive models and consensus processes encourage contributors, token holders, and builders to pursue objectives that benefit the ecosystem as a whole. When incentives are well-aligned, collaboration thrives, and the community naturally develops robust solutions. 3. **Visibility**: Transparent documentation, open discussions, and regular reporting safeguard community confidence. Shared information helps every member understand and evaluate decisions, creating a culture of accountability and constructive feedback. Through this framework, our goal is to foster a sense of unity and shared accountability that transforms traditional “winner-takes-all” competition into collective progress. [hashtag](https://docs.arcadia.finance/governance/arcadia-dao#timeline) Timeline ------------------------------------------------------------------------------------- Arcadia's governance will transition to a DAO model through a phased approach, empowering the community to take an increasingly active role in shaping the protocol's future. **Phase 0 – Laying the Foundations (Completed)** * **Focus:** Finding early signs of user demand for Arcadia. Without this, nothing else matters. * **Achievements:** Developed a robust product, onboarded initial users, and validated the protocol’s value proposition. * **Outcome:** A solid groundwork for community-driven growth, ensuring future governance decisions are informed by early user insights. **Upcoming: Phase 1 – Community First** * **Governance Evolution:** * Introduce community voting on non-critical decisions (e.g., feature suggestions, integrations, airdrop allocations, and contributor/grant distributions). * Core team retains final decision-making authority but uses community input to guide direction. * **Initiatives:** * Launch community grants for non-critical development and operational tasks. * Begin building community trust, engagement, and alignment with the long-term vision. **Phase 2 – Soft DAO** * **Governance Evolution:** * Implement delegated voting mechanisms to strengthen community influence over the roadmap. * Update multisig structures to include elected community delegates, decentralizing control over treasury operations. * **Initiatives:** * Community management of the DAO treasury (funding grants, partnerships, emissions, incentives, airdrops). * Formalize community-driven decision-making processes beyond advisory roles. **Phase 3 – Full DAO** * **Governance Evolution:** * Transition to fully on-chain governance systems, eliminating reliance on multisigs. * Complete decoupling of Arcadia from the founding development company, enabling self-sustaining, community-led operations. * **Initiatives:** * Solidify a fully decentralized governance framework, ensuring long-term resilience and community stewardship. * Establish Arcadia as a fully autonomous, community-owned protocol. * * * **End State** A mature DAO where governance, treasury management, and roadmap decisions rest entirely with the community—fostering long-term protocol stability, trust, and broad stakeholder alignment. [PreviousGovernancechevron-left](https://docs.arcadia.finance/governance) [NextToken Mechanicschevron-right](https://docs.arcadia.finance/governance/tokenomics) Last updated 21 days ago * [Why a DAO?](https://docs.arcadia.finance/governance/arcadia-dao#why-a-dao) * [Timeline](https://docs.arcadia.finance/governance/arcadia-dao#timeline) --- # Dashboard | Arcadia Finance Visit your customized Foundry dashboard and connect your wallet to get started. Make sure to connect your whitelisted wallet. [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-tutorial#your-dashboard) Your Dashboard --------------------------------------------------------------------------------------------------------- ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-1212f19039bf48cfd59d0188a3a1aebf52aa1a06%252Ffoundry-dashboard.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=fc4d394c&sv=2) * **Metrics:** On top of the page you find general metrics and pool-specific metrics for your selected pairs. Hover over the question marks to learn more. * **The Liquidity Graph:** On the left side you find the onchain liquidity distribution for your selected pool. This shows how much liquidity is present for each individual tick. * **Top Positions:** On the right side you find a list of the biggest positions for this pool. Click on a single position to see its range and size projected on the graph. * **Filter:** You can filter this list by wallet address, by position ID, or by staked/unstaked (only for Aerodrome Slipstream positions). [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-tutorial#your-positions) Your Positions --------------------------------------------------------------------------------------------------------- View your liquidity positions for the token pair. Click on _View Account_ to visit the position's tracking and performance page. [PreviousTreasury Managementchevron-left](https://docs.arcadia.finance/foundry-intro/foundry-treasury) [NextPosition Wizardchevron-right](https://docs.arcadia.finance/foundry-intro/foundry-wizard) Last updated 8 days ago * [Your Dashboard](https://docs.arcadia.finance/foundry-intro/foundry-tutorial#your-dashboard) * [Your Positions](https://docs.arcadia.finance/foundry-intro/foundry-tutorial#your-positions) --- # Token Mechanics | Arcadia Finance ### [hashtag](https://docs.arcadia.finance/governance/tokenomics#aaa-and-staaa-token-overview) AAA & stAAA Token Overview The Arcadia ecosystem is powered by two core tokens: **AAA** and **stAAA**. Together, they provide governance, utility, and incentive alignment for all participants in the protocol. [hashtag](https://docs.arcadia.finance/governance/tokenomics#aaa-the-utility-token) AAA – The Utility Token ---------------------------------------------------------------------------------------------------------------- `AAA` is an ERC-20 token and the foundational utility token of the Arcadia protocol. It is designed to be **minimal, immutable, and not upgradeable**. This simplicity ensures that its contract address, total supply, and core properties remain constant throughout the life of the protocol. While `AAA` itself is a passive asset, **its full utility is unlocked by staking it to receive** `**stAAA**`**.** [hashtag](https://docs.arcadia.finance/governance/tokenomics#staaa-the-governance-and-reward-layer) stAAA – The Governance & Reward Layer ---------------------------------------------------------------------------------------------------------------------------------------------- `stAAA` is the **staked version of AAA**, implemented as a multi-reward ERC-20 token. **stAAA is how users actively take part in Arcadia** — from governance to accessing protocol rewards and revenue streams. ### [hashtag](https://docs.arcadia.finance/governance/tokenomics#key-features) Key Features: * **Governance**: stAAA holders vote on proposals in the Arcadia DAO. * **Fee Sharing**: stAAA receives a share of protocol revenue streams, not just emissions. * **Access**: Unlocks advanced yield strategies and ecosystem tools. * **Multi-Reward Stream**: Beyond `AAA` emissions, stAAA can receive any ERC-20 token captured by the protocol. ### [hashtag](https://docs.arcadia.finance/governance/tokenomics#why-not-only-use-staaa) Why Not Only Use stAAA? The logic behind staking, governance, and fund distribution is likely to evolve over time. Rather than tying these mechanics directly to the token and relying on proxies or upgradable token contracts, Arcadia separates the roles: * **AAA** stays simple, fixed, and universally recognizable. * **stAAA** encapsulates all advanced features — and can evolve independently of the base token. This architecture ensures **future flexibility** without compromising **contract stability**. [hashtag](https://docs.arcadia.finance/governance/tokenomics#staking-and-unstaking) Staking & Unstaking ------------------------------------------------------------------------------------------------------------ * **1:1 Staking**: Stake `AAA` to mint `stAAA`. * **Standard Unstake**: 30-day waiting period to unlock your full `AAA` balance. You may queue multiple unstake requests at once. Each unstake request is independent of the others. An unstake request cannot be cancelled once it has been queued. * **Early Withdrawal**: Access `AAA` before the 30-day period ends, with a time-based dynamic penalty applied. The penalty starts at 90% and decreases linearly over the next 30 days to 0%. If multiple unstakes are queued, each individual unstake request will be subject to its own timeline and own penalty. This system balances long-term commitment with optional liquidity flexibility. [hashtag](https://docs.arcadia.finance/governance/tokenomics#fee-sharing) Fee Sharing ------------------------------------------------------------------------------------------ stAAA holders are eligible for a share of fees captured by various parts of the Arcadia ecosystem: * In **Arcadia Strategies**, this includes: * A portion of the interest paid by borrowers to lenders. * A portion of liquidation fees. * For **Arcadia tooling** (e.g. the Rebalancer or Compounder), specific fees can be redirected to stAAA holders. As protocol usage grows, these sources generate a diversified and robust stream of rewards for stakers — in `AAA` and other ERC-20 tokens. [hashtag](https://docs.arcadia.finance/governance/tokenomics#utility-highlights) Utility Highlights -------------------------------------------------------------------------------------------------------- * **Delegation & Voting**: Active participation in shaping Arcadia’s future. * **Ecosystem Incentivization**: Real yield from actual protocol usage. * **Advanced Features**: Access to optimized strategies and tools on Arcadia Finance. * **Grants Program**: `AAA` supports ecosystem growth by funding third-party developers and integrations. [hashtag](https://docs.arcadia.finance/governance/tokenomics#token-distribution) Token Distribution -------------------------------------------------------------------------------------------------------- Category Allocation (tokens) Allocation (%) Vesting Schedule Investors 15,000,000 15% 1 year vesting starting at TGE. All investors under the same schedule Treasury 15,000,000 15% Unlocked but subject to governance. Allocated for future strategic investors and long-term strategic initiatives. Core Team 20,000,000 20% 2 year vesting starting at TGE. Community 50,000,000 50% Gradual release over 3 years and subject to governance **Total Supply** **100,000,000** **100%** \- ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-f31f7a4f721d4fcae8881285df7b67c0815dfa96%252FTokenomics_v9.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=d758de1d&sv=2) Tokenomics v9.png **Community Breakdown** Airdrops (20%) * The first airdrop will have a 10% allocation, distributed to V2 users, as per their point allocation, and V1 users, as per their usage of the v1 protocol during the time it was live. * The DAO will decide on the remaining 10% airdrop allocation. Liquidity Provision (20%) * 5% for initial launch on aerodrome pool * 15% for a liquidity mining program **Contributors and grants (5%)** * Incentivize community participation in initiatives to grow Arcadia. * The DAO will oversee this allocation. **Public token sale (5%)** * Designed to give protocol ownership to the Arcadia community, enabling more participants to become Arcadia stakeholders. [hashtag](https://docs.arcadia.finance/governance/tokenomics#supply-schedule) Supply Schedule -------------------------------------------------------------------------------------------------- ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-4a51cda5070f5e773ac35c4dbf69e5da822ef575%252FAAA_Final_tokem_emmission_model.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=781810a2&sv=2) AAA Final token emission model.png **At TGE** * 35% of supply in circulation **At Year 1** * Investors fully vested (15%) * Public sale (5%) * Core team partially vested (10%) * Liquidity mining releases (10%) * 75% of supply in circulation **At Year 2** * Core team fully vested (20%) * Additional 3% liquidity mining released (3%) * 83% of supply in circulation **At Year 3** * Final 2% liquidity mining allocation released during Year 3. * 85% of supply in circulation ❗The remaining allocation earmarked for airdrops and contributors/grants will be allocated by the DAO. [PreviousArcadia DAOchevron-left](https://docs.arcadia.finance/governance/arcadia-dao) [NextFee Rebateschevron-right](https://docs.arcadia.finance/governance/fee-rebates) Last updated 21 days ago * [AAA & stAAA Token Overview](https://docs.arcadia.finance/governance/tokenomics#aaa-and-staaa-token-overview) * [AAA – The Utility Token](https://docs.arcadia.finance/governance/tokenomics#aaa-the-utility-token) * [stAAA – The Governance & Reward Layer](https://docs.arcadia.finance/governance/tokenomics#staaa-the-governance-and-reward-layer) * [Key Features:](https://docs.arcadia.finance/governance/tokenomics#key-features) * [Why Not Only Use stAAA?](https://docs.arcadia.finance/governance/tokenomics#why-not-only-use-staaa) * [Staking & Unstaking](https://docs.arcadia.finance/governance/tokenomics#staking-and-unstaking) * [Fee Sharing](https://docs.arcadia.finance/governance/tokenomics#fee-sharing) * [Utility Highlights](https://docs.arcadia.finance/governance/tokenomics#utility-highlights) * [Token Distribution](https://docs.arcadia.finance/governance/tokenomics#token-distribution) * [Supply Schedule](https://docs.arcadia.finance/governance/tokenomics#supply-schedule) --- # Treasury Management | Arcadia Finance Protocols holding treasury assets like USDC, WETH, or wstETH can deploy them as concentrated liquidity in established AMM pairs. This generates yield from trading fees while deepening ecosystem liquidity, without requiring the treasury team to actively manage positions. For managing liquidity for your native token, see [Protocol Owned Liquidity](https://docs.arcadia.finance/foundry-intro/foundry-pol) . [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#why-deploy-treasury-liquidity) Why Deploy Treasury Liquidity? ---------------------------------------------------------------------------------------------------------------------------------------- * **Yield on idle assets.** Treasury holdings sitting in a wallet or multisig earn nothing. Deploying them as concentrated liquidity earns trading fees from the underlying AMM pool. * **Ecosystem liquidity.** Deeper liquidity in major pairs reduces slippage for traders and makes the ecosystem more attractive for protocols that depend on liquid markets (e.g., lending vaults, structured products). * **Revenue diversification.** Fee income is independent of token emissions or governance token price. [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#strategies) Strategies ------------------------------------------------------------------------------------------------- #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#active-liquidity-management) Active Liquidity Management Deploy assets into a pair with automated [Rebalancers](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) that actively manage the position: adjusting ranges, optimizing fee capture, and keeping liquidity productive. Earned fees are auto-compounded or claimed to the treasury wallet. #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#hedged-liquidity-provisioning) Hedged Liquidity Provisioning For volatile pairs like WETH/USDC, impermanent loss can be significant. To mitigate this, a treasury can borrow one of the two assets (below 2x leverage) against the LP position, creating a hedge similar to a [pseudo delta neutral](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies) strategy. The debt offsets the directional exposure of the LP, reducing the portfolio's sensitivity to price movements. This comes at the cost of interest on the borrowed amount, but can substantially reduce IL. #### [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#pair-selection-by-risk-profile) Pair Selection by Risk Profile Category Examples IL Profile Yield Profile Correlated WETH/wstETH, cbETH/WETH Low Steady Volatile WETH/USDC, WETH/cbBTC Higher Higher potential Stable USDC/DAI Minimal Lowest Correlated pairs have structurally low IL and predictable returns. Volatile pairs offer higher fee APYs but benefit from hedging. [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#yield) Yield --------------------------------------------------------------------------------------- Yield comes from trading fees earned on the LP position. Staked positions (e.g., staked Aerodrome) earn token emissions rather than trading fees. Earned fees and rewards can be auto-compounded back into the position or claimed to the treasury wallet via [Compounders](https://docs.arcadia.finance/protocol/asset-managers/compounders) and [Yield Claimers](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers) . [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#impermanent-loss) Impermanent Loss ------------------------------------------------------------------------------------------------------------- Concentrated liquidity positions are subject to impermanent loss (IL). When the relative price of the two assets changes, the position's value diverges from simply holding the assets. Rebalancing realizes this IL: the old position is closed and a new one is opened at a new range, locking in whatever divergence has occurred. Yield vs IL depends on: * **Pair type.** Correlated pairs have structurally lower IL. Volatile pairs have higher IL but also higher fee income. * **Range width.** Wider ranges reduce rebalancing frequency and IL but earn less fees. Tighter ranges earn more but rebalance more often. Arcadia's algorithms optimize this tradeoff based on pool characteristics and market conditions. * **Hedging.** Borrowing against the LP position to offset directional exposure reduces IL on volatile pairs. For a detailed breakdown of rebalancing mechanics and costs, see the [Rebalancers deep dive](https://docs.arcadia.finance/deep-dives/rebalancers) and the [cost overview](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#costs-and-fees) . [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-treasury#risks) Risks --------------------------------------------------------------------------------------- Treasury liquidity positions are exposed to: * **Smart contract risk.** See [Audits](https://docs.arcadia.finance/security-and-risk/audits) . * **Market risk and impermanent loss.** Pair selection, range width, and hedging are the primary levers to manage this. * **Interest rate risk**, if hedging with debt, the borrow rate can exceed the IL reduction benefit. * **Liquidation risk**, if hedging with debt. See [Margin Calculations](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) . When no leverage is used, there is no interest rate or liquidation risk. [PreviousProtocol Owned Liquiditychevron-left](https://docs.arcadia.finance/foundry-intro/foundry-pol) [NextDashboardchevron-right](https://docs.arcadia.finance/foundry-intro/foundry-tutorial) Last updated 8 days ago * [Why Deploy Treasury Liquidity?](https://docs.arcadia.finance/foundry-intro/foundry-treasury#why-deploy-treasury-liquidity) * [Strategies](https://docs.arcadia.finance/foundry-intro/foundry-treasury#strategies) * [Yield](https://docs.arcadia.finance/foundry-intro/foundry-treasury#yield) * [Impermanent Loss](https://docs.arcadia.finance/foundry-intro/foundry-treasury#impermanent-loss) * [Risks](https://docs.arcadia.finance/foundry-intro/foundry-treasury#risks) --- # Contract Addresses | Arcadia Finance The Arcadia Protocol is deployed on **Base** (chain ID `8453`), **Optimism** (chain ID `10`), and **Unichain** (chain ID `130`). Most contracts share the same address across all chains. Each sub-page uses per-chain explorer columns to indicate where a contract is deployed — empty cells mean the contract is not available on that chain. [PreviousDeveloperschevron-left](https://docs.arcadia.finance/developers) [NextCore protocolchevron-right](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts) Last updated 21 days ago --- # Fee Rebates | Arcadia Finance [hashtag](https://docs.arcadia.finance/governance/fee-rebates#introduction) Introduction --------------------------------------------------------------------------------------------- As outlined in the [Arcadia Recovery Planarrow-up-right](https://arcadiafinance.notion.site/Arcadia-Recovery-Plan-23e04482afa78034aceecd9897962994) , Arcadia users can redeem Recovery Tokens ($ART) for protocol fees. Fee rebates are denominated in and redeemable for USDC. There are two Fee Rebate redemption mechanisms, active and passive. Active rebates allow for the fastest value redemption, while passive rebates are hands-off and do not require use of the protocol. Recovery Tokens can optionally be swapped for other tokens on third party DEXs ($ART is a standard ERC20 token). Note that Arcadia does not manage these DEXs, neither guarantees liquidity nor price. [hashtag](https://docs.arcadia.finance/governance/fee-rebates#active-fee-rebates) Active Fee Rebates --------------------------------------------------------------------------------------------------------- Active users of the Arcadia protocol can rebate up to 100% of the costs they incur on the following fees: * Yield success Fees: This is the fee charged to users on the yield generated through the protocol. * Fees paid for the Auto-Rebalancer and Auto-Compounder: These are the fees charged to users on the amount swapped when using the automated rebalancing and/or compounding. Active fee rebates can be claimed using unstaked ART. Users can at any time during an epoch claim their fee rebates, whether or not they had unstaked ART at the beginning of the epoch. Users can unstake their ART or acquire it elsewhere at any time during the epoch. ### [hashtag](https://docs.arcadia.finance/governance/fee-rebates#mechanism) Mechanism The accounting and distribution follows a schedule measured in epochs. Each epoch counts 7 days, with a new epoch starting every Monday at 12:00 UTC. 1. During an epoch I, all transactions that generate fees are accounted for in the asset in which the fee is collected. 2. At the end of epoch I, the total amount of fees collected per token and per user is calculated, and all collected tokens are swapped to USDC. 3. Each user is eligible to redeem up to an amount of USDC equivalent to their share of fees collected: If a user generated 10% of the total fees collected for a certain TOKEN, then they will be eligible for 10% of the USDC that was received after swapping all collected TOKEN to USDC. 4. Users have 1 epoch (during epoch II) to redeem their Recovery Tokens for USDC. 5. Non-redeemed fee rebates are not rolled over. After epoch II ends, users will no longer be able to redeem the fee rebates generated during epoch I. Instead, the fee rebates for epoch II will become available for redemption. [hashtag](https://docs.arcadia.finance/governance/fee-rebates#passive-fee-rebates) Passive Fee Rebates ----------------------------------------------------------------------------------------------------------- Recovery Token holders who do not actively use the Arcadia protocol or prefer a hands-off approach can passively redeem their Recovery Tokens for USDC. To do so, holders stake their Recovery Tokens through the Arcadia dApp. The staked balances when USDC is made available to the passive redeem contract are taken into account to calculate the amount of USDC each staker can redeem. As such, it is important to keep ART staked to not miss out on any USDC redemptions. Passive fee redemptions roll over, meaning you do not lose your redemption should you decide not to claim during an epoch. ### [hashtag](https://docs.arcadia.finance/governance/fee-rebates#mechanism-1) Mechanism The accounting and distribution follows the same epochs as the Active Fee Rebates. 1. After epoch II ends, the total amount of non-redeemed USDC from epoch I is calculated. 2. Up to 50% of the remaining USDC is distributed to $ART stakers pro rata their stake: If you hold 15% of the staked Recovery Tokens, you receive 15% of the distributed USDC. 3. Users can at all times stake and unstake their Recovery Tokens. There are no penalties or waiting periods. 4. Users who do not claim during epoch II, will have the ability to claim their USDC at any later time: the balances to claim roll over to the next epoch. [hashtag](https://docs.arcadia.finance/governance/fee-rebates#contract-addresses) Contract Addresses --------------------------------------------------------------------------------------------------------- Token Address Chain Arcadia Recovery Token (ART) 0x9089397444EF32F1777d2A9d0c0886592C8eF449 Base Staked ART 0x3889255C5a9A55137DfdF870a0C30A285978176A Base [PreviousToken Mechanicschevron-left](https://docs.arcadia.finance/governance/tokenomics) [NextProtocolchevron-right](https://docs.arcadia.finance/protocol) Last updated 21 days ago * [Introduction](https://docs.arcadia.finance/governance/fee-rebates#introduction) * [Active Fee Rebates](https://docs.arcadia.finance/governance/fee-rebates#active-fee-rebates) * [Mechanism](https://docs.arcadia.finance/governance/fee-rebates#mechanism) * [Passive Fee Rebates](https://docs.arcadia.finance/governance/fee-rebates#passive-fee-rebates) * [Mechanism](https://docs.arcadia.finance/governance/fee-rebates#mechanism-1) * [Contract Addresses](https://docs.arcadia.finance/governance/fee-rebates#contract-addresses) --- # Flash Actions | Arcadia Finance Flash Actions (or optimistic Actions or flash accounting) expand on the concept of flashloans and are only possible thanks to a unique property of smart contracts: atomicity. Just like with flashloans, each step of the Flash Action must be successful, or the transaction as a whole fails. This allows the Account Owner to temporarily bring the Account into an under-collateralized (or even non-collateralized) state without risk of bad debt for any Creditor. If the Account is not brought back into a healthy state during the transaction, the final health check fails, and thanks to atomicity, the whole transaction fails. This gives Account Owners unprecedented flexibility to manage assets and liabilities. It overall provides a much better user experience, since users only need to do a single transaction to obtain their desired outcome. In a fully permissionless way, they can chain the following actions together in one Flash Action: * A margin Account can be opened for a new Creditor if the new Creditor is approved by the Account Owner. * The Creditor can execute arbitrary logic (e.g., give a flashloan). * The Account Owner can optimistically withdraw assets from the Account. * The Account Owner can transfer assets from their own wallet to the Account or external logic. * The Account Owner can execute arbitrary external logic, using the assets (borrowed, withdrawn, or transferred) to interact with multiple DeFi protocols to swap, stake, claim, etc. * The Account Owner can deposit recipient tokens back into the Account. The only requirement is that the Account is in a healthy state at the very end of the Flash Action. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-852c6ab4aedf4a8725fa6ff71568f443ad057d8f%252Fflash-actions.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=2cf14ec7&sv=2) Flash Actions Flash Actions are a very powerful tool that has no equal in traditional finance. We will list a few examples of how Flash Actions from an Arcadia Account can be used out of the box (the list is far from exhaustive). * Rebalance whole portfolios, swapping a portfolio of n different assets directly to a new portfolio of m different assets. * Refinance liabilities (change to different Creditors) without the need to sell any collateral. * Stake or provide liquidity on approved DeFi protocols. External protocols used in this context must provide a receipt token that is allowed as collateral within the Arcadia Protocol. Examples include providing liquidity on Aave (receiving approved aTokens), depositing assets on Yearn (receiving approved yTokens), etc. * Change ranges for Uniswap V3 LP. Contrary to Uni V2 and similar AMMs, Uni V3 positions are meant to be more actively managed in terms of liquidity ranges. Users who deposit Uni V3 positions in their Arcadia Accounts will be able to change those liquidity ranges without withdrawing their tokens first. * Claim airdrops that depend on address-owned tokens. Arcadia Accounts will feature “flash withdrawals”. This feature can be used by the Account Owner to claim airdrops using assets under collateral within their Arcadia Account, without having to close DeFi positions to withdraw their tokens first. * ... Keep in mind that all of these actions can be done, even if the assets in the Account are used to secure liabilities! [PreviousArcadia DeFi Accountschevron-left](https://docs.arcadia.finance/protocol/arcadia-defi-accounts) [NextArcadia Creditorschevron-right](https://docs.arcadia.finance/protocol/arcadia-creditors) Last updated 21 days ago --- # Protocol | Arcadia Finance [Arcadia DeFi Accountschevron-right](https://docs.arcadia.finance/protocol/arcadia-defi-accounts) [Flash Actionschevron-right](https://docs.arcadia.finance/protocol/flash-actions) [Arcadia Creditorschevron-right](https://docs.arcadia.finance/protocol/arcadia-creditors) [Margin Calculationschevron-right](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) [Liquidationschevron-right](https://docs.arcadia.finance/protocol/liquidations) [Asset Managerschevron-right](https://docs.arcadia.finance/protocol/asset-managers) [Asset Pricingchevron-right](https://docs.arcadia.finance/protocol/asset-pricing) [Feeschevron-right](https://docs.arcadia.finance/protocol/fees) [PreviousFee Rebateschevron-left](https://docs.arcadia.finance/governance/fee-rebates) [NextArcadia DeFi Accountschevron-right](https://docs.arcadia.finance/protocol/arcadia-defi-accounts) Last updated 21 days ago --- # Position Wizard | Arcadia Finance To create a new liquidity position, select the Position Wizard. [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-wizard#quick-setup) Quick Setup ------------------------------------------------------------------------------------------------- Arcadia pre-loads a configuration tailored to your specific requirements, visible in the Default Configuration Preview and selected with Quick Setup. After reviewing the setup, execute the transaction steps with a wallet of your choice to deploy a liquidity position. **Arcadia is fully compatible with Safe multi-sig solutions**. _Safe Wallet: If you access Arcadia through your Gnosis Safe interface, you can queue the transactions straight into your Safe. Make sure to select ‘Safe Wallet’ in the dropdown next to ‘Ready to Execute’. Otherwise, export a Batch Json file to import manually into your multi-sig setup._ ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-a6dcfafc85bba523c0f6ee02f8df0abac9712aae%252Ffoundry-quick.png%3Falt%3Dmedia&width=300&dpr=3&quality=100&sign=6f31dc06&sv=2) [hashtag](https://docs.arcadia.finance/foundry-intro/foundry-wizard#custom-setup) Custom Setup --------------------------------------------------------------------------------------------------- Your setup can be fully customized to your requirements using the Custom Setup flow. * **Arcadia Account:** Choose whether you want to create a new account or use one of your existing Arcadia accounts. If you choose an existing account, old settings will be overridden and tokens in that account converted as appropriate. * **Deposit Assets:** Choose how much of the assets you want to deposit. Deposit in equal amounts for a 50:50 balanced position, using the ‘Equal USD value’ toggle. * **LP Position:** Choose how you want to set up your liquidity position. * **Create New LP:** Create a new position, with preconfigured data provided by Arcadia. * **Import Existing LP:** Import a position you already minted on Uniswap or Aerodrome. * **Migrate Basic LP:** Convert a vAMM position into a clAMM position. If a clAMM pool does not yet exist for your token, a new one will be created. * **Skip LP Creation:** Let Arcadia Asset Managers create a position on your behalf, using your deposited assets and/or your existing position. Creation of the position is automated and optimized, especially useful for time-sensitive launches and multi-sig deployments. * **Automations:** Set up automated strategies to manage your liquidity. * **Rebalancer Strategy:** Choose how you want your positions to be rebalanced. Position ranges are configured by Arcadia on your behalf. * **Auto-Claimer:** Claims rewards and sends it to your account or your wallet. * **Auto-Compounder:** Claims rewards and reinvests them into your position. * **Ready to Execute:** Sign all transaction steps. Use the drop down button to select: * **Smart:** Execute most transactions with one single signature where possible, with complex transactions requiring a dedicated signature. * **Auto:** Execute all transactions one after another, automatically asking for confirmation in your wallet once the previous transaction is completed. * **Manual:** Requires manually clicking to launch the next transaction. * **Safe Wallet:** If you access Arcadia through your Gnosis Safe interface, you can queue the transactions straight into your Safe. Otherwise, export a Batch Json file to import manually into your multi-sig setup. [PreviousDashboardchevron-left](https://docs.arcadia.finance/foundry-intro/foundry-tutorial) [NextGovernancechevron-right](https://docs.arcadia.finance/governance) Last updated 8 days ago * [Quick Setup](https://docs.arcadia.finance/foundry-intro/foundry-wizard#quick-setup) * [Custom Setup](https://docs.arcadia.finance/foundry-intro/foundry-wizard#custom-setup) --- # Developers | Arcadia Finance [Contract Addresseschevron-right](https://docs.arcadia.finance/developers/contract-addresses) [Integrationschevron-right](https://docs.arcadia.finance/developers/integrations) [PreviousRoleschevron-left](https://docs.arcadia.finance/security-and-risk/roles) [NextContract Addresseschevron-right](https://docs.arcadia.finance/developers/contract-addresses) Last updated 21 days ago --- # Circuit Breakers | Arcadia Finance Arcadia uses [Hexagatearrow-up-right](https://www.hexagate.com/) 's monitoring tools to detect suspicious contract deployments and transactions. An automated pause mechanism is set up such that on suspicious events, the whole protocol can be paused minimizing the risk of exploits. [PreviousRisk Managementchevron-left](https://docs.arcadia.finance/security-and-risk/risk) [NextInsurance/Coverchevron-right](https://docs.arcadia.finance/security-and-risk/insurance) Last updated 21 days ago --- # Security & Risk | Arcadia Finance Arcadia uses a multi layered security approach to protect users and the protocol. 1. All code is [audited](https://docs.arcadia.finance/security-and-risk/audits) by multiple parties and underwent a Sherlock auditing contest. 2. A [Risk Framework](https://docs.arcadia.finance/security-and-risk/risk) is developed with industry leading third parties and continuously monitored. 3. [Security breakers](https://docs.arcadia.finance/security-and-risk/circuit-breakers) are in place to protect against malicious actors. 4. User can opt-in for [Insurance](https://docs.arcadia.finance/security-and-risk/insurance) to protect their deposits. For the formal risk model and protocol design rationale, see the [protocol whitepaperarrow-up-right](https://github.com/arcadia-finance/whitepapers/blob/main/main.pdf) . **Disclaimer**: While we take extensive measures to ensure protocol security, users should always understand that no system is 100% immune to potential risks. We recommend users to read our audit reports, our documentations and risk measures. [PreviousFeeschevron-left](https://docs.arcadia.finance/protocol/fees) [NextAuditschevron-right](https://docs.arcadia.finance/security-and-risk/audits) Last updated 21 days ago --- # Roles | Arcadia Finance All permissioned roles use Safe multisig's. The Arcadia protocol has the following roles: * Owner: Can append new Asset Modules and Account versions to the protocol. * Risk Manager: Set per Creditor, can set risk parameters for collateral assets. * Pause Guardian: Can pause the protocol in case of a security breach. [PreviousInsurance/Coverchevron-left](https://docs.arcadia.finance/security-and-risk/insurance) [NextDeveloperschevron-right](https://docs.arcadia.finance/developers) Last updated 21 days ago --- # Insurance/Cover | Arcadia Finance [hashtag](https://docs.arcadia.finance/security-and-risk/insurance#nexus-mutual) Nexus Mutual -------------------------------------------------------------------------------------------------- Arcadia's protocol is covered by [Nexus Mutualarrow-up-right](https://v2.nexusmutual.io/cover/product/156) for comprehensive protection. Coverage can be purchased [through OpenCoverarrow-up-right](https://opencover.com/arcadia) . [hashtag](https://docs.arcadia.finance/security-and-risk/insurance#base-defi-pass) Base DeFi Pass ------------------------------------------------------------------------------------------------------ Arcadia is also included in the [Base DeFi Passarrow-up-right](https://opencover.com/basepass/) through OpenCover. [PreviousCircuit Breakerschevron-left](https://docs.arcadia.finance/security-and-risk/circuit-breakers) [NextRoleschevron-right](https://docs.arcadia.finance/security-and-risk/roles) Last updated 21 days ago * [Nexus Mutual](https://docs.arcadia.finance/security-and-risk/insurance#nexus-mutual) * [Base DeFi Pass](https://docs.arcadia.finance/security-and-risk/insurance#base-defi-pass) --- # Risk Management | Arcadia Finance Each collateral and numeraire pair within the Arcadia Protocol has specific risk values, which influence how assets are supplied and loans are issued. Each asset has a different underlying risk, and it is crucial for users to understand the smart contract security, centralization risk, and market risks. Collateral and numeraire assets are onboarded with carefully designed risk mitigation parameters. [hashtag](https://docs.arcadia.finance/security-and-risk/risk#risk-parameters) Risk Parameters --------------------------------------------------------------------------------------------------- Arcadia Protocol employs three main risk mitigation parameters: 1. **Collateral Factor** 2. **Liquidation Factor** 3. **Supply Caps** These parameters help manage the market risk of supported collateral assets and are used for the [Margin Calculation](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) of Arcadia Accounts. ### [hashtag](https://docs.arcadia.finance/security-and-risk/risk#collateral-factor) Collateral Factor Determines the numeraire amount available as debt for a collateral asset. The factor depends on: * Asset quality * Security risk * Market risk ### [hashtag](https://docs.arcadia.finance/security-and-risk/risk#liquidation-factor) Liquidation Factor Used to: * Determine when a collateral asset will be auctioned to pay off debt * Calculate fair starting prices in auctions The factor depends on: * Asset quality * Volatility relative to numeraire asset ### [hashtag](https://docs.arcadia.finance/security-and-risk/risk#supply-caps) Supply Caps Limits exposure to a single collateral asset or to a single type of asset by defining: * Maximum numeraire debt for a given collateral * Based on the on-chain liquidity of the collateral asset and the risk associated with the asset type. [hashtag](https://docs.arcadia.finance/security-and-risk/risk#detailed-methodology) Detailed Methodology ------------------------------------------------------------------------------------------------------------- For a comprehensive understanding of our risk parameter methodology, [visit our detailed research documentarrow-up-right](https://www.llamarisk.com/research/introducing-arcadiasim) . [hashtag](https://docs.arcadia.finance/security-and-risk/risk#continuous-monitoring) Continuous Monitoring --------------------------------------------------------------------------------------------------------------- We continuously monitor risk parameters to adapt to changing market conditions. Users can access our detailed risk dashboard, powered by LlamaRisk, [herearrow-up-right](https://portal.llamarisk.com/arcadia/overview) . [PreviousAuditschevron-left](https://docs.arcadia.finance/security-and-risk/audits) [NextCircuit Breakerschevron-right](https://docs.arcadia.finance/security-and-risk/circuit-breakers) Last updated 21 days ago * [Risk Parameters](https://docs.arcadia.finance/security-and-risk/risk#risk-parameters) * [Collateral Factor](https://docs.arcadia.finance/security-and-risk/risk#collateral-factor) * [Liquidation Factor](https://docs.arcadia.finance/security-and-risk/risk#liquidation-factor) * [Supply Caps](https://docs.arcadia.finance/security-and-risk/risk#supply-caps) * [Detailed Methodology](https://docs.arcadia.finance/security-and-risk/risk#detailed-methodology) * [Continuous Monitoring](https://docs.arcadia.finance/security-and-risk/risk#continuous-monitoring) --- # Audits | Arcadia Finance At Arcadia, we prioritize the security of our protocol through comprehensive security measures and auditing processes. The DeFi landscape is evolving rapidly and is the primary target of bad actors. We work with the best teams in the security industry and researchers to ensure users' funds at Arcadia maximally protected. We would like to thank [0xladboyarrow-up-right](https://twitter.com/Xc1008Cui) and Lambda from [Trust Securitiesarrow-up-right](https://www.trust-security.xyz/) , [HollaDieWaldfeearrow-up-right](https://twitter.com/HollaWaldfee100) , [alexxanderarrow-up-right](https://twitter.com/__alexxander_) and [bytes032arrow-up-right](https://twitter.com/bytes032) from [Renascensearrow-up-right](https://twitter.com/RenascenceLabs) , [Pashovarrow-up-right](https://twitter.com/pashovkrum) , [Ruhumarrow-up-right](https://code4rena.com/@ruhum) and [carrotsmugglerarrow-up-right](https://code4rena.com/@carrotsmuggler) from the [Pashov Audit Grouparrow-up-right](https://twitter.com/PashovAuditGrp) and [0x52arrow-up-right](https://twitter.com/IAm0x52) together with the many Sherlock Watsons for helping us with security reviews for the protocol. The complete Arcadia V2 contracts are audited by multiple parties and underwent a Sherlock auditing contest. Additionally, asset modules and periphery contracts have been fully audited. The audit reports can be found below: * **Nethermind (Q4 2022 - Q1 2023):** complete codebase Arcadia V1 * **Trust Securities (Q4 2023):** complete codebase Arcadia V2 * **Renascence (Q1 2024):** complete codebase Arcadia V2 * **Pashov Audit Group (Q1 2024):** complete codebase Arcadia V2 * **Sherlock Contest (Q1 2024):** complete codebase Arcadia V2 * **Sherlock Contest - Aerodrome Asset Modules (Q2 2024):** Aerodrome Asset Modules * **Renascence (Q2 2024):** Aerodrome staked Slipstream, Auto-compounder and Tranche Wrapper * **Pashov Group (Q3 2024):** Spot Accounts and Uniswap V4 Asset Module * **Renascence (Q1 2025):** Staking contracts * **Sherlock (Q3 2025):** New Account versions, multichain deployment All completed audit reports can be found in the following Github repository: https://github.com/arcadia-finance/arcadia-finance-audits/tree/main/audits-v2 We strongly recommend users to read our audit reports, our documentation and risk measures. [PreviousSecurity & Riskchevron-left](https://docs.arcadia.finance/security-and-risk) [NextRisk Managementchevron-right](https://docs.arcadia.finance/security-and-risk/risk) Last updated 21 days ago --- # Arcadia Creditors | Arcadia Finance An Arcadia Creditor is a (set of) smart contract(s), that does the accounting of the liabilities between debtors (Margin Accounts that owe the liabilities) and one or more ultimate creditor(s) (the addresses that are owed the liabilities). An example of an Arcadia Creditor is a Lending Pool, where the Arcadia Accounts are the debtors that can borrow funds from the pool, and the Liquidity Providers of the Lending Pool are the ultimate creditor(s). Other examples are perpetual futures contracts, options contracts, escrow services... Basically every financial contract or protocol where a party has, or can have, liabilities can be implemented as an Arcadia Creditor. The liabilities of each Debtor are fully secured by the collateral held in the users' Arcadia Margin Account. [hashtag](https://docs.arcadia.finance/protocol/arcadia-creditors#accounting-liabilities) Accounting Liabilities --------------------------------------------------------------------------------------------------------------------- The Arcadia Creditor must know the Open Position (how much liabilities they owe) of each Margin Account at each point in time. The open position is used for the margin calculations to determine the health state of the Arcadia Account of Debtor. In turn, this guarantees that all liabilities can be paid back to the Creditor. An Arcadia Creditor must denominate these open position in a certain numeraire. This represents the unit of accounting, for example USD, USDC or ETH. The Arcadia Account of the Debtors will use the same numeraire for the margin calculations. [hashtag](https://docs.arcadia.finance/protocol/arcadia-creditors#risk-management) Risk Management ------------------------------------------------------------------------------------------------------- The Creditor must set a [Risk Manager](https://docs.arcadia.finance/security-and-risk/roles) . The Risk manager can be both an EOA or a smart contract. The Risk Manager is responsible for choosing which assets can be used within the Debtors Margin Accounts and for setting the correct [Risk Parameters](https://docs.arcadia.finance/security-and-risk/risk) . For each asset the Risk Managers allows, they have to set the following Parameters: * The Collateral factor * The Liquidation factor * The exposure cap of the asset * The exposure cap of any integrated protocols, such as DEXs The Risk Manager must ensure the credit risk borne by the Creditor remains acceptable. [PreviousFlash Actionschevron-left](https://docs.arcadia.finance/protocol/flash-actions) [NextMargin Calculationschevron-right](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) Last updated 21 days ago * [Accounting Liabilities](https://docs.arcadia.finance/protocol/arcadia-creditors#accounting-liabilities) * [Risk Management](https://docs.arcadia.finance/protocol/arcadia-creditors#risk-management) --- # Deep Dives | Arcadia Finance In-depth technical articles covering the inner workings of the Arcadia Protocol. These complement the higher-level documentation with mathematical derivations, detailed trust model analysis, fee breakdowns, and implementation specifics. [hashtag](https://docs.arcadia.finance/deep-dives#asset-managers) Asset Managers ------------------------------------------------------------------------------------- * [Compounders: Deep Dive](https://docs.arcadia.finance/deep-dives/compounders) — How the immutable, stateless, permissionless Compounder works: pool balance verification, fee rebalancing math, slippage protection, and sandwich attack prevention. * [Rebalancers: Deep Dive](https://docs.arcadia.finance/deep-dives/rebalancers) — How the Rebalancer automates concentrated liquidity position management: trust assumptions, the rebalance() function, Lmax calculation, swap routing, and initiator fees. * [CoW Swapper: Deep Dive](https://docs.arcadia.finance/deep-dives/cow-swapper) — How the CoW Swapper enables trustless, MEV-protected ERC20-to-ERC20 swaps via CoW Protocol batch auctions, with Order Hooks for custom constraints. [hashtag](https://docs.arcadia.finance/deep-dives#protocol-internals) Protocol Internals --------------------------------------------------------------------------------------------- * [Composable Pricing Logic](https://docs.arcadia.finance/deep-dives/composable-pricing-logic) — How Arcadia values complex composed assets on-chain using recursive decomposition through the Registry and Asset Module architecture. [hashtag](https://docs.arcadia.finance/deep-dives#strategies) Strategies ----------------------------------------------------------------------------- * [Delta Neutral Strategies](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies) — The Greeks (Delta, Gamma), True Delta Neutral (leveraged stable pools), Pseudo Delta Neutral (2x leveraged volatile pools), with full Uniswap V2 mathematical derivations. [hashtag](https://docs.arcadia.finance/deep-dives#ecosystem) Ecosystem --------------------------------------------------------------------------- * [Arcadia and Uniswap v4](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4) — What Uniswap v4 hooks mean for traders, LPs, and protocols, and how Arcadia serves as an intelligent Liquidity Management Layer. [PreviousMCP Serverchevron-left](https://docs.arcadia.finance/developers/integrations/mcp-server) [NextDelta Neutral Strategieschevron-right](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies) Last updated 21 days ago * [Asset Managers](https://docs.arcadia.finance/deep-dives#asset-managers) * [Protocol Internals](https://docs.arcadia.finance/deep-dives#protocol-internals) * [Strategies](https://docs.arcadia.finance/deep-dives#strategies) * [Ecosystem](https://docs.arcadia.finance/deep-dives#ecosystem) --- # Compounders | Arcadia Finance Compounders address a critical inefficiency in concentrated liquidity protocols, where yield from liquidity positions is not automatically reinvested. These asset managers transform linear returns into exponential growth by automatically compounding fees. For a deep dive into our Compounders' mathematical and technical intricacies, [read our comprehensive deep dive](https://docs.arcadia.finance/deep-dives/compounders) . ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/compounders#properties) Properties Compounders are: * Immutable. * Non-Custodial but triggering is Permissioned. * The contract relies on economic incentives, with the initiator of the compound earning a small reward. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/compounders#fees) Fees The compounders charges the standard fee on yield earned, see [Fees](https://docs.arcadia.finance/protocol/fees) and may charge a fee on amounts swapped based on the stAAA holdings of the Account Owner. [PreviousAsset Managerschevron-left](https://docs.arcadia.finance/protocol/asset-managers) [NextRebalancerschevron-right](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) Last updated 21 days ago * [Properties](https://docs.arcadia.finance/protocol/asset-managers/compounders#properties) * [Fees](https://docs.arcadia.finance/protocol/asset-managers/compounders#fees) --- # Contact and Support | Arcadia Finance [hashtag](https://docs.arcadia.finance/resources/contact-and-support#community) Community ---------------------------------------------------------------------------------------------- [Discordarrow-up-right](https://discord.gg/PXcr8SEeTH) [Twitter / Xarrow-up-right](https://twitter.com/ArcadiaFi) [Blogarrow-up-right](https://arcadiafinance.medium.com/) [hashtag](https://docs.arcadia.finance/resources/contact-and-support#ecosystem) Ecosystem ---------------------------------------------------------------------------------------------- [Website and Apparrow-up-right](https://arcadia.finance/) [hashtag](https://docs.arcadia.finance/resources/contact-and-support#developers) Developers ------------------------------------------------------------------------------------------------ [Githubarrow-up-right](https://github.com/arcadia-finance) [PreviousBrand Assetschevron-left](https://docs.arcadia.finance/resources/brand-assets) Last updated 21 days ago * [Community](https://docs.arcadia.finance/resources/contact-and-support#community) * [Ecosystem](https://docs.arcadia.finance/resources/contact-and-support#ecosystem) * [Developers](https://docs.arcadia.finance/resources/contact-and-support#developers) --- # Arcadia DeFi Accounts | Arcadia Finance Arcadia Accounts sit at the center of the Arcadia Protocol. They are built to optimise management of assets and financial contracts within DeFi. The Accounts are responsible for the following actions: * They hold their owners assets. * They are the interface to manage assets (either by the owner itself, by automations, by trusted third parties or by any other type of asset manager). * They can be used as margin Accounts, where the total value of the assets held by the Accounts is used to back liabilities issued against the Account. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-afa6cc09bc5ae16fe4d9b2ac12424a4bb3a2a237%252Farcadia-account-overview.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=17a7cc0f&sv=2) Strategy overview [hashtag](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#deployment-and-ownership) Deployment and ownership ----------------------------------------------------------------------------------------------------------------------------- Users can create one or more Arcadia Accounts through the Arcadia Factory. Each Arcadia Account is a separate smart contract, owned by one single user. When creating an Account, the user can specify a number of parameters: * A salt, which can be used to precalculate the Account address or to create a vanity address. * The Account Version, more on that in section [Versioning and Types of Accounts](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#versioning-and-types-of-accounts) . * Optionally, the user can set a Creditor, if they create a Margin Account. Arcadia Accounts are assets of their own and have a single owner. Initially the creator of the Account is also its owner, but ownership can be changed. To keep track of ownership, the Arcadia Factory uses the ERC721 standard, where each ID maps one-to-one with a specific Account. Since the ERC721 standard is used, Arcadia Accounts are composable with existing infrastructure to change ownership, or even to sell Accounts. [hashtag](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#versioning-and-types-of-accounts) Versioning and Types of Accounts --------------------------------------------------------------------------------------------------------------------------------------------- The Arcadia Protocol can work with multiple Account versions. Different implementations of the Account logic can (co)exist and each implementation is uniquely identified with a specific version in the Account Factory. Under certain circumstances, Account Owners can even choose to upgrade their Account to a different version, see [Upgradability](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#upgradability) . There are two main types of Accounts ([Spot Accounts](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#spot-accounts) and [Margin Accounts](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#margin-accounts) ). But versioning is more granular, for each type there can exist multiple versions, for instance to offer new features, or to enable the Account to hold a new asset type of a new ERC standard. ### [hashtag](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#spot-accounts) Spot Accounts Spot Accounts are the simplest type of Accounts, they offer all the main features of an Arcadia DeFi Account except the ability to back liabilities. They can for example not be used to borrow assets against. The advantage of Spot Accounts over margin Accounts is that they are truly permissionless and can hold any asset or asset type. Unlike Margin Accounts, which work with allowlists for the assets they can hold. ### [hashtag](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#margin-accounts) Margin Accounts Margin Accounts are Accounts that can have liabilities to one or more Creditor(s). Current Margin Account have maximally one Creditor per Account, but future versions might be multi-Creditor. The Margin Account mitigates the counterparty risk borne by the Creditor, by guaranteeing that the total value of all assets within the Account is always bigger than the liabilities against the Account (it is over-collateralized). An example of a Creditor is a Lending Pool. The Account Owner can borrow funds from the Lending Pool on the condition that the total value of the assets held by the Account is always bigger than the liabilities against the Account. A more detailed explanation about the margin requirements and calculations can be found on the Page [Margin Calculations and Requirements](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) Since the assets held by the Account serve as collateral backing liabilities, there are some restrictions which assets can held by Margin Accounts. It are the Creditors who choose which assets are allowed as collateral, and set appropriate risk parameters for these assets. ### [hashtag](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#deployed-versions) Deployed Versions The following versions are deployed. V1 versions are available on Base only; V2 versions are deployed on all chains. Version Address Base Optimism Unichain Spot V1 `0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28` [↗arrow-up-right](https://basescan.org/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) Spot V2 `0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442` [↗arrow-up-right](https://basescan.org/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) [↗arrow-up-right](https://uniscan.xyz/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) Margin V1 `0xbea2B6d45ACaF62385877D835970a0788719cAe1` [↗arrow-up-right](https://basescan.org/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) Margin V2 `0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6` [↗arrow-up-right](https://basescan.org/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) [↗arrow-up-right](https://uniscan.xyz/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) [hashtag](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#upgradability) Upgradability ------------------------------------------------------------------------------------------------------- Arcadia Accounts are based on the ERC-1967 standard for proxy contracts. Each Account contract points to a certain Account logic contract. It is the logic contract that implements the features to: deposit/withdraw assets, do flash actions, manage assets, authorise delegations... ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-798879d52ba3eb96c63df89b039c616f9d8c38b2%252Fproxy-accounts.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=d13fe889&sv=2) Upgradability Creditors can determine which Account logic versions are allowed to be used by their Debtors. As such, they can block version with certain features or highly-customized Account logic can be implemented for Creditor-specific versions should this be required. The Account logic is upgradable, enabling existing Accounts to make use of newly introduced features in a new Account version if they wish. **Upgrading Account logic is always on an opt-in basis, it can never be enforced by the Arcadia Protocol.** The Accounts can only be upgraded to a different version if both the Account Owner and the Creditor (if a margin account is opened) accept the specific version. When users upgrade their Accounts, they don't have to migrate any assets or close liabilities and the Accounts keep the same contract address. [PreviousProtocolchevron-left](https://docs.arcadia.finance/protocol) [NextFlash Actionschevron-right](https://docs.arcadia.finance/protocol/flash-actions) Last updated 21 days ago * [Deployment and ownership](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#deployment-and-ownership) * [Versioning and Types of Accounts](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#versioning-and-types-of-accounts) * [Spot Accounts](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#spot-accounts) * [Margin Accounts](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#margin-accounts) * [Deployed Versions](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#deployed-versions) * [Upgradability](https://docs.arcadia.finance/protocol/arcadia-defi-accounts#upgradability) --- # Integrations | Arcadia Finance [Asset Managerschevron-right](https://docs.arcadia.finance/developers/integrations/asset-managers) [Liquidatorschevron-right](https://docs.arcadia.finance/developers/integrations/liquidators) [Creditorschevron-right](https://docs.arcadia.finance/developers/integrations/creditors) [For AI Agentschevron-right](https://docs.arcadia.finance/developers/integrations/ai-agents) [MCP Serverchevron-right](https://docs.arcadia.finance/developers/integrations/mcp-server) [PreviousAsset Managerschevron-left](https://docs.arcadia.finance/developers/contract-addresses/asset-managers) [NextAsset Managerschevron-right](https://docs.arcadia.finance/developers/integrations/asset-managers) Last updated 21 days ago --- # Resources | Arcadia Finance [Brand Assetschevron-right](https://docs.arcadia.finance/resources/brand-assets) [Contact and Supportchevron-right](https://docs.arcadia.finance/resources/contact-and-support) [PreviousCoW Swapper: Deep Divechevron-left](https://docs.arcadia.finance/deep-dives/cow-swapper) [NextBrand Assetschevron-right](https://docs.arcadia.finance/resources/brand-assets) Last updated 21 days ago --- # Merkl Operators | Arcadia Finance [Merklarrow-up-right](https://app.merkl.xyz/) is a widely used reward distribution platform powering dApps such as Aerodrome, Uniswap, Aave, etc. Also Arcadia Accounts can be eligible for said rewards by holding positions that qualify the requirements of a specific Merkl campaign (set up by third parties, not the Arcadia team). The Merkl Operator automates claiming and distribution of the rewards to an address set by the owner of the Arcadia Account. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators#properties) Properties Merkl Operators are: * Immutable. * Non-Custodial but triggering is Permissioned. * The contract relies on economic incentives, with the initiator of the operation charging a fee. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators#fees) Fees The Merkl Operator charges the standard fee on yield earned, see [Fees](https://docs.arcadia.finance/protocol/fees) . [PreviousYield Claimerschevron-left](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers) [NextCoW Swapperchevron-right](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper) Last updated 21 days ago * [Properties](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators#properties) * [Fees](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators#fees) --- # Yield Claimers | Arcadia Finance Yield claimers will periodically claim any pending yield (either trading fees for non staked positions, or staking emissions from staked positions) and send it to a designated recipient, defined by the owner of the Account. This can be the Account, the owner or any third contract. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers#properties) Properties Yield claimers are: * Immutable. * Non-Custodial but triggering is Permissioned. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers#fees) Fees The yield claimers charge the standard fee on yield earned, see [Fees](https://docs.arcadia.finance/protocol/fees) . [PreviousRebalancerschevron-left](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) [NextMerkl Operatorschevron-right](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators) Last updated 21 days ago * [Properties](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers#properties) * [Fees](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers#fees) --- # Asset Pricing | Arcadia Finance The pricing of assets is done via an on-chain append-only Registry. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-aa5cf3dbd736662719113dd60e2823f64b6ab583%252Fregistry.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=be3fec88&sv=2) Registry The Arcadia Registry is not a monolithic smart contract containing all logic. It consists of a main coordinating smart contract (also referred to as The Registry) and multiple append-only Modules. Each Module is a separate smart contract with the pricing logic for specific Oracle implementations or specific Asset types. The Registry keeps mappings of which Modules to use for each asset. Modules can only be appended to the Registry, not removed or overwritten. This ensures that Pricing logic is immutable, but it still gives flexibility to add new assets, or implement more efficient Pricing logic over time. [hashtag](https://docs.arcadia.finance/protocol/asset-pricing#oracle-modules) Oracle Modules ------------------------------------------------------------------------------------------------- The Oracle Module implements the logic to convert the oracle-rate of different oracle technologies into a standardized format. Each different oracle implementation (e.g. Chainlink oracles, Pyth oracles, Uniswap TWAPs...) has its own Oracle Module. [hashtag](https://docs.arcadia.finance/protocol/asset-pricing#asset-modules) Asset Modules ----------------------------------------------------------------------------------------------- Just like Oracle Modules implement the logic to return oracle-rates in a standardized format, Asset Modules will return Asset values in a standardized format. Similar to how each oracle implementation has its own oracle Module, each asset type has its own Asset Module. Next to pricing logic, Asset Modules also store and manage asset specific [risk parameters](https://docs.arcadia.finance/security-and-risk/risk) . Asset Modules can be further divided into two distinct groups: Primary Asset Modules and Derived Asset Modules. ### [hashtag](https://docs.arcadia.finance/protocol/asset-pricing#primary-asset-modules) Primary Asset Modules Primary assets are defined as assets that are not composed of other assets. For example: USDC, wETH and AERO. Primary Assets must be priced using one or more on-chain oracles. ### [hashtag](https://docs.arcadia.finance/protocol/asset-pricing#derived-asset-modules) Derived Asset Modules Derived Assets are defined as assets that are composed of one or more underlying assets (which can be Primary Assets or other Derived Assets). Examples of Derived Assets are liquidity positions of AMMs, staked assets, yield bearing tokens. To value a certain amount of a Derived Asset, the Asset Module has to: 1. Decompose the asset in its underlying assets. 2. Calculate the values of the corresponding underlying asset amounts. 3. Sum the values of its underlying assets. The Asset Module luckily does not have to implement the pricing logic for each Underlying Asset, it can just ask the Arcadia Registry recursively what the values are for each of the Underlying Assets (Step 4 and 9)! This goes on until the underlying asset is not composed of any other assets (also referred to as Primary Assets), and we use an on-chain Oracle to determine its value (Step 6, 11 and 13). Lets use the example of an Aerodrome WETH-USDC pool, that is staked and earns Aero rewards: ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-2fdedb7a6cbb6cfc1dbfbd39e64ca553e7eaa9eb%252Fcomposed-assets.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=1dd40a25&sv=2) Composed Assets The staked position has as underlying assets the Liquidity position and the aero rewards (a Primary Asset). The Liquidity position is further composed of both WETH and USDC (two primary assets). The whole flow to price this asset is as follows: ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-b333a745f18c5fd0132ea4dcff52f5f1a81378d0%252Frecursive-pricing.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=3cbf18ab&sv=2) Recursive Pricing While this recursive process may look complex, only one function per Asset Module (no matter what type of asset) has to be implemented, the conversion of an amount of the composed token into the amounts of its underlying tokens (step 3 and 8). All other steps are orchestrated by the Registry, and had to be implemented just once! [PreviousCoW Swapperchevron-left](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper) [NextFeeschevron-right](https://docs.arcadia.finance/protocol/fees) Last updated 21 days ago * [Oracle Modules](https://docs.arcadia.finance/protocol/asset-pricing#oracle-modules) * [Asset Modules](https://docs.arcadia.finance/protocol/asset-pricing#asset-modules) * [Primary Asset Modules](https://docs.arcadia.finance/protocol/asset-pricing#primary-asset-modules) * [Derived Asset Modules](https://docs.arcadia.finance/protocol/asset-pricing#derived-asset-modules) --- # Arcadia and Uniswap v4 | Arcadia Finance _Source:_ [_Arcadia Finance Blog_arrow-up-right](https://arcadiafinance.notion.site/Arcadia-and-Uniswap-v4-1b404482afa780a78deedc5cdde38b0c) ### [hashtag](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#what-is-uniswap-v4) What is Uniswap v4 Uniswap v4 is the next iteration of the Uniswap Protocol, the leading EVM-based Decentralized Exchange (DEX). Next to serious gas savings, the main difference compared to previous versions is that v4 is a customizable platform. When dev teams want to iterate or modify the Uniswap protocol, they no longer need to fork and modify the Uniswap code base, coming with all its security risks. Instead they can add custom logic on top of v4, or even replace certain parts of the code base. They do this through modular plugins better known as "hooks". Hooks can be built for creating pools, swapping, adding liquidity and/or removing liquidity in any combination. Some examples are: new order types for traders, dynamic fees that react on market conditions, new ways to incentivise liquidity, built-in oracles, different bonding curves, lifecycle management, built-in compliance... In short the possibilities are endless. ### [hashtag](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#v4-for-traders) V4 for Traders Focusing on the traders (swappers) first, v4 will result in overall better execution prices. Different hooks will implement different fee and liquidity dynamics, or have custom bonding curves, optimised for certain token pairs and market conditions. For each market condition and token pair, there will be a combination of optimal v4 pools to swap through. This also means there will be an explosion in the number of pools for each token pair, possibly 100+ pools for the same pair on the same chain (for comparison, in Uniswap v2 there is just a single pool per token pair, or in Uniswap v3 there are only 1 to 3 pools per pair). The beauty of the current state of DeFi is that you as a swapper shouldn't need to know which pools to choose! DEX aggregators like 1inch, Odos, Paraswap... have made it their whole business model to optimize the routing of swaps as efficiently as possible. The new v4 pools offer extra options, resulting in better prices. ### [hashtag](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#v4-for-liquidity-providers) V4 for Liquidity Providers For Liquidity Providers the story is similar, v4 will result in higher yields. Certain hooks will optimize to make providing liquidity in certain market conditions for certain token pairs as capital efficient as possible. Some might give LPs extra liquidity incentives, capture and distribute some MEV etc. So again for each token pair in each market condition there will be interesting high yield opportunities for Liquidity Providers. And likewise, even for the same token pairs there will be 100+ different pools. Again the question arises, how should LPs know which pools to choose and how should they manage and move liquidity, given changing market conditions or changes in portfolio objectives? **This is where Arcadia plays a crucial role. Arcadia is an intelligent Liquidity Management Layer for DEX ecosystems.** Arcadia can be thought of as an aggregator across DEXs for Liquidity Providers, just like Odos is an aggregator across DEXs for traders. There are some differences (swaps are atomic, providing liquidity not etc.), but the aggregator analogy is still a good mental model. As abstraction layer above the DEXs, Arcadia helps Liquidity providers to: * Choose between all the different options based on objective onchain data. * Provide optimised and curated LP strategies for given token pairs and market conditions. * Move liquidity in/out/between different v4 pools. * Automate management of liquidity (auto-compounding, auto-rebalancing, stop-losses...). * Depending on the underlying assets, let users borrow against liquidity positions. * In the future: offer recommendations how to hedge given positions. With Arcadia, Liquidity Providers can enjoy the higher yields Uniswap v4 will bring, without having to worry about the additional complexities. ### [hashtag](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#v4-for-protocols-and-tokens) V4 for Protocols and Tokens Also for protocols, Uniswap v4 will bring novel ways they can incentivise liquidity for their token, or manage protocol owned liquidity. But just like with the traders and LPs, the fact there will be dozens of pools will bring some additional challenges. What if the protocols for instance want to incentivise liquidity on Uniswap v4, without having to pick 'winners' (define per hook how much incentives they get)? With the Arcadia liquidity management layer, protocols will be able to give incentives per unit of liquidity on Uniswap v4, regardless in which hook it ends up. [PreviousComposable Pricing Logicchevron-left](https://docs.arcadia.finance/deep-dives/composable-pricing-logic) [NextCoW Swapper: Deep Divechevron-right](https://docs.arcadia.finance/deep-dives/cow-swapper) Last updated 21 days ago * [What is Uniswap v4](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#what-is-uniswap-v4) * [V4 for Traders](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#v4-for-traders) * [V4 for Liquidity Providers](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#v4-for-liquidity-providers) * [V4 for Protocols and Tokens](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4#v4-for-protocols-and-tokens) --- # Liquidations | Arcadia Finance [hashtag](https://docs.arcadia.finance/protocol/liquidations#overview) Overview ------------------------------------------------------------------------------------ Arcadia's liquidation mechanism is designed to protect both lenders and borrowers by maintaining market stability and minimizing excessive liquidations during volatile market conditions. This mechanism exclusively applies to Arcadia Margin Accounts, as Spot Accounts are not debt-enabled and therefore exempt from liquidation processes. By combining partial liquidations with a Dutch auction mechanism, Arcadia has developed an innovative approach that: * Minimizes the risk of bad debt * Prevents unfair account liquidations * Incentivize third-party participation in price discovery and protocol maintenance [hashtag](https://docs.arcadia.finance/protocol/liquidations#key-concepts) Key Concepts -------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-1.-collateral-value) 1\. Collateral Value Represents the maximum debt an Account can assume based on its assets. Calculated as the sum of individual asset prices multiplied by their respective collateral factors. CV\=∑i\=1n(Pi⋅CFi)CV = \\sum\_{i=1}^{n} (P\_i \\cdot CF\_i)CV\=i\=1∑n​(Pi​⋅CFi​) Where: * CVCVCV: Collateral Value * PiP\_iPi​: Price of asset $i$ * CFiCF\_iCFi​: Collateral Factor of asset $i$ * nnn: Total number of assets ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-2.-liquidation-value) 2\. Liquidation Value Defines the threshold at which an Account becomes eligible for liquidation. Calculated by multiplying each asset's latest price with its specific liquidation factor. LV\=∑i\=1n(Pi⋅LFi)LV = \\sum\_{i=1}^{n} (P\_i \\cdot LF\_i)LV\=i\=1∑n​(Pi​⋅LFi​) Where: * LVLVLV: Liquidation Value * PiP\_iPi​: Price of asset $i$ * LFiLF\_iLFi​: Liquidation Factor of asset $i$ * nnn: Total number of assets ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-3.-margin-metrics) 3\. Margin Metrics * **Used Margin**: The total value of debt drawn by the account, including accrued interest. * **Minimum Margin**: A protocol-imposed threshold ensuring system safety, below which margin positions cannot be created. ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-4.-partial-liquidation) 4\. Partial Liquidation A nuanced approach where only a portion of an Account's position is liquidated, allowing: * Partial debt repayment * Preservation of remaining assets * Reduced risk of total Account destruction ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-5.-dutch-auction-mechanism) 5\. Dutch Auction Mechanism A dynamic pricing model characterized by: * **Starting Price**: (Debt + Liquidation Costs) × Starting Price Multiplier * **Price Decay**: Exponential price reduction * **Auction Duration**: Maximum 8 hours, but most auctions are cleared in 30 to 60 minutes. * **Minimum Price**: Debt × Multiplier ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-6.-liquidation-costs) 6\. Liquidation Costs * **Initiator Fee**: Compensation for liquidation trigger * **Terminator Fee**: Reward for auction settlement * **Lending Pool Liquidation Penalty**: Penalty paid by the liquidated Account ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-7.-account-health-indicators) 7\. Account Health Indicators * **Health Factor**: Liquidation Value ÷ Used Margin HF\=LVUMHF = \\frac{LV}{UM}HF\=UMLV​ Where: * HFHFHF: Health Factor * Ratio > 1: Healthy Account * Ratio ≤ 1: Unhealthy Account * LVLVLV: Liquidation Value * UMUMUM: Used Margin [hashtag](https://docs.arcadia.finance/protocol/liquidations#liquidation-process) Liquidation Process ---------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-1.-liquidation-trigger) 1\. Liquidation Trigger Conditions for Liquidation: * Health Factor drops below 1 * Triggered by: * Automated monitoring systems * Decentralized third-party participants **Starting Price Calculation**: Starting Price = (Outstanding Debt + Liquidation Costs) × Starting Price Multiplier ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-2.-auction-dynamics) 2\. Auction Dynamics * **Price Mechanism**: Exponential decay over time * **Partial Liquidation**: * Liquidators can purchase account portions * Incrementally reduces user's debt * Lowers remaining position's debt ratio ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-3.-auction-termination) 3\. Auction Termination Auction ends when: * Account reaches a healthy state, where the collateral value > used margin, and the liquidator chooses to terminate * Minimum price is reached * Maximum duration (8 hours) is exceeded * All assets in the Account are liquidated ### [hashtag](https://docs.arcadia.finance/protocol/liquidations#id-4.-post-liquidation) 4\. Post-Liquidation * Surplus funds returned to Account Owner * Account remains usable [hashtag](https://docs.arcadia.finance/protocol/liquidations#key-advantages) Key Advantages ------------------------------------------------------------------------------------------------ * Minimized liquidation risk * Fair asset preservation * Decentralized participation * Dynamic price discovery **Disclaimer**: Users should thoroughly understand liquidation mechanisms and associated risks. [hashtag](https://docs.arcadia.finance/protocol/liquidations#liquidation-bots) Liquidation Bots ---------------------------------------------------------------------------------------------------- The mechanism is open to third-party participants who can develop their own bots to act as initiators or terminators or liquidators, and purchase partial account positions during the liquidation process. You can find more information if you are interested in building your own liquidation bot [here](https://docs.arcadia.finance/developers/integrations/liquidators) . [PreviousMargin Calculationschevron-left](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) [NextAsset Managerschevron-right](https://docs.arcadia.finance/protocol/asset-managers) Last updated 21 days ago * [Overview](https://docs.arcadia.finance/protocol/liquidations#overview) * [Key Concepts](https://docs.arcadia.finance/protocol/liquidations#key-concepts) * [1\. Collateral Value](https://docs.arcadia.finance/protocol/liquidations#id-1.-collateral-value) * [2\. Liquidation Value](https://docs.arcadia.finance/protocol/liquidations#id-2.-liquidation-value) * [3\. Margin Metrics](https://docs.arcadia.finance/protocol/liquidations#id-3.-margin-metrics) * [4\. Partial Liquidation](https://docs.arcadia.finance/protocol/liquidations#id-4.-partial-liquidation) * [5\. Dutch Auction Mechanism](https://docs.arcadia.finance/protocol/liquidations#id-5.-dutch-auction-mechanism) * [6\. Liquidation Costs](https://docs.arcadia.finance/protocol/liquidations#id-6.-liquidation-costs) * [7\. Account Health Indicators](https://docs.arcadia.finance/protocol/liquidations#id-7.-account-health-indicators) * [Liquidation Process](https://docs.arcadia.finance/protocol/liquidations#liquidation-process) * [1\. Liquidation Trigger](https://docs.arcadia.finance/protocol/liquidations#id-1.-liquidation-trigger) * [2\. Auction Dynamics](https://docs.arcadia.finance/protocol/liquidations#id-2.-auction-dynamics) * [3\. Auction Termination](https://docs.arcadia.finance/protocol/liquidations#id-3.-auction-termination) * [4\. Post-Liquidation](https://docs.arcadia.finance/protocol/liquidations#id-4.-post-liquidation) * [Key Advantages](https://docs.arcadia.finance/protocol/liquidations#key-advantages) * [Liquidation Bots](https://docs.arcadia.finance/protocol/liquidations#liquidation-bots) --- # Asset Managers | Arcadia Finance [hashtag](https://docs.arcadia.finance/protocol/asset-managers#overview) Overview -------------------------------------------------------------------------------------- An Asset Manager of an Arcadia Account is a privileged role that can, as the name implies, manage the assets of an Account. Their main purpose is to enable a wide range of automation for the owner of the Arcadia Account, without the owner having to give up self-custody of their assets. Each Arcadia Account may have one or more Asset Managers, and only the owner of an Account can add or remove Asset Managers. Asset Managers can perform the following actions: * Deposit assets. * Withdraw assets. * Transfer funds from the Owner. * Execute flash actions (optimistically execute arbitrary logic with the withdrawn/transferred assets). [hashtag](https://docs.arcadia.finance/protocol/asset-managers#types-of-asset-managers) Types of Asset Managers -------------------------------------------------------------------------------------------------------------------- Any Ethereum address, whether a smart contract or an externally owned account, can be set as an Asset Manager. This opens up a wide range of solutions for users with varying trust assumptions. We can roughly define three models in this context: permissionless, permissioned, and custodial. #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers#id-1.-non-custodial-permissionless) 1\. Non-Custodial Permissionless Asset Managers are immutable, trustless smart contracts that can only perform a single action and do not require any additional user input. An example of this is the Compounders that will be described in more detail in this article. #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers#id-2.-non-custodial-permissioned) 2\. Non-Custodial Permissioned Asset Managers can be smart contracts that restrict the actions they can perform to a single purpose, but do require user input. An example would be an Asset Manager to rebalance Liquidity Positions. While the contract can only change the range of a position and not, say, withdraw assets, it might require a permissioned role that only triggers a rebalance when it makes sense. #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers#id-3.-custodial) 3\. Custodial Asset Managers can be EOAs that run strategies as a service for users. While there might be off-chain agreements regarding what these managers can and cannot do, these are not enforced on-chain, and the Asset Managers essentially have full power over the Account. [hashtag](https://docs.arcadia.finance/protocol/asset-managers#implementations-of-asset-managers) Implementations of Asset Managers ---------------------------------------------------------------------------------------------------------------------------------------- Some examples how asset management can be automated with Arcadia Accounts and Asset Managers are: * [Compounding fees](https://docs.arcadia.finance/protocol/asset-managers/compounders) * [Rebalancing portfolios](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) * [Yield Claimers](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers) * [CoW Swapper](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper) * [Merkl Operators](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators) * AI agents * ... Want to build your own Asset Manager for Arcadia Accounts, head over to our [Developer docs](https://docs.arcadia.finance/developers/integrations/asset-managers) . [PreviousLiquidationschevron-left](https://docs.arcadia.finance/protocol/liquidations) [NextCompounderschevron-right](https://docs.arcadia.finance/protocol/asset-managers/compounders) Last updated 21 days ago * [Overview](https://docs.arcadia.finance/protocol/asset-managers#overview) * [Types of Asset Managers](https://docs.arcadia.finance/protocol/asset-managers#types-of-asset-managers) * [Implementations of Asset Managers](https://docs.arcadia.finance/protocol/asset-managers#implementations-of-asset-managers) --- # Fees | Arcadia Finance The protocol can charge the following fees. Yield, earnings and APYs displayed on the front-end take into account activated fees. [hashtag](https://docs.arcadia.finance/protocol/fees#summary) Summary -------------------------------------------------------------------------- Fee Type Amount Notes Reserve factor for interest payments 15% \* Percentage of interests paid which goes towards the protocol Liquidation Penalty On open debt of Accounts, according to: \- Liquidation Initiation 0.12% Paid to the keeper initiating the liquidation \- Liquidation Termination 0.12% Paid to the keeper terminating the liquidation \- Liquidation Penalty 2% Equally split between the protocol and liquidity providers Origination Fee 0% Fee on new debt taken Front-end Swap Fee 0% Fee on swaps executed through the front-end Front-end Position Fee 0% Success fee on positions created and burned through the front-end Yield Success Fee 7.5% Fee on yield generated through the protocol Auto-Rebalancer 0%\*\* Yield success fee on rebalancing Auto-Compounder 0%\*\*\* Yield success fee on compounding \* _This is not the interest rate itself, but the cut on interest payments._ \* \* _Rebalancing may incur other costs such as DEX swap fees and IL._ \* \* \* _Compounding may incur other costs such as DEX swap fees._ [hashtag](https://docs.arcadia.finance/protocol/fees#lending) Lending -------------------------------------------------------------------------- * A fee on interest payments, currently set to 15%. * A share of the liquidation penalty, currently evenly split between the protocol treasury and the liquidity providers. [hashtag](https://docs.arcadia.finance/protocol/fees#front-end) Front-end ------------------------------------------------------------------------------ * A fee on swaps through the front end, currently set to 0%. * A success fee on positions created and burned through the front end, currently set to 0%. * A success fee on yield generated through the protocol. This fee is set to 7.5%. [hashtag](https://docs.arcadia.finance/protocol/fees#asset-managers) Asset Managers ---------------------------------------------------------------------------------------- Depending on the asset manager, the fees and usage limits can vary. For more information, see [Asset Managers](https://docs.arcadia.finance/protocol/asset-managers) . [PreviousAsset Pricingchevron-left](https://docs.arcadia.finance/protocol/asset-pricing) [NextSecurity & Riskchevron-right](https://docs.arcadia.finance/security-and-risk) Last updated 21 days ago * [Summary](https://docs.arcadia.finance/protocol/fees#summary) * [Lending](https://docs.arcadia.finance/protocol/fees#lending) * [Front-end](https://docs.arcadia.finance/protocol/fees#front-end) * [Asset Managers](https://docs.arcadia.finance/protocol/fees#asset-managers) --- # Composable Pricing Logic | Arcadia Finance _Source:_ [_Arcadia Finance Blog_arrow-up-right](https://arcadiafinance.notion.site/Composable-pricing-logic-f7c35dd3308243b484d852b6aff984e3) Borrowing against Staked vAMM USDC/AERO? Possible with Arcadia Finance! But how do we value such complex and composed assets? Spoiler alert, we purposely use Reentrance! Let's dive in! With Arcadia Finance, we have built infrastructure and tooling to manage and collateralise active on-chain assets (composed tokens). In order to use these active assets as collateral, we must know their value on-chain, 24/7. Unfortunately, directly using e.g. Chainlink oracles for these assets is not feasible. There are already 684,243 Liquidity Positions for Uniswap V3 on mainnet alone, these cannot all have their own price feed. Instead, Arcadia relies on the composability of DeFi and uses a recursive process to break down each composed asset in its underlying assets. Before we go into detail how this is done, a brief 101 on what composability actually is. [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#composability) Composability ------------------------------------------------------------------------------------------------------------ ### [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#composed-protocols) Composed protocols Composability in DeFi refers to the ability of different financial protocols to integrate seamlessly and interact atomically with one another. Developers can create new financial products by combining existing protocols, without needing any permissions or modifications of the underlying protocols. It is for this reason that DeFi protocols are sometimes referred to as financial lego blocks. Take as example a lending protocol (e.g. Aave) and a Decentralised exchange (e.g. Uniswap). For both, a WETH - USDC market exists (to borrow one against the other, or to swap one into the other). We can combine both and create a new protocol, which is composed of both underlying protocols, where users can take leveraged positions (e.g. DeFi Saver). ### [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#composed-assets) Composed assets Similarly, tokens (ERC20, ERC721, ERC4626...) can be composed of other tokens. When you deposit two ERC20 tokens in a Uniswap V2 Liquidity pool, you receive LP-tokens (ERC20) in return, representing the total share of liquidity of the pool you own. These can be further deposited in for instance staking contracts, to incentivise Liquidity Providers with additional staking rewards. The staked position is non-fungible (when you stake two equal amounts of LP tokens at different times, a different amount of staking rewards will be earned) and can be represented with an ERC721 token. The resulting staked position could in turn be used by third protocols and so forth (money legos right...). [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#arcadias-approach-simplifying-defi) Arcadia's Approach: Simplifying DeFi -------------------------------------------------------------------------------------------------------------------------------------------------------- All interactions with DeFi protocols can be simplified as the conversion of one set of tokens into another set of tokens. We can use this to abstract any DeFi protocol as a deterministic transformation: f()f()f(), that converts "Token(s) In" into "Token(s) Out". Hence for composed assets, we can use the inverse of this transformation: f−1()f^{-1}()f−1(), to calculate what the underlying "Token(s) In" are, for a given "Token Out". In Arcadia we use this process recursively to break down an asset in its underlying assets, which, in turn, can be further broken down into their underlying assets and so on. The recursion stops when the underlying asset cannot be further broken down. **Example: a staked Aerodrome WETH-USDC pool:** The staked position has as underlying assets the Liquidity position and the AERO rewards (a Primary Asset). The Liquidity position is further composed of both WETH and USDC (two primary assets). [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#arcadia-registry-and-asset-modules) Arcadia Registry and Asset Modules ------------------------------------------------------------------------------------------------------------------------------------------------------ The Arcadia Protocol consists of a main coordinating smart contract (The Arcadia Registry) and multiple append-only Modules. The Arcadia Registry coordinates the recursion to value assets. It knows for each asset which Asset Module to use. Each Asset Module is a separate smart contract, with the pricing logic for a specific Asset type (e.g. a Uniswap V3 Liquidity Position, A-tokens...). To value a certain amount of a composed asset, the Asset Module has to: 1. Decompose the asset in its underlying assets (the inverse transformation f−1()f^{-1}()f−1() as previously defined). 2. Calculate the values of the corresponding underlying asset amounts. 3. Sum the values of its underlying assets. The Asset Module luckily does not have to implement the pricing logic for each Underlying Asset, it can just ask the Arcadia Registry what the values are for each of the Underlying Assets — long live Reentrance! This goes on until the underlying asset is not composed of any other assets (also referred to as Primary Assets), and we use an on-chain Oracle to determine its value. While this recursive process may look complex, only one function per Asset Module (no matter what type of asset) has to be implemented: the conversion f−1()f^{-1}()f−1() of an amount of the composed token into the amounts of its underlying tokens. All other steps are orchestrated by the Registry, and had to be implemented just once! ### [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#benefits) Benefits * No need to duplicate logic (and introduce bugs) when an asset is an underlying asset for multiple composed assets. * Multiple layers of composability add no extra work/complexity. If we can value Uniswap V3, Aave pools and USDC, we can immediately value aUSDC-USDC liquidity pools. * Scales with assets that have a lot of valid combinations of underlying assets (e.g. per two ERC20 tokens there are 4 valid Uniswap V3 pools) since we do not have to add all individual pools. ### [hashtag](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#downsides) Downsides * **Gas usage**: Asset modules have to adhere to a fixed standard, additional overhead in many cases. Only deployable on L2s (post Dencun). Sometimes the same logic/calculations are done redundantly. * **Layering risks**: Every additional underlying asset increases the potential of bugs and rounding errors will multiply with every additional layer. Each Creditor can set a maximum to the number of recursive calls made. To summarise, when we want to add assets of a new protocol, we have to develop a new Asset Module. To value the assets, we just have to implement a single function: the conversion of an amount of the composed token into the amounts of its underlying tokens. In reality Asset Modules do more than pricing assets, they also do some risk management e.g. ensuring that LPs are not over-exposed to certain assets or protocols. [PreviousRebalancers: Deep Divechevron-left](https://docs.arcadia.finance/deep-dives/rebalancers) [NextArcadia and Uniswap v4chevron-right](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4) Last updated 21 days ago * [Composability](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#composability) * [Composed protocols](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#composed-protocols) * [Composed assets](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#composed-assets) * [Arcadia's Approach: Simplifying DeFi](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#arcadias-approach-simplifying-defi) * [Arcadia Registry and Asset Modules](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#arcadia-registry-and-asset-modules) * [Benefits](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#benefits) * [Downsides](https://docs.arcadia.finance/deep-dives/composable-pricing-logic#downsides) --- # Margin Calculations | Arcadia Finance The Margin of an Arcadia Account can roughly be seen as the value of collateral assets that a Debtor must hold in a Margin Account to cover the credit risk of its Creditor(s). It is the value of assets that is "locked" when a Debtor opens a position. [hashtag](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements#margin-requirements) Margin Requirements ---------------------------------------------------------------------------------------------------------------------------------- There are three different account states, as shown in the following figure, depending on the Used Margin of the Account and the risk-adjusted total values of the Account. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-b9a6a9ad6a1f85378e70ac53c3084d2034e2c4fa%252Fhealth-states.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=8bb315c6&sv=2) Margin Account health states ### [hashtag](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements#id-1.-healthy-state) 1\. Healthy state: The Account is in a healthy state if the used margin is smaller than the Collateral Value: um liabilities). If the check fails, the transaction reverts. #### [hashtag](https://docs.arcadia.finance/developers/integrations/asset-managers#flash-action-parameters) Flash Action Parameters * `actionTarget`**:** The contract address where external logic is executed. * `actionData`**:** Encoded data containing: * `withdrawData`: Asset withdrawal details from the Arcadia Account to the actionTarget. * `transferFromOwnerData`: Asset transfer details from the owner to the actionTarget. * `permit`: Permit for the Permit2 transfer. * `signature`: Signature for the Permit2 transfer. * `actionTargetData`: The encoded calldata required to perform the series of contract calls needed to execute a specific action or operation with the assets. #### [hashtag](https://docs.arcadia.finance/developers/integrations/asset-managers#how-chaining-of-calls-works) How Chaining of Calls Works The `flashAction()` function enables chaining by executing a series of tightly coupled operations in a single transaction. Here’s a step-by-step breakdown: 1. **Decoding Input Data:** The function decodes the `actionData` input into its respective components: * Withdrawal details (`withdrawData`) * Transfer details (`transferFromOwnerData`) * Permit details for `Permit2` * Action target logic (`actionTargetData`) 2. **Asset Withdrawal:** Using `_withdraw()`, assets are transferred from the Arcadia Account to the `actionTarget` based on the `withdrawData`. 3. **Direct Transfers:** If `transferFromOwnerData` specifies additional assets, `_transferFromOwner()` transfers them from the owner’s wallet to the `actionTarget`. 4. **Permit-Based Transfers:** If a `signature` and `permit` are provided, `_transferFromOwnerWithPermit()` is called to initiate a `Permit2`\-based asset transfer. 5. **External Logic Execution:** The Asset Manager calls `executeAction()` on the `actionTarget`, passing the `actionTargetData` to interact with external protocols (e.g., swapping tokens, staking). 6. **Deposit Back to Account:** After executing external logic, `_deposit()` transfers the resulting assets back into the Arcadia Account. The `_deposit()` function uses `depositData`, which is returned from the `executeAction()` call on the `actionTarget`, to determine the assets and amounts to deposit. 7. **Health Check (Margin Accounts Only):** The `isAccountUnhealthy()` function ensures the margin account remains solvent. If not, the transaction reverts. [hashtag](https://docs.arcadia.finance/developers/integrations/asset-managers#interfaces-for-asset-managers) Interfaces for Asset Managers ----------------------------------------------------------------------------------------------------------------------------------------------- To interact with the `flashAction()` function, developers must implement the following interfaces: ### [hashtag](https://docs.arcadia.finance/developers/integrations/asset-managers#requirements-for-asset-managers) Requirements for Asset Managers An Asset Manager should implement the following steps to function correctly: 1. **Call** `**flashAction()**` **on the Account:** * The Asset Manager must call the `flashAction()` function on the Arcadia Account. * The input to `flashAction()` includes: * The address of the `actionTarget` contract. * Encoded `actionData`, which must be formatted as follows: 2. **Implement** `**executeAction()**` **in the ActionTarget Contract:** * The `actionTarget` contract must include an `executeAction()` function that: * Accepts `actionTargetData` as input. * Executes all the required logic to perform the desired operation or strategy. * Returns an `ActionData` struct that contains the addresses and amounts of assets to be deposited back into the Arcadia Account. 3. **Handle the Returned Data:** * The `ActionData` struct returned by `executeAction()` is used to call `_deposit()` and finalize the process by returning the assets to the Arcadia Account. [PreviousIntegrationschevron-left](https://docs.arcadia.finance/developers/integrations) [NextLiquidatorschevron-right](https://docs.arcadia.finance/developers/integrations/liquidators) Last updated 21 days ago * [Overview](https://docs.arcadia.finance/developers/integrations/asset-managers#overview) * [Key Features](https://docs.arcadia.finance/developers/integrations/asset-managers#key-features) * [Workflow](https://docs.arcadia.finance/developers/integrations/asset-managers#workflow) * [1\. Setting an Asset Manager](https://docs.arcadia.finance/developers/integrations/asset-managers#id-1.-setting-an-asset-manager) * [2\. Performing a Flash Action](https://docs.arcadia.finance/developers/integrations/asset-managers#id-2.-performing-a-flash-action) * [Interfaces for Asset Managers](https://docs.arcadia.finance/developers/integrations/asset-managers#interfaces-for-asset-managers) * [Requirements for Asset Managers](https://docs.arcadia.finance/developers/integrations/asset-managers#requirements-for-asset-managers) Copy flashAction( address actionTarget, bytes memory actionData ); Copy // Struct with information to pass to and from the actionTarget. struct ActionData { // Array of the contract addresses of the assets. address[] assets; // Array of the IDs of the assets. uint256[] assetIds; // Array with the amounts of the assets. uint256[] assetAmounts; // Array with the types of the assets. uint256[] assetTypes; } interface IActionBase { /** * @notice Calls an external target contract with arbitrary calldata. * @param actionTargetData A bytes object containing the encoded input for the actionTarget. * @return resultData An ActionData struct with the final balances of this actionTarget contract. */ function executeAction(bytes calldata actionTargetData) external returns (ActionData memory); } Copy ( ActionData memory withdrawData, ActionData memory transferFromOwnerData, IPermit2.PermitBatchTransferFrom memory permit, bytes memory signature, bytes memory actionTargetData ) = abi.decode(actionData, (ActionData, ActionData, IPermit2.PermitBatchTransferFrom, bytes, bytes)); --- # CoW Swapper | Arcadia Finance The CoW Swapper enables ERC20-to-ERC20 token swaps within Arcadia Accounts via [CoW Protocolarrow-up-right](https://cow.fi/) 's batch auction mechanism. Combined with Arcadia Flash Actions, it supports a range of automated strategies without assets leaving the Account. For a deep dive into the CoW Swapper's architecture and trust model, [read our comprehensive deep dive](https://docs.arcadia.finance/deep-dives/cow-swapper) . Use cases include: * **Compounding staked positions**: Staking rewards paid in a third token (e.g. OP, ARB, AERO) are swapped back into the pool's underlying tokens and compounded into the liquidity position. The CoW Swapper handles the token swap, the existing [Compounder](https://docs.arcadia.finance/protocol/asset-managers/compounders) handles the rest. * **Take profit**: Account Owners can automatically take a portion of earned yield and swap it into any token of choice (e.g. USDC) rather than compounding everything back into the pool. * **General swaps**: Any ERC20 token held in an Arcadia Account can be swapped to any other ERC20 token, enabling flexible portfolio management. * **Debt repayment**: For leveraged positions, earned yield can be swapped into the debt token and used to repay the loan, gradually deleveraging the position over time. * **Stop losses**: Position assets are swapped when certain price conditions are met, protecting against downside risk. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#properties) Properties ------------------------------------------------------------------------------------------------------ CoW Swapper is: * Immutable. * Non-Custodial but triggering is Permissioned. * The contract relies on CoW Protocol's batch auction for price discovery, with the Initiator earning an optional fee capped by the Account Owner. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#how-it-works) How It Works ---------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-1.-setup) 1\. Setup Only the Account Owner can configure the CoW Swapper. They have to set which address to whitelist as Initiator (can also be themselves), a `maxSwapFee` cap on what the Initiator can charge (can be 0), and which OrderHook contract to use for additional per-account restrictions. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-2.-signing-the-order) 2\. Signing the Order When the Initiator (or the Account Owner themselves) decides a swap should be done (e.g. to compound claimed staking rewards), they start by constructing and signing a valid CoW swap order. This order is then submitted to CoW's order book. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-2e74b0048d71d3b11c0e07b36ba2bd1005fc7287%252Fcow-swapper1.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=6f20249b&sv=2) Order signing flow ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-3.-cow-auction) 3\. CoW Auction The CoW Protocol runs a ['Fair Combinatorial Auction'arrow-up-right](https://arxiv.org/abs/2408.12225) , where solvers compete to fill the order within a set amount of time. The solver that can quote the best price wins the auction and can fill the order. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-806b534fff79a72b2773bc9caac07c511ca577ba%252Fcow-swapper2.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=a947ba59&sv=2) CoW auction ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-4.-settlement) 4\. Settlement The winning solver executes the order on-chain. The solver triggers the transaction via CoW's Flash Loan Router, which initiates a flash action on the Arcadia Account, pulling tokenIn out to the CowSwapper. First, the CowSwapper logic is triggered. The CowSwapper reconstructs the order based on the input data, computes its hash, and stores the hash in transient storage. Next, an Account Owner-defined OrderHook is called. Via this hook the Account Owner can enforce additional, customisable constraints (more on this in the next section). Lastly, the actual swap is settled via CoW's Settlement contract. The settlement contract executes the swap and does a number of checks: * Check that the order has not expired * Check that the order has not been previously filled * Check that the actual execution price was equal to or better than what was specified in the order * Check the order's signature: for the CowSwapper we use [EIP-1271arrow-up-right](https://eips.ethereum.org/EIPS/eip-1271#specification) signatures. The contract checks two things: the hash matches what was just reconstructed from the order parameters, and the signature over that hash came from the Initiator or Account Owner. The hash construction is the core of the trust model. Every field in the order — tokenOut, amountOut, deadline, fee — feeds into the hash that gets verified on-chain. If a solver modified any parameter between the Initiator's submission and settlement, the on-chain reconstruction produces a different hash, the signature check fails, and the transaction reverts. The Initiator commits to specific terms upfront. Those exact terms are what gets executed. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-3c1230cf0908392f7d76f3c56578b857fe79e0b4%252Fcow-swapper3.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=23b83813&sv=2) Settlement flow [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#order-hooks) Order Hooks -------------------------------------------------------------------------------------------------------- Account Owners who want more control can use custom Order Hooks. Examples of what a custom hook can do: **Oracle check.** Verify the solver's output is within acceptable range of an on-chain price, as a second layer of protection on top of solver competition. **Token filters.** Whitelist or blacklist specific assets. Stops the Initiator from swapping into tokens the owner hasn't approved. **Rate limits.** Cap swap frequency or maximum size per time window, useful for strategies that should execute gradually rather than all at once. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#trust-assumptions) Trust Assumptions -------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#initiators) Initiators Initiators can decide when to swap tokens, the tokenIn and tokenOut, the amountIn and the minimum amountOut. The Account Owner can easily restrict the tokenIn and tokenOut via the Order Hook: * Whitelist/blacklist, or fix tokenIn and/or tokenOut * Set minimum cooldown periods For the minimum amountOut, the decentralised batch auction provides a safety net. Even with a low minimum amountOut, the batch auction guarantees a competitive actual price. Account Owners can additionally use third-party oracles to set a minimum value via a custom Order Hook. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#solvers) Solvers Solvers cannot modify anything in the order. If they change any field of the order, or skip certain steps such as the flash loan or hook calls, the on-chain calculated hash will not match the signature. If the auction mechanism fails or solvers collude, the worst case is that the minimum amountOut specified by the Initiator is what gets quoted. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#fees) Fees ------------------------------------------------------------------------------------------ The Initiator can charge a fee: a percentage of the tokenOut received, where the percentage is set per order but always capped by the `maxSwapFee` configured by the Account Owner. CoW Protocol charges gas costs indirectly by factoring them into the price quoted for the swap. For more information on protocol fees, see [Fees](https://docs.arcadia.finance/protocol/fees) . [PreviousMerkl Operatorschevron-left](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators) [NextAsset Pricingchevron-right](https://docs.arcadia.finance/protocol/asset-pricing) Last updated 21 days ago * [Properties](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#properties) * [How It Works](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#how-it-works) * [1\. Setup](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-1.-setup) * [2\. Signing the Order](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-2.-signing-the-order) * [3\. CoW Auction](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-3.-cow-auction) * [4\. Settlement](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#id-4.-settlement) * [Order Hooks](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#order-hooks) * [Trust Assumptions](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#trust-assumptions) * [Initiators](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#initiators) * [Solvers](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#solvers) * [Fees](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper#fees) --- # CoW Swapper: Deep Dive | Arcadia Finance _Source:_ [_Arcadia Finance Blog_arrow-up-right](https://arcadiafinance.notion.site/CoW-Swapper-30d04482afa7803392e8c53d26af1cde) In this post we will outline what the CowSwapper does, what the trust assumptions are, and how it works under the hood. The CowSwapper enables trustless, MEV-protected ERC20-to-ERC20 swaps, while assets remain deployed as collateral inside an Arcadia Account. It can be used for compounding staked positions, auto-repaying debt, stop losses and much more! [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#why-you-need-the-cowswapper) Why you need the CowSwapper --------------------------------------------------------------------------------------------------------------------------- Let's first quickly go over the existing Arcadia automations: the [Compounder](https://docs.arcadia.finance/protocol/asset-managers/compounders) and [Rebalancer](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) . Both are for managing DEX liquidity positions and the names are self-explanatory: the Compounder adds fees collected in the underlying tokens of the pool to the position, while the Rebalancer changes the range of the liquidity position. They are triggered by an external initiator, but can be trustless. The smart contracts enforce that the pool is not manipulated, that swaps are executed without extracting assets or excessive slippage, and that a minimum amount of liquidity is minted after the compound or rebalance. Both the Rebalancer and Compounder can do trustless swaps, since they rely on information from the pool itself. They are however limited to the two tokens of the DEX pool; the same mechanism cannot be generalised to swap between any two ERC20 tokens. For many use cases we need to swap to and from third tokens as well. Staking rewards are often paid in a third token (e.g. OP, ARB, AERO). Taking profit might mean swapping yield into a stablecoin. Repaying debt requires converting into the borrowed asset. For these third-token swaps we still want the same guarantees: trustless execution, minimal slippage, and protection against MEV. One approach would be to rely on price oracles to calculate minimum output amounts on-chain. But this only works for token pairs where oracles are already configured — it does not generalise to any-to-any token swaps. The solution is an integration with CoW Protocol. The initiator still triggers the swap, but the actual execution is delegated to CoW Protocol's batch auction. Solvers compete to offer the best price, and the winning solver settles the trade. This guarantees competitive rates while providing MEV protection, since CoW Protocol settles trades off-chain in batches rather than exposing them to the public mempool. Additionally, CoW Protocol allows users to execute arbitrary logic before or after the swap. This means that swaps can happen within Arcadia Flash Actions: assets can be swapped while they continue to serve as collateral. Nothing needs to be withdrawn by the Account Owner first, no debt needs to be repaid first. One token leaves and the second token enters in a single transaction, and the Account's health is never at risk. [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#use-cases) Use Cases --------------------------------------------------------------------------------------- Combining CoW Protocol swaps with Arcadia Flash Actions unlocks a number of features: * **Compounding staked positions**: Staking rewards (paid in a third token like OP, ARB, or AERO) are automatically swapped back into the pool's underlying tokens and compounded into the liquidity position. The CowSwapper handles the third-token swap, the existing Compounder handles the rest. * **Take profit in any token of choice**: Account Owners can automatically take a portion of their earned yield and swap it into any token they prefer (e.g. USDC) rather than compounding everything back into the pool. * **General ERC20-to-ERC20 swaps**: Any ERC20 token held in an Arcadia Account can be swapped to any other ERC20 token via CoW Protocol, enabling flexible portfolio management without ever leaving the Account. * **Repay debt with yield**: For leveraged positions, earned yield can be automatically swapped into the debt token and used to repay the loan, gradually deleveraging the position over time. * **Stop losses**: Automatically swap a position's assets when certain price conditions are met, protecting against downside risk. [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#how-it-works) How it works --------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#id-0.-setup) 0\. Setup Only the Account Owner can configure the CoW Swapper. They have to set which address to whitelist as Initiator, a `maxSwapFee` cap on what the Initiator can charge (can be 0), and which OrderHook contract to use for additional per-account restrictions. ### [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#id-1.-signing-the-order) 1\. Signing the order When the Initiator (or the Account Owner themselves) decides a swap should be done (e.g. to compound claimed staking rewards), they start by constructing and signing a valid CoW swap order. This order is then submitted to CoW's order book. ### [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#id-2.-cow-auction) 2\. CoW Auction The CoW Protocol runs a ['Fair Combinatorial Auction'arrow-up-right](https://arxiv.org/abs/2408.12225) , where solvers compete to fill the order within a set amount of time. The solver that can quote the best price wins the auction and can fill the order. ### [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#id-3.-settlement) 3\. Settlement The winning solver executes the order on-chain. The solver triggers the transaction via CoW's Flash Loan Router, which initiates a flash action on the Arcadia Account, pulling tokenIn out to the CowSwapper. First, the CowSwapper logic is triggered. The CowSwapper reconstructs the order based on the input data, computes its hash, and stores the hash in transient storage. Next, a user-defined OrderHook is called. Via this hook the user can enforce additional, highly customisable constraints (more on this in the next section). Lastly, the actual swap is settled via CoW's Settlement contract. The settlement contract executes the swap and does a number of checks: * Check that the order has not expired * Check that the order has not been previously filled * Check that the actual execution price was equal to or better than what was specified in the order * Check the order's signature: for the CowSwapper we use [EIP-1271arrow-up-right](https://eips.ethereum.org/EIPS/eip-1271#specification) signatures. The contract checks two things: the hash matches what was just reconstructed from the order parameters, and the signature over that hash came from the Initiator or Account Owner. The hash construction is the core of the trust model. Every field in the order — tokenOut, amountOut, deadline, fee — feeds into the hash that gets verified on-chain. If a solver modified any parameter between the Initiator's submission and settlement, the on-chain reconstruction produces a different hash, the signature check fails, and the transaction reverts. The Initiator commits to specific terms upfront. Those exact terms are what gets executed. [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#order-hooks) Order Hooks ------------------------------------------------------------------------------------------- Account Owners who want more control can use custom Order Hooks. Some examples of what a custom hook can do: **Oracle check.** Verify the solver's output is within acceptable range of an on-chain price, as a second layer of protection on top of solver competition. **Token filters.** Whitelist or blacklist specific assets. Stops the Initiator from swapping into tokens the owner hasn't approved. **Rate limits.** Cap swap frequency or maximum size per time window, useful for strategies that should execute gradually rather than all at once. [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#trust-assumptions) Trust Assumptions ------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#initiators) Initiators Initiators can decide when to swap tokens, the tokenIn and tokenOut, the amountIn and the minimum amountOut. The Account Owner can easily restrict the tokenIn and tokenOut via the Order Hook: * Whitelist/blacklist, or fix tokenIn and/or tokenOut * Set minimum cooldown periods For the minimum amountOut, the decentralised batch auction provides a safety net. Even with a very low minimum amountOut, the batch auction should guarantee a competitive actual price. Account Owners can additionally use third-party oracles to set a minimum value via a custom Order Hook. ### [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#solvers) Solvers Solvers cannot modify anything in the order. If they change any field of the order, or skip certain steps such as the flash loan or hook calls, the on-chain calculated hash will not match the signature. If the auction mechanism fails or solvers collude, the worst case is that the minimum amountOut specified by the Initiator is what gets quoted. [hashtag](https://docs.arcadia.finance/deep-dives/cow-swapper#overview-fees-and-costs) Overview fees & costs ----------------------------------------------------------------------------------------------------------------- The Initiator can charge a fee: a percentage of the tokenOut received, where the percentage is set per order but always capped by the `maxSwapFee` configured by the Account Owner. CoW Protocol charges the user gas costs indirectly by factoring them into the price quoted for the swap. [PreviousArcadia and Uniswap v4chevron-left](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4) [NextResourceschevron-right](https://docs.arcadia.finance/resources) Last updated 21 days ago * [Why you need the CowSwapper](https://docs.arcadia.finance/deep-dives/cow-swapper#why-you-need-the-cowswapper) * [Use Cases](https://docs.arcadia.finance/deep-dives/cow-swapper#use-cases) * [How it works](https://docs.arcadia.finance/deep-dives/cow-swapper#how-it-works) * [0\. Setup](https://docs.arcadia.finance/deep-dives/cow-swapper#id-0.-setup) * [1\. Signing the order](https://docs.arcadia.finance/deep-dives/cow-swapper#id-1.-signing-the-order) * [2\. CoW Auction](https://docs.arcadia.finance/deep-dives/cow-swapper#id-2.-cow-auction) * [3\. Settlement](https://docs.arcadia.finance/deep-dives/cow-swapper#id-3.-settlement) * [Order Hooks](https://docs.arcadia.finance/deep-dives/cow-swapper#order-hooks) * [Trust Assumptions](https://docs.arcadia.finance/deep-dives/cow-swapper#trust-assumptions) * [Initiators](https://docs.arcadia.finance/deep-dives/cow-swapper#initiators) * [Solvers](https://docs.arcadia.finance/deep-dives/cow-swapper#solvers) * [Overview fees & costs](https://docs.arcadia.finance/deep-dives/cow-swapper#overview-fees-and-costs) --- # Asset Managers | Arcadia Finance [hashtag](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#compounders) Compounders ----------------------------------------------------------------------------------------------------------------- The [Compounder](https://docs.arcadia.finance/protocol/asset-managers/compounders) will act as an Asset Manager for Arcadia Accounts. It will allow third parties to trigger the compounding functionality for non staked Liquidity Positions in the Account. Contract Address Base Optimism Unichain [CompounderSlipstreamV1arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderSlipstream.sol) `0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7` [↗arrow-up-right](https://basescan.org/address/0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7) [↗arrow-up-right](https://uniscan.xyz/address/0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7) [CompounderSlipstreamV2arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderSlipstream.sol) `0x35e59448C7145482E56212510cC689612AB4F61f` [↗arrow-up-right](https://basescan.org/address/0x35e59448C7145482E56212510cC689612AB4F61f) [CompounderUniswapV3arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderUniswapV3.sol) `0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3` [↗arrow-up-right](https://basescan.org/address/0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3) [↗arrow-up-right](https://uniscan.xyz/address/0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3) [CompounderUniswapV4arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderUniswapV4.sol) `0xAA95c9c402b195D8690eCaea2341a76e3266B189` [↗arrow-up-right](https://basescan.org/address/0xAA95c9c402b195D8690eCaea2341a76e3266B189) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xAA95c9c402b195D8690eCaea2341a76e3266B189) [↗arrow-up-right](https://uniscan.xyz/address/0xAA95c9c402b195D8690eCaea2341a76e3266B189) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#rebalancers) Rebalancers ----------------------------------------------------------------------------------------------------------------- The [Rebalancer](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) will act as an Asset Manager for Arcadia Accounts. It will allow third parties to trigger the rebalancing functionality for Liquidity Positions in the Account. Contract Address Base Optimism Unichain [RebalancerSlipstreamV1arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerSlipstream.sol) `0x5802454749cc0c4A6F28D5001B4cD84432e2b79F` [↗arrow-up-right](https://basescan.org/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) [↗arrow-up-right](https://uniscan.xyz/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) [RebalancerSlipstreamV2arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerSlipstream.sol) `0x953Ff365d0b562ceC658dc46B394E9282338d9Ea` [↗arrow-up-right](https://basescan.org/address/0x953Ff365d0b562ceC658dc46B394E9282338d9Ea) [RebalancerUniswapV3arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerUniswapV3.sol) `0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd` [↗arrow-up-right](https://basescan.org/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) [↗arrow-up-right](https://uniscan.xyz/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) [RebalancerUniswapV4arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerUniswapV4.sol) `0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0` [↗arrow-up-right](https://basescan.org/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) [↗arrow-up-right](https://uniscan.xyz/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#yield-claimers) Yield Claimers ----------------------------------------------------------------------------------------------------------------------- The Yield Claimer will act as an Asset Manager for Arcadia Accounts. It will allow third parties to Claim yield or staking rewards from Liquidity Positions in the Account, and send it to a designated recipient. Contract Address Base Optimism Unichain [YieldClaimerSlipstreamV1arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerSlipstream.sol) `0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba` [↗arrow-up-right](https://basescan.org/address/0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba) [↗arrow-up-right](https://uniscan.xyz/address/0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba) [YieldClaimerSlipstreamV2arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerSlipstream.sol) `0xc8bF4B2c740FF665864E9494832520f18822871C` [↗arrow-up-right](https://basescan.org/address/0xc8bF4B2c740FF665864E9494832520f18822871C) [YieldClaimerUniswapV3arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerUniswapV3.sol) `0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16` [↗arrow-up-right](https://basescan.org/address/0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16) [↗arrow-up-right](https://uniscan.xyz/address/0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16) [YieldClaimerUniswapV4arrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerUniswapV4.sol) `0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4` [↗arrow-up-right](https://basescan.org/address/0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4) [↗arrow-up-right](https://uniscan.xyz/address/0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#cow-swapper) CoW Swapper ----------------------------------------------------------------------------------------------------------------- The [CoW Swapper](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper) enables trustless, MEV-protected ERC20-to-ERC20 swaps within Arcadia Accounts via CoW Protocol batch auctions. Contract Address Base Optimism Unichain [CoW Swapperarrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cow-swapper/CowSwapper.sol) `0xc928013A219EC9F18dE7B2dee6A50Ba626811854` [↗arrow-up-right](https://basescan.org/address/0xc928013A219EC9F18dE7B2dee6A50Ba626811854) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#merkl-operators) Merkl Operators ------------------------------------------------------------------------------------------------------------------------- The [Merkl Operator](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators) automatically claim Merkl rewards and send them to a receiver, set by the Account Owner. Contract Address Base Optimism Unichain [Merkl Operatorarrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/merkl-operator/MerklOperatorBase.sol) `0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6` [↗arrow-up-right](https://basescan.org/address/0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6) [↗arrow-up-right](https://uniscan.xyz/address/0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6) [PreviousCreditorschevron-left](https://docs.arcadia.finance/developers/contract-addresses/creditors) [NextIntegrationschevron-right](https://docs.arcadia.finance/developers/integrations) Last updated 21 days ago * [Compounders](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#compounders) * [Rebalancers](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#rebalancers) * [Yield Claimers](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#yield-claimers) * [CoW Swapper](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#cow-swapper) * [Merkl Operators](https://docs.arcadia.finance/developers/contract-addresses/asset-managers#merkl-operators) --- # MCP Server | Arcadia Finance The [Arcadia MCP Serverarrow-up-right](https://github.com/arcadia-finance/mcp-server) enables AI agents to interact with the Arcadia Protocol through the [Model Context Protocolarrow-up-right](https://modelcontextprotocol.io/) . It supports reading protocol data and building unsigned transactions for LP management, borrowing, deposits, and more. Supported networks: **Base** (8453) and **Unichain** (130). [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#setup) Setup ------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#remote-recommended) Remote (recommended) No installation required. Point your MCP client to the hosted server: Copy https://mcp.arcadia.finance/mcp **Claude Code:** Copy claude mcp add arcadia-finance --transport http https://mcp.arcadia.finance/mcp **Claude Desktop / Cursor / Windsurf:** Copy { "mcpServers": { "arcadia-finance": { "url": "https://mcp.arcadia.finance/mcp" } } } ### [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#local-via-npx) Local (via npx) Running locally allows you to provide your own RPC endpoints and use the dev signing tool. **Claude Code:** **Claude Desktop / Cursor / Windsurf:** ### [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#environment-variables) Environment Variables Variable Required Description `RPC_URL_BASE` No Base RPC endpoint (falls back to public RPC) `RPC_URL_UNICHAIN` No Unichain RPC endpoint (falls back to public RPC) `PK` No Private key for the `dev.send` tool (development only) [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#available-tools) Available Tools --------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#read-tools) Read Tools Tool Description `read_account_info` Health factor, collateral, debt, positions, liquidation price `read_account_history` Historical account value tracking `read_account_pnl` Yield and P&L data `read_assets` Supported collateral with addresses, types, decimals, USD pricing `read_wallet_balances` ERC20 and ETH balances for any address `read_wallet_allowance` Check token approvals before deposits `read_points` Wallet points balance or leaderboard `read_pools` TVL, APY, utilization, liquidity, historical APY trends `read_strategy_list` LP strategies with APY, underlying assets, pool info `read_strategy_recommendation` Rebalancing suggestions for an account `read_guides` Documentation on automation, strategy selection, templates ### [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#write-tools) Write Tools All write tools return unsigned transactions (`{ to, data, value, chainId }`). They do not sign or broadcast. Tool Description `write_wallet_approve` Grant token spending permissions `write_account_create` Deploy a new Arcadia account `write_account_deposit` Deposit assets into an account `write_account_withdraw` Withdraw assets from an account `write_account_borrow` Borrow from a lending pool `write_account_repay` Repay debt `write_account_add_liquidity` Flash-action: deposit + swap + mint LP position `write_account_remove_liquidity` Remove liquidity from a position `write_account_close` Atomically burn position + swap + repay `write_account_swap` Token swap within an account `write_account_deleverage` Sell collateral to repay debt atomically `write_account_stake` Stake LP positions for rewards `write_asset_manager_set` Enable an asset manager on an account `write_asset_manager_configure` Configure rebalancing/compounding parameters ### [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#development-tools) Development Tools Tool Description `dev.send` Sign and broadcast a transaction using a local private key (requires `PK` env var, development only) [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#transaction-signing) Transaction Signing ----------------------------------------------------------------------------------------------------------------------- The MCP server returns unsigned transactions only. To execute them in production, pass the transaction object to your signing infrastructure: * **MPC wallets**: Fireblocks, Dfns, Turnkey * **Smart accounts**: Safe, Biconomy * **Embedded wallets**: Privy, Dynamic * **Client-side**: viem or ethers For local development and testing, use the `dev.send` tool with the `PK` environment variable. [hashtag](https://docs.arcadia.finance/developers/integrations/mcp-server#skills) Skills --------------------------------------------------------------------------------------------- The MCP server repository includes [skillsarrow-up-right](https://github.com/arcadia-finance/mcp-server/tree/main/skills) for Claude Code that provide domain knowledge about Arcadia workflows, concentrated liquidity management, asset manager patterns, and more. Install them by symlinking into your skills directory: Once installed, Claude Code can reference these skills when helping you interact with the protocol. [PreviousFor AI Agentschevron-left](https://docs.arcadia.finance/developers/integrations/ai-agents) [NextDeep Diveschevron-right](https://docs.arcadia.finance/deep-dives) Last updated 16 days ago * [Setup](https://docs.arcadia.finance/developers/integrations/mcp-server#setup) * [Remote (recommended)](https://docs.arcadia.finance/developers/integrations/mcp-server#remote-recommended) * [Local (via npx)](https://docs.arcadia.finance/developers/integrations/mcp-server#local-via-npx) * [Environment Variables](https://docs.arcadia.finance/developers/integrations/mcp-server#environment-variables) * [Available Tools](https://docs.arcadia.finance/developers/integrations/mcp-server#available-tools) * [Read Tools](https://docs.arcadia.finance/developers/integrations/mcp-server#read-tools) * [Write Tools](https://docs.arcadia.finance/developers/integrations/mcp-server#write-tools) * [Development Tools](https://docs.arcadia.finance/developers/integrations/mcp-server#development-tools) * [Transaction Signing](https://docs.arcadia.finance/developers/integrations/mcp-server#transaction-signing) * [Skills](https://docs.arcadia.finance/developers/integrations/mcp-server#skills) Copy claude mcp add arcadia-finance -- npx -y @arcadia-finance/mcp-server Copy { "mcpServers": { "arcadia-finance": { "command": "npx", "args": ["-y", "@arcadia-finance/mcp-server"], "env": { "RPC_URL_BASE": "https://base-mainnet.g.alchemy.com/v2/" } } } } Copy const hash = await walletClient.sendTransaction(tx); Copy ln -s /path/to/mcp-server/skills/ ~/.claude/skills/ --- # Rebalancers | Arcadia Finance Rebalancers manage concentrated liquidity positions dynamically, solving the challenge of maintaining optimal liquidity ranges in rapidly changing market conditions. They automatically adjust position ranges to maximize fee-earning. Detailed insights into our Rebalancer's innovative approach can be found in [our in-depth technical deep dive](https://docs.arcadia.finance/deep-dives/rebalancers) . [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#properties) Properties ------------------------------------------------------------------------------------------------------ Rebalancers are: * Immutable. * Non-Custodial but triggering is Permissioned. * The contract relies on economic incentives, with the initiator of the rebalance earning a small reward. A unique feature of Arcadia's Rebalancers is the innovative Hook structure. This extensible design allows account owners to implement custom logic and additional checks for their rebalancing strategies. The Hook system is open for development by both protocol users and third-party developers. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#strategies) Strategies ------------------------------------------------------------------------------------------------------ Rebalancing is always a tradeoff between the opportunity cost of being out of range and the costs of rebalancing the position. Finding the optimal strategy that determines when to rebalance, and which new lower and upper price to use, is a complex problem to solve, and it depends on multiple factors: * Type of liquidity pool (stable pool, correlated assets, volatile assets…) * Market conditions (bullish, bearish, flat) * Objectives of the position owner * Chain conditions e.g. gas price * … The Rebalancer is made in such a way that it works with any rebalance strategy. The main logic is strategy agnostic: it takes as input an old position, the new upper price and the new lower price. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#trust-assumptions) Trust Assumptions -------------------------------------------------------------------------------------------------------------------- The Rebalancer is a smart contracts that can only perform a single atomic action (rebalancing CLPs), it never holds assets. But it does require input from a permissioned (whitelisted by the Owner, not Arcadia) user, further called the Initiator. ![Initiator](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Fgit-blob-90cd95dea32103436d18cfaa2408f70e8e837dde%252Finitiator.png%3Falt%3Dmedia&width=300&dpr=3&quality=100&sign=f635a6ba&sv=2) The initiator has to call the Rebalancer contract and has to determine: * When to rebalance * The range of the new Liquidity Position A malicious initiator can still only rebalance via the Rebalancer, while it is a trusted role, they can never steal funds or Liquidity from the Account Owner. The worst a malicious/incompetent Rebalancer can do, is trigger Rebalances at bad moments and move liquidity to non-optimal ranges, resulting in value lost due to swap fees, slippage and opportunity cost. But they can never “rug” the assets of an Account. Since Initiators can be revoked/replaced at any time by the Account Owner, they are incentivised to rebalance optimally, to keep earning fees for their services. The Rebalancer is permissioned, but that does not mean it is centralised. Each Account Owner can choose if they enable the Rebalancer at all. And if they do, they can choose who they set as initiator. Different initiators can for instance run different rebalance strategies, or ask different fee amounts for their services. [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#rebalancing-limits-and-economic-filters) Rebalancing Limits and Economic Filters ---------------------------------------------------------------------------------------------------------------------------------------------------------------- To ensure economic sustainability and prevent abuse, the rebalancer implements a multi-tier filtering system that evaluates positions before executing rebalances. This system balances profitability for the protocol with quality service for users, allowing new users to try out the rebalancer without committing capital while preventing abuse. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#decision-logic) Decision Logic When a position meets its strategy-based rebalancing criteria (e.g., price moved out of range), it passes through the following checks **in order**. If any check passes, the position is rebalanced immediately: #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#id-1.-whitelist-bypass) 1\. Whitelist Bypass Certain account owners (VIP users, protocol partners, protocol-owned liquidity) are whitelisted for unlimited rebalancing without any restrictions. #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#id-2.-gas-based-profitability-check) 2\. Gas-based Profitability Check The protocol evaluates whether the expected revenue from pending fees exceeds the estimated gas cost by a factor of 2. Positions with significant accumulated fees get gas-sponsored rebalances regardless of rate limits. **Calculation:** * Gas cost = 4,000,000 gas units × current gas price × ETH price (USD) * Expected revenue = pending fees (USD) × initiator fee percentage * Required: revenue ≥ 2 × gas cost #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#id-3.-large-position-threshold-usd50-000-usd) 3\. Large Position Threshold (≥ $50,000 USD) High-value positions (≥ $50,000 USD in total liquidity) are always rebalanced, regardless of pending fees or rate limits. The total USD value is computed from the liquidity amounts of both tokens at current market prices. #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#id-4.-rate-limiting-with-staaa-token-benefits) 4\. Rate Limiting with stAAA Token Benefits For positions that don't meet the above criteria, rebalancing is subject to usage quotas. **Base Quota (everyone gets this):** * 1 gas-sponsored rebalance per day (rolling 24-hour window) * 3 gas-sponsored rebalances per week (rolling 7-day window) **stAAA Token Holder Benefits:** Account Owners holding stAAA tokens receive additional rebalancing quota: * **+1 additional rebalance per day** for every **3,000 stAAA** tokens held * Weekly limit scales proportionally: base + (daily bonus × 7) stAAA Held Daily Limit Weekly Limit 0 1 3 3,000 2 10 6,000 3 17 9,000 4 24 30,000 11 73 **Important:** AAA holders need to **stake their AAA tokens into stAAA** to benefit from increased quotas. The rate limit counts all rebalances across **all of an owner's accounts**, preventing circumvention through multiple accounts. #### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#id-5.-pay-gas-costs-with-aaa) 5\. Pay Gas Costs with AAA If you've exceeded your gas-sponsored quota but still want rebalancing, you can **approve AAA tokens to the Gas Relayer**. When a rebalance is triggered: * The estimated gas cost is calculated in AAA tokens * If your approval **and balance** cover the gas cost, the rebalance executes * The gas cost (in AAA) is deducted from your balance This allows unlimited rebalancing for users willing to pay gas costs in AAA tokens. **Gas Relayer Address:** `0xD938C8d04cF91094fecAF0A2018EAac483a40137` To enable this: approve AAA tokens to the Gas Relayer address through the dApp. We recommend approving enough for multiple rebalances. ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#summary) Summary Situation Solution Position has significant pending fees Automatic - gas profitability check passes Position is worth $50k+ Automatic - always rebalanced You hold stAAA tokens You get increased gas-sponsored quota based on holdings You've used your gas-sponsored quota Approve AAA to the Gas Relayer to pay for gas You need unlimited rebalances Contact the team about whitelisting ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#configuration) Configuration Parameter Value Description Position Value Threshold $50,000 USD Minimum position size for priority treatment Base Daily Limit 1 rebalance Gas-sponsored rebalances per 24-hour period Base Weekly Limit 3 rebalances Gas-sponsored rebalances per 7-day period stAAA Bonus Rate +1 per 3,000 stAAA Additional daily rebalances per 3k stAAA tokens Gas Estimate 4,000,000 units Estimated gas per rebalance transaction Profitability Multiplier 2× Minimum revenue-to-gas-cost ratio ### [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#checking-your-status) Checking Your Status When opening the asset manager modal in the dApp, you can see your current rebalancing status including: * Your daily/weekly usage and remaining quota * Your stAAA balance and resulting limits * Your AAA relayer approval status * Whether additional AAA approval is recommended [hashtag](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#costs-and-fees) Costs and Fees -------------------------------------------------------------------------------------------------------------- When rebalancing there are a number of costs/inefficiencies involved: * **1\. Initiator Fee:** The initiator of the rebalance (who triggers it) receives an initiator fee (feeinitiatorfee\_{initiator}feeinitiator​) based on the pending yield earned of the position. * **2\. Slippage & leftovers:** Both slippage and leftovers result in a less than optimal amount of liquidity minted (Leftovers are not really a cost since they are deposited back into the account, but they no longer earn yield). Slippage & Leftovers are capped by the maximal decrease in liquidity (MDLMDLMDL), which compares the optimal rebalance (i.e., assuming no slippage and leftovers) to the current rebalance. * **3\. Impermanent Loss:** Rebalancing realizes impermanent loss. It is not a cost due to rebalancing, but a loss in value compared to the initial position that is realized by rebalancing. Note that **2.** is capped to the downside (if exceeded the transaction reverts) but is most of the time much smaller or even positive (the swap can be done with a lower average fee than that of the pool and slippage can be positive as well). Both the initiator feeinitiatorfee\_{initiator}feeinitiator​ and the MDLMDLMDL are set by the Account Owner, they can differ for different strategies and different pools. The Initiator can change the rebalance parameters, but only advantageous to the Account Owner (lower fees, lower max slippage). The fees and settings for the current initiators are set to: Rebalancer Initiator Strategy feeinitiatorfee\_{initiator}feeinitiator​ MDLMDLMDL [Slipstream V1 Rebalancerarrow-up-right](https://basescan.org/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) [0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fEarrow-up-right](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) Any 7.5% of yield earned 1% [Slipstream V2 Rebalancerarrow-up-right](https://basescan.org/address/0x953Ff365d0b562ceC658dc46B394E9282338d9Ea) [0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fEarrow-up-right](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) Any 7.5% of yield earned 1% [Uniswap V3 Rebalancerarrow-up-right](https://basescan.org/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) [0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fEarrow-up-right](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) Any 7.5% of yield earned 1% [Uniswap V4 Rebalancerarrow-up-right](https://basescan.org/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) [0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fEarrow-up-right](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) Any 7.5% of yield earned 1% Note: all rebalances will be subject to the Yield Success Fee of the protocol, as can be found in the [Fees](https://docs.arcadia.finance/protocol/fees) section. [PreviousCompounderschevron-left](https://docs.arcadia.finance/protocol/asset-managers/compounders) [NextYield Claimerschevron-right](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers) Last updated 21 days ago * [Properties](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#properties) * [Strategies](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#strategies) * [Trust Assumptions](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#trust-assumptions) * [Rebalancing Limits and Economic Filters](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#rebalancing-limits-and-economic-filters) * [Decision Logic](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#decision-logic) * [Summary](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#summary) * [Configuration](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#configuration) * [Checking Your Status](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#checking-your-status) * [Costs and Fees](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#costs-and-fees) --- # Managing positions | Arcadia Finance [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#prerequisites) Prerequisites ----------------------------------------------------------------------------------------------------- This tutorial assumes you have: * An active Arcadia account * At least one active position (via curated strategies or the farm tab) [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#overview) Overview ------------------------------------------------------------------------------------------- Arcadia provides multiple ways to manage your active LP (Liquidity Provider) positions. This guide covers the key areas on the account page where you can initiate transactions to optimize and manage your portfolio, with a focus on the Quick Actions section. [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#quick-actions) Quick Actions ----------------------------------------------------------------------------------------------------- The Quick Actions section is your primary hub for managing your positions. It includes several important functions: ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#optimize) Optimize * A prominently colored button within the Quick Actions section * Appears when: * Your position is out of range, OR * The curated strategies' APY exceeds your current asset composition APY by 5% or more * Clicking this button will: * Maintain your current leverage * Claim all accumulated fees * Rebalance your assets, maintaining the same range width around the current price ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#add-collateral) Add Collateral * Purpose: Increase your account's LTV (Loan-to-Value) ratio or Health score * Note: This action does NOT rebalance existing positions ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#add-funds-to-portfolio) Add Funds to Portfolio * Increases the size of your current positions * Choose new leverage or retain current leverage * Note: This action does NOT rebalance existing positions, only increases the size of them ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#adjust-leverage) Adjust Leverage * Modifies the current leverage of your positions * Process: * Select new leverage * Note: This action does NOT rebalance existing positions, only increases or decreases the size of them ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#automate) Automate * Enables selection of Automation services * Current feature: Compound fees from non-staked Slipstream and Uniswap positions * Future feature: Auto-rebalancing automation ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#subscribe) Subscribe * Sets up a Telegram bot for notifications * Alerts you when: * Your positions are out of range * Your account is close to liquidation * Optimization opportunities arise ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#close-portfolio) Close Portfolio * Allows you to exit your position * Repays all debt * Convert all leftover assets to WETH, USDC, AERO or cbBTC in your account ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#withdraw) Withdraw * Allows you to withdraw your assets from your account ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#repay-debt) Repay Debt * Allows you to repay your debt directly from your wallet [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#additional-management-features) Additional Management Features --------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#claiming-fees) Claiming Fees #### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#for-staked-slipstream-positions) For Staked Slipstream Positions * A claim button appears in the asset overview next to the position * Allows you to claim AERO rewards * Safety feature: Claiming is prevented if it would make your account vulnerable to liquidation ### [hashtag](https://docs.arcadia.finance/tutorials/managing-positions#liquidation-surplus) Liquidation Surplus If your account has been liquidated: * After the auction concludes, a prominent button appears * Location: Next to your points and wallet in the top-right navigation bar * Function: Allows you to claim any surplus from the liquidation process [PreviousFirst Strategychevron-left](https://docs.arcadia.finance/tutorials/first-strategy) [NextAdvanced Strategieschevron-right](https://docs.arcadia.finance/tutorials/farm) Last updated 21 days ago * [Prerequisites](https://docs.arcadia.finance/tutorials/managing-positions#prerequisites) * [Overview](https://docs.arcadia.finance/tutorials/managing-positions#overview) * [Quick Actions](https://docs.arcadia.finance/tutorials/managing-positions#quick-actions) * [Optimize](https://docs.arcadia.finance/tutorials/managing-positions#optimize) * [Add Collateral](https://docs.arcadia.finance/tutorials/managing-positions#add-collateral) * [Add Funds to Portfolio](https://docs.arcadia.finance/tutorials/managing-positions#add-funds-to-portfolio) * [Adjust Leverage](https://docs.arcadia.finance/tutorials/managing-positions#adjust-leverage) * [Automate](https://docs.arcadia.finance/tutorials/managing-positions#automate) * [Subscribe](https://docs.arcadia.finance/tutorials/managing-positions#subscribe) * [Close Portfolio](https://docs.arcadia.finance/tutorials/managing-positions#close-portfolio) * [Withdraw](https://docs.arcadia.finance/tutorials/managing-positions#withdraw) * [Repay Debt](https://docs.arcadia.finance/tutorials/managing-positions#repay-debt) * [Additional Management Features](https://docs.arcadia.finance/tutorials/managing-positions#additional-management-features) * [Claiming Fees](https://docs.arcadia.finance/tutorials/managing-positions#claiming-fees) * [Liquidation Surplus](https://docs.arcadia.finance/tutorials/managing-positions#liquidation-surplus) --- # Compounders: Deep Dive | Arcadia Finance _Source:_ [_Arcadia Finance Blog_arrow-up-right](https://arcadiafinance.notion.site/Compounders-eee496c7b53c471d947bb53ae450d6e5) In this post we will outline how the compounders work and what the trust assumptions are. Compounders are a specific implementation of an Arcadia Asset Manager, hence before we dive deeper into how the compounders work, let's start with explaining what Asset Managers are and how they can be used. [hashtag](https://docs.arcadia.finance/deep-dives/compounders#asset-managers) Asset Managers ------------------------------------------------------------------------------------------------- An Asset Manager of an Arcadia Account is a privileged role that can, as the name implies, manage the assets of an Account. Their main purpose is to enable a wide range of automation for the owner of the Arcadia Account, without the owner having to give up self-custody of their assets. Each Arcadia Account may have one or more Asset Managers, and only the owner of an Account can add or remove Asset Managers. Asset Managers can perform the following actions: * Deposit assets. * Withdraw assets. * Transfer funds from the Owner. * Execute flash actions (optimistically execute arbitrary logic with the withdrawn/transferred assets). Any Ethereum address, whether a smart contract or an externally owned account, can be set as an Asset Manager. This opens up a wide range of solutions for users with varying trust assumptions. We can roughly define three models in this context: permissionless, permissioned, and custodial. 1. **Non-Custodial Permissionless**: Asset Managers are immutable, trustless smart contracts that can only perform a single action and do not require any additional user input. An example of this are the Compounders that will be described in more detail in this article. 2. **Non-Custodial Permissioned**: Asset Managers can be smart contracts that restrict the actions they can perform to a single purpose, but do require user input. An example would be an Asset Manager to rebalance Liquidity Positions. While the contract can only change the range of a position and not, say, withdraw assets, it might require a permissioned role that only triggers a rebalance when it makes sense. 3. **Custodial**: Asset Managers can be EOAs that run strategies as a service for users. While there might be off-chain agreements regarding what these managers can and cannot do, these are not enforced on-chain, and the Asset Managers essentially have full power over the Account. Some examples how asset management can be automated with Arcadia Accounts and Asset Managers are: * Compounding fees * Rebalancing portfolios * Managing Liquidity ranges * Stop losses [hashtag](https://docs.arcadia.finance/deep-dives/compounders#compounders) Compounders ------------------------------------------------------------------------------------------- Uniswap V3 (and similar CLAMMs like Slipstream) do not natively compound the yield earned by liquidity providers. Automatically compounding the yield for these protocols is an effective way to boost returns, leading to an exponential rather than a linear increase in the portfolio's value. The code of the Arcadia Compounders can be found here: [https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/Compounder.solarrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/Compounder.sol) The compounder embodies the essence of true DeFi: * It is **immutable**. * It is **100% permissionless**, with the compounder having no special privileges or admin roles. Anyone can initiate a compound, as long as all the contract-defined conditions are met. * It is **stateless**, the contract has no storage variables (except a reentrancy lock that is reset at the end of each transaction), but still operates for any liquidity positions in an Arcadia Account. * The contract relies on **economic incentives**, with the initiator of the compound earning a small reward when compounding the fees of a position. We kept the logic for the Compounder as simple as possible, it only has a single function `compoundFees()`. The function only takes two variables as input, the Id of the Liquidity Position and the Arcadia Account that owns the Liquidity Position. That's it, all the logic regarding how to rebalance the fees, how to swap fees etc. is done on-chain. The asset manager will execute a number of actions and checks, we will go into detail how each of these steps is done, and why they are necessary: ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#verify-that-the-pool-is-balanced) Verify that the pool is balanced Before we compound the fees, it is important to check that the liquidity pool of our position is balanced. If this was not the case, an attacker could execute something similar to a sandwich attack: * Bring the pool out of balance (this could be done with a flash loan). * Call our compounder, which now adds the yield in an unbalanced pool. * Bring the pool back into balance. Since the total liquidity of the pool is bigger after the yield is added, the profit from bringing the pool in balance is bigger than the cost to bring the pool out of balance. To check if a pool is balanced, we need to compare the current price of the pool (which can be manipulated) with the expected price, based on the trusted price feeds of both underlying assets. Luckily all that pricing logic is already implemented in the Arcadia Registry! The compounder will fetch the USD-price for token0 (P0→usdP\_{0 \\rightarrow usd}P0→usd​) and token1 (P1→usdP\_{1 \\rightarrow usd}P1→usd​) and check that: Ppool\=P0→usdP1→usdP\_{pool} = \\frac{P\_{0 \\rightarrow usd}}{P\_{1 \\rightarrow usd}}Ppool​\=P1→usd​P0→usd​​ ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#collect-the-fees-earned-by-the-position) Collect the fees earned by the position This step is straightforward, an amount of fee0fee\_0fee0​ and fee1fee\_1fee1​ is collected by the compounder. The initiator will take a share of the fees collected, as a reward for executing the transaction. For the current Compounders, the reward for the initiator is 1% of the fees collected. ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#verify-that-the-fee-value-is-bigger-than-the-threshold-required-to-trigger-a-compound) Verify that the fee value is bigger than the threshold required to trigger a compound For too small values, rounding errors might give issues and we don't want to spam the sequencer with negligible value transactions. Hence we check if the total value of the fees exceeds a certain Threshold, TminT\_{min}Tmin​, ($5 for the current Compounders). This extra check is almost for free anyway, since we already have the USD-prices of the underlying assets from step 1! fee0⋅P0→usd+fee1⋅P1→usd≥Tminfee\_0 \\cdot P\_{0 \\rightarrow usd} + fee\_1 \\cdot P\_{1 \\rightarrow usd} \\geq T\_{min}fee0​⋅P0→usd​+fee1​⋅P1→usd​≥Tmin​ ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#rebalance-the-fee-amounts-so-that-the-maximum-amount-of-liquidity-can-be-added) Rebalance the fee amounts so that the maximum amount of liquidity can be added When adding liquidity to a Uniswap V3 position, token0 and token1 (the underlying tokens) have to be added in a certain ratio depending on the lower and upper tick of the liquidity position and on the current price of the pool. The amounts of fee0fee\_0fee0​ and fee1fee\_1fee1​, do under most circumstances not match the required ratio, directly adding the collected fees as liquidity will result in some leftover for either token0 or token1. In order to maximise the amount of liquidity that can be added, the compounder will first rebalance the fee amounts to match the ratio required by Uniswap V3. For positions out of range this is straightforward: * If the current tick is above the upper tick, all fee0fee\_0fee0​ has to be swapped to token1. * If the current tick is below the lower tick, all fee1fee\_1fee1​ has to be swapped to token0. For positions in range, we first need to calculate if we need to swap token0 to token1 or opposite, and next we need to know exactly how much to swap. To do this we first calculate the ratio of how much of the total value of a liquidity position has to be provided in token1, based on the upper tick, the lower tick and the current pool price. We call this the **Target ratio**, since this ratio maximises how much fees we can add as liquidity: Rtarget:\=value1value0+value1R\_{target} := \\frac{value\_1}{ value\_0 + value\_1}Rtarget​:=value0​+value1​value1​​ If we price all values in token1: Rtarget\=amount1amount0⋅P0→1+amount1R\_{target} = \\frac{amount\_1}{ amount\_0 \\cdot P\_{0 \\rightarrow 1} + amount\_1}Rtarget​\=amount0​⋅P0→1​+amount1​amount1​​ For a Uniswap V3 liquidity position, all three unknowns (amount0amount\_0amount0​, amount1amount\_1amount1​ and P0→1P\_{0 \\rightarrow 1}P0→1​) can be expressed in terms of sqrtRatios of the current Pool price (sqrtPricesqrtPricesqrtPrice), the lower tick (sqrtPriceLowersqrtPriceLowersqrtPriceLower), and the upper tick (sqrtPriceUppersqrtPriceUppersqrtPriceUpper), which are all known variables on-chain. For P0→1P\_{0 \\rightarrow 1}P0→1​: P0→1\=sqrtPrice2P\_{0 \\rightarrow 1} = sqrtPrice^2P0→1​\=sqrtPrice2 For amount0amount\_0amount0​: amount0\=liquidity⋅sqrtRatioUpper−sqrtPricesqrtRatioUpper⋅sqrtPriceamount\_0 = liquidity \\cdot \\frac{sqrtRatioUpper - sqrtPrice}{sqrtRatioUpper \\cdot sqrtPrice}amount0​\=liquidity⋅sqrtRatioUpper⋅sqrtPricesqrtRatioUpper−sqrtPrice​ For amount1amount\_1amount1​: amount1\=liquidity⋅(sqrtPrice−sqrtRatioLower)amount\_1 = liquidity \\cdot (sqrtPrice - sqrtRatioLower)amount1​\=liquidity⋅(sqrtPrice−sqrtRatioLower) Rewriting our ratio in these terms finally gives us: Rtarget\=sqrtPrice−sqrtRatioLower2⋅sqrtPrice−sqrtRatioLower−sqrtPrice2sqrtRatioUpperR\_{target} = \\frac{sqrtPrice - sqrtRatioLower}{2 \\cdot sqrtPrice - sqrtRatioLower - \\frac{sqrtPrice^2}{sqrtRatioUpper}}Rtarget​\=2⋅sqrtPrice−sqrtRatioLower−sqrtRatioUppersqrtPrice2​sqrtPrice−sqrtRatioLower​ Next we calculate the current ratio of the value of fee1 compared with the total value of the fees: Rcurrent:\=fee1fee0⋅P0→1+fee1\=fee1fee0⋅sqrtPrice2+fee1R\_{current} := \\frac{fee\_1 }{fee\_0 \\cdot P\_{0 \\rightarrow 1} + fee\_1} = \\frac{fee\_1 }{fee\_0 \\cdot sqrtPrice^2 + fee\_1}Rcurrent​:=fee0​⋅P0→1​+fee1​fee1​​\=fee0​⋅sqrtPrice2+fee1​fee1​​ If we want to compound as much fees as possible, both ratios should be equal (so that there are no leftover token0 and token1 after increasing liquidity). If Rtarget≠RfeesR\_{target} \\neq R\_{fees}Rtarget​\=Rfees​, we need to swap token0 and token1 to bring RfeesR\_{fees}Rfees​ in balance. The amount of token1 that needs to be swapped equals: Δamount1\=(Rtarget−Rcurrent)⋅(fee0⋅sqrtPrice2+fee1)\\Delta amount\_1 = (R\_{target} - R\_{current}) \\cdot (fee\_0 \\cdot sqrtPrice^2 + fee\_1)Δamount1​\=(Rtarget​−Rcurrent​)⋅(fee0​⋅sqrtPrice2+fee1​) A positive Δamount1\\Delta amount\_1Δamount1​ means we have to swap token0 for token1, a negative we have to swap token1 for token0. The calculations above assume zero slippage (and fees) for the swap. In reality all swaps do have fees and slippage. To protect the owner of the Liquidity Positions we use swaps with a fixed amountOut instead of a fixed amountIn. This results in the initiator getting less rewards instead of the owner getting less liquidity. ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#verify-that-the-slippage-of-the-rebalance-is-within-a-defined-tolerance) Verify that the slippage of the rebalance is within a defined tolerance We have seen at the end of the previous step that slippage does not result in the owner getting less liquidity, but in the initiator getting less rewards. Still there is another problem with slippage, since we swap in the pool of the Liquidity Position itself, a lot of slippage might result in the pool no longer being in balance! Therefore we limit the max slippage so that the pool is still balanced after the swap. ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#increase-the-liquidity-of-the-current-position) Increase the liquidity of the current position With all checks passing and the fee amounts balanced, we can finally add the fees to the Liquidity position. ### [hashtag](https://docs.arcadia.finance/deep-dives/compounders#transfer-a-fee-to-the-keeper-that-initiated-the-compound) Transfer a fee to the keeper that initiated the compound Lastly, the reward is transferred to the initiator (1% of collected fees minus slippage and other costs related to the swap). [PreviousDelta Neutral Strategieschevron-left](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies) [NextRebalancers: Deep Divechevron-right](https://docs.arcadia.finance/deep-dives/rebalancers) Last updated 21 days ago * [Asset Managers](https://docs.arcadia.finance/deep-dives/compounders#asset-managers) * [Compounders](https://docs.arcadia.finance/deep-dives/compounders#compounders) * [Verify that the pool is balanced](https://docs.arcadia.finance/deep-dives/compounders#verify-that-the-pool-is-balanced) * [Collect the fees earned by the position](https://docs.arcadia.finance/deep-dives/compounders#collect-the-fees-earned-by-the-position) * [Verify that the fee value is bigger than the threshold required to trigger a compound](https://docs.arcadia.finance/deep-dives/compounders#verify-that-the-fee-value-is-bigger-than-the-threshold-required-to-trigger-a-compound) * [Rebalance the fee amounts so that the maximum amount of liquidity can be added](https://docs.arcadia.finance/deep-dives/compounders#rebalance-the-fee-amounts-so-that-the-maximum-amount-of-liquidity-can-be-added) * [Verify that the slippage of the rebalance is within a defined tolerance](https://docs.arcadia.finance/deep-dives/compounders#verify-that-the-slippage-of-the-rebalance-is-within-a-defined-tolerance) * [Increase the liquidity of the current position](https://docs.arcadia.finance/deep-dives/compounders#increase-the-liquidity-of-the-current-position) * [Transfer a fee to the keeper that initiated the compound](https://docs.arcadia.finance/deep-dives/compounders#transfer-a-fee-to-the-keeper-that-initiated-the-compound) --- # For AI Agents | Arcadia Finance This page provides a structured reference for AI agents, bots, and automated systems that need to interact with Arcadia Protocol programmatically. [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#chain-deployments) Chain Deployments ------------------------------------------------------------------------------------------------------------------ Chain Chain ID Block Explorer Base 8453 [basescan.orgarrow-up-right](https://basescan.org/) Optimism 10 [optimistic.etherscan.ioarrow-up-right](https://optimistic.etherscan.io/) Unichain 130 [uniscan.xyzarrow-up-right](https://uniscan.xyz/) The core protocol contracts (Factory, Registry, Liquidator) share the same addresses across chains. [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#key-contract-addresses) Key Contract Addresses ---------------------------------------------------------------------------------------------------------------------------- These are the most commonly needed addresses for programmatic interaction. For the full list, see [Contract Addresses](https://docs.arcadia.finance/developers/contract-addresses) . Contract Address Purpose Factory `0xDa14Fdd72345c4d2511357214c5B89A919768e59` Creates and manages Arcadia Accounts (ERC721) Registry `0xd0690557600eb8Be8391D1d97346e2aab5300d5f` Asset/oracle module coordination, pricing orchestration Liquidator `0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af` Dutch auctions for unhealthy account liquidation LendingPool WETH `0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2` WETH lending pool LendingPool USDC `0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1` USDC lending pool LendingPool cbBTC `0xa37e9b4369dc20940009030bfbc2088f09645e3b` cbBTC lending pool [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#common-tokens-base) Common Tokens (Base) ---------------------------------------------------------------------------------------------------------------------- Token Address Decimals WETH `0x4200000000000000000000000000000000000006` 18 USDC `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` 6 cbBTC `0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf` 8 AERO `0x940181a94A35A4569E4529A3CDfB74e38FD98631` 18 AAA `0xaaa843fb2916c0B57454270418E121C626402AAa` 18 stAAA `0xDeA1531d8a1505785eb517C7A28526443df223F3` 18 [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#common-read-operations) Common Read Operations ---------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#get-total-number-of-accounts) Get total number of accounts ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-address-by-index) Get account address by index ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-owner) Get account owner ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#check-if-an-account-is-liquidatable) Check if an account is liquidatable ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-health-liquidation-value-vs-used-margin) Get account health (liquidation value vs used margin) A healthy account has `liquidationValue > usedMargin`. ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-assets) Get account assets ### [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#get-asset-value-in-a-numeraire) Get asset value in a numeraire [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#arcadia-api) Arcadia API ------------------------------------------------------------------------------------------------------ The Arcadia REST API provides off-chain data for accounts, pools, and asset prices. Base URL: `https://api.arcadia.finance/v1/api` Endpoint Description `GET /pools?chain_id=8453` List all lending pools `GET /assets?chain_id=8453` List all supported assets `GET /price?chain_id=8453&asset=
` Get asset price `GET /accounts?chain_id=8453` List all accounts No API key is required. [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#programmatic-docs-access) Programmatic Docs Access -------------------------------------------------------------------------------------------------------------------------------- The full documentation is available in machine-readable format: * **Structured summary**: [docs.arcadia.finance/llms.txtarrow-up-right](https://docs.arcadia.finance/llms.txt) * **Full content**: [docs.arcadia.finance/llms-full.txtarrow-up-right](https://docs.arcadia.finance/llms-full.txt) [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#mcp-server) MCP Server ---------------------------------------------------------------------------------------------------- The [Arcadia MCP Server](https://docs.arcadia.finance/developers/integrations/mcp-server) lets AI agents interact with the protocol through the Model Context Protocol. It provides tools to read account data, pool stats, and strategies, and to build unsigned transactions for deposits, borrowing, liquidity management, and more. See the [MCP Server](https://docs.arcadia.finance/developers/integrations/mcp-server) page for setup instructions and the full tool reference. [hashtag](https://docs.arcadia.finance/developers/integrations/ai-agents#source-code) Source Code ------------------------------------------------------------------------------------------------------ Repository Description [accounts-v2arrow-up-right](https://github.com/arcadia-finance/accounts-v2) Account contracts, Registry, Asset Modules, Oracle Modules [lending-v2arrow-up-right](https://github.com/arcadia-finance/lending-v2) Lending Pools, Tranches, Liquidator [asset-managersarrow-up-right](https://github.com/arcadia-finance/asset-managers) Compounders, Rebalancers, Yield Claimers, CoW Swapper, Merkl Operators [mcp-serverarrow-up-right](https://github.com/arcadia-finance/mcp-server) MCP Server for AI agent integration [whitepapersarrow-up-right](https://github.com/arcadia-finance/whitepapers/blob/main/main.pdf) Protocol whitepaper [PreviousCreditorschevron-left](https://docs.arcadia.finance/developers/integrations/creditors) [NextMCP Serverchevron-right](https://docs.arcadia.finance/developers/integrations/mcp-server) Last updated 16 days ago * [Chain Deployments](https://docs.arcadia.finance/developers/integrations/ai-agents#chain-deployments) * [Key Contract Addresses](https://docs.arcadia.finance/developers/integrations/ai-agents#key-contract-addresses) * [Common Tokens (Base)](https://docs.arcadia.finance/developers/integrations/ai-agents#common-tokens-base) * [Common Read Operations](https://docs.arcadia.finance/developers/integrations/ai-agents#common-read-operations) * [Get total number of accounts](https://docs.arcadia.finance/developers/integrations/ai-agents#get-total-number-of-accounts) * [Get account address by index](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-address-by-index) * [Get account owner](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-owner) * [Check if an account is liquidatable](https://docs.arcadia.finance/developers/integrations/ai-agents#check-if-an-account-is-liquidatable) * [Get account health (liquidation value vs used margin)](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-health-liquidation-value-vs-used-margin) * [Get account assets](https://docs.arcadia.finance/developers/integrations/ai-agents#get-account-assets) * [Get asset value in a numeraire](https://docs.arcadia.finance/developers/integrations/ai-agents#get-asset-value-in-a-numeraire) * [Arcadia API](https://docs.arcadia.finance/developers/integrations/ai-agents#arcadia-api) * [Programmatic Docs Access](https://docs.arcadia.finance/developers/integrations/ai-agents#programmatic-docs-access) * [MCP Server](https://docs.arcadia.finance/developers/integrations/ai-agents#mcp-server) * [Source Code](https://docs.arcadia.finance/developers/integrations/ai-agents#source-code) Copy Factory(0xDa14...8e59).allAccountsLength() → uint256 Copy Factory(0xDa14...8e59).allAccounts(uint256 index) → address Copy Factory(0xDa14...8e59).ownerOf(uint256 accountId) → address Copy AccountV1(accountAddress).isAccountLiquidatable() → bool Copy AccountV1(accountAddress).getLiquidationValue() → uint256 AccountV1(accountAddress).getUsedMargin() → uint256 Copy AccountV1(accountAddress).generateAssetData() → (address[] assets, uint256[] assetIds, uint256[] assetAmounts) Copy Registry(0xd069...d5f).getTotalValue(address numeraire, address creditor, address[] assets, uint256[] assetIds, uint256[] assetAmounts) → uint256 --- # Delta Neutral Strategies | Arcadia Finance _Source:_ [_Arcadia Finance Blog_arrow-up-right](https://arcadiafinance.notion.site/Delta-Neutral-strategies-1f7f4240c3264bec82608a85b58329a1) Up till now we used a strategy that is both delta neutral and gamma neutral, where we leverage stable pools, by borrowing the same asset. Since these strategies got saturated during the last weeks, yields declined and we worked on a new type of delta neutral strategy with higher returns. In this article we introduce the new strategy: **The Pseudo delta neutral strategy!** This strategy uses a 2x leveraged volatile pool, a big difference however is that this strategy is not Gamma neutral. Practically this means that the strategy has to be rebalanced more often, and that very big market moves still have an impact on the portfolio value. At the end of this article we will discuss in depth how both the old and new delta neutral strategy work, but first we will give a short refresher what Delta, Gamma and Delta Neutral Portfolios actually mean. [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.-the-greeks) 1\. The Greeks ---------------------------------------------------------------------------------------------------------------- The Greeks are variables that are used to assess risks of financial instruments/portfolios. Each greek variable expresses how the value of the financial instrument/portfolio is influenced by a small change of a certain underlying parameter. It is a measure how sensitive a portfolio is to said underlying parameter. The value of a Greek is not static but changes over time, or with big market movements. Investors aiming to keep a certain Greek value of their portfolio fixed need to periodically rebalance their portfolio. ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.1-delta) 1.1 Delta Delta expresses the rate of change between a financial instrument/portfolio and an underlying asset price. If a portfolio has a positive delta of +0.2 with the price of Ethereum, then when the Ethereum price increases with 1%, the value of the portfolio will increase with 0.2%. Mathematically, the Delta (Δ\\DeltaΔ) can be expressed as the first-order partial derivative of the portfolio value (VVV) with respect to the price of an underlying asset (SSS). Δ\=∂V∂S\\Delta = \\frac{\\partial V}{\\partial S}Δ\=∂S∂V​ ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.2-gamma) 1.2 Gamma Gamma expresses the rate of change between the Delta of a financial instrument/portfolio and the underlying asset price. Gamma measures how sensitive delta itself is to changes in the price of the underlying asset. It gives a measure how hard a portfolio will be influenced by big market movements, or how often a portfolio has to be rebalanced to keep its delta fixed. Mathematically, Gamma (Γ\\GammaΓ) can be expressed as the first-order partial derivative of the Delta value with respect to the price of an underlying asset (SSS), hence it equals to the second-order partial derivative of the portfolio value. Γ\=∂Δ∂S\=∂2V∂S2\\Gamma = \\frac{\\partial \\Delta}{\\partial S} = \\frac{\\partial^2 V}{\\partial S^2}Γ\=∂S∂Δ​\=∂S2∂2V​ [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.-portfolios) 2\. Portfolios ---------------------------------------------------------------------------------------------------------------- Investors can use the Greeks to quantify or mitigate certain risks when building portfolios. Two popular strategies are delta-neutral portfolios and gamma-neutral portfolios. ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.1-delta-neutral-portfolios) 2.1 Delta neutral portfolios With a Delta neutral portfolio, the overall delta of the portfolio is 0. This means that the total value of the portfolio does not change due to small increases/decreases in the price of an underlying asset. Important to note is that this is only valid for small changes in price. ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.2-gamma-neutral-portfolios) 2.2 Gamma neutral portfolios With Gamma neutral portfolios, typically both the delta and the gamma of the portfolio are 0. Since the gamma is 0, the delta itself is very insensitive to price movement, hence even with significant changes of the price of the underlying asset, the portfolio value remains constant. In general you can say that every Gamma neutral portfolio is also Delta neutral. But the opposite is not necessarily true, not every Delta neutral portfolio is Gamma neutral. [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-3.-arcadias-delta-neutral-strategies) 3\. Arcadia's Delta-neutral Strategies --------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-3.1-true-delta-neutral-leveraged-stable-pools) 3.1 True Delta Neutral: Leveraged Stable pools For this strategy we use two pegged assets in an LP-pool and borrow an asset that is either equal to one of the two assets, or to a third asset that is also pegged to the two other assets. Examples are: * cbETH - WETH pool with WETH debt * DAI - USDC with USDC debt * cbETH - wstETH pool with WETH debt In these strategies all assets and debt are either USDC based, or WETH based. Hence the portfolio value is completely independent from the WETH/USD price. Since the portfolio value VVV is not a function of the WETH/USD price SSS, its partial derivatives with respect to SSS are zero. Δ\=∂V∂S\=0\\Delta = \\frac{\\partial V}{\\partial S} = 0Δ\=∂S∂V​\=0 Γ\=∂2V∂S2\=0\\Gamma = \\frac{\\partial^2 V}{\\partial S^2} = 0Γ\=∂S2∂2V​\=0 This strategy is truly delta neutral, since the portfolio is both Delta neutral and Gamma neutral. If we plot the normalised\* portfolio value VVV (vertical axis) in function of the normalised\* WETH/USD price sss (horizontal axis) we see that V is independent of sss. \* Since we normalise the axis, 1 on the vertical axis corresponds to the initial portfolio value and 1 on the horizontal axis corresponds to the initial price. ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-3.2-pseudo-delta-neutral-2x-leveraged-symmetric-volatile-pools) 3.2 Pseudo delta neutral: 2x Leveraged symmetric Volatile pools This strategy uses a symmetric volatile LP position as underlying asset, and one of the two underlying assets is borrowed. Intuitively it can be shown why this portfolio is delta neutral with an example. Lets use a WETH/USDC pool, the initial WETH/USD price equals $3000 and we borrow WETH: * We start with 3000 USDC and borrow 1 WETH which we both deposit in a WETH/USDC pool. * We now have $6000 worth of assets and $3000 debt * Our portfolio value is $3000 * Our leverage is 2x * If the WETH/USD increases with $1, both the WETH in our LP position as our WETH debt will increase with $1 * We now have $6001 worth of assets and $3001 debt * Our portfolio value is still $3000 * Our portfolio is delta neutral! Unfortunately when the underlying price changes, the LP position will no longer be perfectly symmetric (Impermanent loss!!). The bigger the underlying price changes from the initial price, the less balanced our LP position is and the less delta neutral. Our position is not gamma neutral. We can also show this graphically. The value of a generic LP position with relation to the underlying price of the assets is quite complex and non-linear (depending on the AMM bonding curve, available liquidity, liquidity ranges...). Luckily the relation for a Uniswap V2 pool (k\=x⋅yk = x \\cdot yk\=x⋅y) is still quite simple and we can plot the normalised portfolio value V(s)V(s)V(s) with respect to the normalised underlying price sss (see for derivation in the appendix below). We see that for a "normal LP position" (without debt) both delta (first derivative V') and gamma (second derivative V'') are non-zero at the initial point (1, 1). If we now use our 2x Leveraged strategy (see for derivation in the Appendix below), we see that Delta (V') is indeed 0 at the initial price, but Gamma (V'') is non-zero. * Portfolio is initially Delta neutral * Portfolio is not Gamma neutral For Uniswap V3 (and other CLAMMs) the general principle holds but we have another degree of freedom, the liquidity ranges. * We can use asymmetric positions, and for each asymmetric position there is exactly one amount of leverage such that the initial position is delta neutral. For symmetric positions delta is again 0 when we use 2x leverage. * In general the smaller the liquidity range, the bigger the impermanent loss and hence the bigger Gamma is (which is bad for our Delta neutral strategy). [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#appendix) Appendix -------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.-derivation-portfolio-value-uniswap-v2) 1\. Derivation portfolio value Uniswap V2 A Uniswap V2 position consists of two tokens: let's call the amount of the token0 xxx and the amount of token1 yyy. The total value of the LP-position equals (note that the amounts of x and y depend on the relative prices of both tokens): v(px,py)\=x(px,py)⋅px+y(px,py)⋅pyv(p\_x, p\_y) = x(p\_x, p\_y) \\cdot p\_x + y(p\_x, p\_y) \\cdot p\_yv(px​,py​)\=x(px​,py​)⋅px​+y(px​,py​)⋅py​ If we define the portfolio value in units of token0, then the previous equation becomes: v(s)\=x(s)+y(s)⋅sv(s) = x(s) + y(s) \\cdot sv(s)\=x(s)+y(s)⋅s With sss defined as the price of token1 in units of token0: s:\=pypxs := \\frac{p\_y}{p\_x}s:=px​py​​ And the initial value of the position is then equal to: V0\=X0+S0⋅Y0V\_0 = X\_0 + S\_0 \\cdot Y\_0V0​\=X0​+S0​⋅Y0​ For a Uniswap V2 pool in equilibrium with external markets, the value of the reserves of token0 should equal the value of reserves of token1. If this would not be true, arbitrageurs could make a profit until the pool is in equilibrium: x⋅px\=y⋅py  ⟹  xy\=pypx\=sx \\cdot p\_x = y \\cdot p\_y \\implies \\frac{x}{y} = \\frac{p\_y}{p\_x} = sx⋅px​\=y⋅py​⟹yx​\=px​py​​\=s   ⟹  x\=y⋅s And X0\=Y0⋅S0\\implies x = y \\cdot s \\text{ And } X\_0 = Y\_0 \\cdot S\_0⟹x\=y⋅s And X0​\=Y0​⋅S0​ So for a LP position of a pool in equilibrium, the value equals: v(s)\=2⋅x(s) And V0\=2⋅X0v(s) = 2 \\cdot x(s) \\text{ And } V\_0 = 2 \\cdot X\_0v(s)\=2⋅x(s) And V0​\=2⋅X0​ For Uniswap V2 pools, the relation between xxx and yyy is defined via the bonding curve: k\=x⋅y\=X0⋅Y0k = x \\cdot y = X\_0 \\cdot Y\_0k\=x⋅y\=X0​⋅Y0​ Which we can rewrite as: x⋅xs\=X0⋅X0S0  ⟹  x\=X0sS0x \\cdot \\frac{x}{s} = X\_0 \\cdot \\frac{X\_0}{S\_0} \\implies x = X\_0 \\sqrt{\\frac{s}{S\_0}}x⋅sx​\=X0​⋅S0​X0​​⟹x\=X0​S0​s​​ Now we can finally rewrite our LP value as only a function of sss: v(s)\=2⋅X0sS0\=V0sS0v(s) = 2 \\cdot X\_0 \\sqrt{\\frac{s}{S\_0}} = V\_0 \\sqrt{\\frac{s}{S\_0}}v(s)\=2⋅X0​S0​s​​\=V0​S0​s​​ If we define the normalised portfolio value in function of the normalised underlying price s as: vn:\=vV0 And sn:\=sS0v\_n := \\frac{v}{V\_0} \\text{ And } s\_n := \\frac{s}{S\_0}vn​:=V0​v​ And sn​:=S0​s​ Then we find our relation: vn(sn)\=snv\_n(s\_n) = \\sqrt{s\_n}vn​(sn​)\=sn​​ ### [hashtag](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.-derivation-portfolio-value-2x-leveraged-symmetric-volatile-pools) 2\. Derivation portfolio value 2x Leveraged symmetric Volatile pools In this strategy we start with the full portfolio value in token0, and we borrow an equal value in token1, we again deposit the initial token0 and borrowed token1 in a Uniswap V2 pool. The total portfolio value in units of token0 is then given as: v(s)\=x(s)+y(s)⋅s−Y0⋅sv(s) = x(s) + y(s) \\cdot s - Y\_0 \\cdot sv(s)\=x(s)+y(s)⋅s−Y0​⋅s And the initial value of the portfolio, denominated in token0, is equal to: V0\=X0+S0⋅Y0−S0⋅Y0\=X0V\_0 = X\_0 + S\_0 \\cdot Y\_0 - S\_0 \\cdot Y\_0 = X\_0V0​\=X0​+S0​⋅Y0​−S0​⋅Y0​\=X0​ For a pool in equilibrium, the previous defined relationship still holds (x\=y⋅sx = y \\cdot sx\=y⋅s):   ⟹  v(s)\=2⋅x(s)−X0S0⋅s\\implies v(s) = 2 \\cdot x(s) - \\frac{X\_0}{S\_0} \\cdot s⟹v(s)\=2⋅x(s)−S0​X0​​⋅s And also the bonding curve for Uniswap V2 AMMs is still valid (x\=X0sS0x = X\_0 \\sqrt{\\frac{s}{S\_0}}x\=X0​S0​s​​)   ⟹  v(s)\=2⋅X0sS0−X0S0s\=2⋅V0sS0−V0sS0\\implies v(s) = 2 \\cdot X\_0 \\sqrt{\\frac{s}{S\_0}} - \\frac{X\_0}{S\_0} s = 2 \\cdot V\_0 \\sqrt{\\frac{s}{S\_0}} - V\_0\\frac{s}{S\_0}⟹v(s)\=2⋅X0​S0​s​​−S0​X0​​s\=2⋅V0​S0​s​​−V0​S0​s​ Which gives after normalisation: vn(sn)\=2sn−snv\_n(s\_n) = 2 \\sqrt{s\_n} - s\_nvn​(sn​)\=2sn​​−sn​ [PreviousDeep Diveschevron-left](https://docs.arcadia.finance/deep-dives) [NextCompounders: Deep Divechevron-right](https://docs.arcadia.finance/deep-dives/compounders) Last updated 21 days ago * [1\. The Greeks](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.-the-greeks) * [1.1 Delta](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.1-delta) * [1.2 Gamma](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.2-gamma) * [2\. Portfolios](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.-portfolios) * [2.1 Delta neutral portfolios](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.1-delta-neutral-portfolios) * [2.2 Gamma neutral portfolios](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.2-gamma-neutral-portfolios) * [3\. Arcadia's Delta-neutral Strategies](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-3.-arcadias-delta-neutral-strategies) * [3.1 True Delta Neutral: Leveraged Stable pools](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-3.1-true-delta-neutral-leveraged-stable-pools) * [3.2 Pseudo delta neutral: 2x Leveraged symmetric Volatile pools](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-3.2-pseudo-delta-neutral-2x-leveraged-symmetric-volatile-pools) * [Appendix](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#appendix) * [1\. Derivation portfolio value Uniswap V2](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-1.-derivation-portfolio-value-uniswap-v2) * [2\. Derivation portfolio value 2x Leveraged symmetric Volatile pools](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies#id-2.-derivation-portfolio-value-2x-leveraged-symmetric-volatile-pools) --- # Core protocol | Arcadia Finance The Arcadia Protocol consists of a number of contracts * **The Factory** creates all Arcadia Accounts, for all Account versions. * **Pricing Modules** ensure the correct pricing of simple and complex assets. * **Oracle modules** form a standardized manner to request external prices. * **The Registry** is the overarching contract coordinating all contracts. [hashtag](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#core) Core ---------------------------------------------------------------------------------------------------- Core protocol contracts share the same address across all chains. Contract Address Base Optimism Unichain [Factoryarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/Factory.sol) `0xDa14Fdd72345c4d2511357214c5B89A919768e59` [↗arrow-up-right](https://basescan.org/address/0xDa14Fdd72345c4d2511357214c5B89A919768e59) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xDa14Fdd72345c4d2511357214c5B89A919768e59) [↗arrow-up-right](https://uniscan.xyz/address/0xDa14Fdd72345c4d2511357214c5B89A919768e59) [Registryarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/Registry.sol) `0xd0690557600eb8Be8391D1d97346e2aab5300d5f` [↗arrow-up-right](https://basescan.org/address/0xd0690557600eb8Be8391D1d97346e2aab5300d5f) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xd0690557600eb8Be8391D1d97346e2aab5300d5f) [↗arrow-up-right](https://uniscan.xyz/address/0xd0690557600eb8Be8391D1d97346e2aab5300d5f) [Liquidatorarrow-up-right](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/Liquidator.sol) `0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af` [↗arrow-up-right](https://basescan.org/address/0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af) [↗arrow-up-right](https://uniscan.xyz/address/0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af) ### [hashtag](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#account-implementations) Account Implementations Contract Address Base Optimism Unichain [AccountV1arrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/accounts/AccountV1.sol) (Margin) `0xbea2B6d45ACaF62385877D835970a0788719cAe1` [↗arrow-up-right](https://basescan.org/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) [↗arrow-up-right](https://uniscan.xyz/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) [AccountV2arrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/accounts/AccountSpot.sol) (Spot) `0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28` [↗arrow-up-right](https://basescan.org/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) [↗arrow-up-right](https://uniscan.xyz/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) [AccountV3arrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/accounts/AccountV3.sol) (Margin) `0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6` [↗arrow-up-right](https://basescan.org/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) [↗arrow-up-right](https://uniscan.xyz/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) [AccountV4arrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/accounts/AccountV4.sol) (Spot) `0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442` [↗arrow-up-right](https://basescan.org/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) [↗arrow-up-right](https://uniscan.xyz/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#position-managers) Position Managers ------------------------------------------------------------------------------------------------------------------------------ External protocol position managers have different addresses per chain. Arcadia wrapper contracts share the same address across all chains. Name Base Optimism Unichain UniswapV3 [0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1arrow-up-right](https://basescan.org/address/0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1) [0xC36442b4a4522E871399CD717aBDD847Ab11FE88arrow-up-right](https://optimistic.etherscan.io/address/0xC36442b4a4522E871399CD717aBDD847Ab11FE88) [0x943e6e07a7E8E791dAFC44083e54041D743C46E9arrow-up-right](https://uniscan.xyz/address/0x943e6e07a7E8E791dAFC44083e54041D743C46E9) UniswapV4 [0x7C5f5A4bBd8fD63184577525326123B519429bDcarrow-up-right](https://basescan.org/address/0x7C5f5A4bBd8fD63184577525326123B519429bDc) [0x3C3Ea4B57a46241e54610e5f022E5c45859A1017arrow-up-right](https://optimistic.etherscan.io/address/0x3C3Ea4B57a46241e54610e5f022E5c45859A1017) [0x4529A01c7A0410167c5740C487A8DE60232617bfarrow-up-right](https://uniscan.xyz/address/0x4529A01c7A0410167c5740C487A8DE60232617bf) Slipstream [0x827922686190790b37229fd06084350E74485b72arrow-up-right](https://basescan.org/address/0x827922686190790b37229fd06084350E74485b72) [0x416b433906b1B72FA758e166e239c43d68dC6F29arrow-up-right](https://optimistic.etherscan.io/address/0x416b433906b1B72FA758e166e239c43d68dC6F29) [0x991d5546C4B442B4c5fdc4c8B8b8d131DEB24702arrow-up-right](https://uniscan.xyz/address/0x991d5546C4B442B4c5fdc4c8B8b8d131DEB24702) Slipstream V2 [0xa990C6a764b73BF43cee5Bb40339c3322FB9D55Farrow-up-right](https://basescan.org/address/0xa990C6a764b73BF43cee5Bb40339c3322FB9D55F) Staked Slipstream [0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1arrow-up-right](https://basescan.org/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) [0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1arrow-up-right](https://optimistic.etherscan.io/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) [0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1arrow-up-right](https://uniscan.xyz/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) Staked Slipstream V2 [0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4carrow-up-right](https://basescan.org/address/0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c) Wrapped Staked Slipstream [0xD74339e0F10fcE96894916B93E5Cc7dE89C98272arrow-up-right](https://basescan.org/address/0xD74339e0F10fcE96894916B93E5Cc7dE89C98272) [0xD74339e0F10fcE96894916B93E5Cc7dE89C98272arrow-up-right](https://optimistic.etherscan.io/address/0xD74339e0F10fcE96894916B93E5Cc7dE89C98272) [0xD74339e0F10fcE96894916B93E5Cc7dE89C98272arrow-up-right](https://uniscan.xyz/address/0xD74339e0F10fcE96894916B93E5Cc7dE89C98272) Wrapped Staked Slipstream V2 [0x147a2CcbAF4521ad209A2875AE0B3c496f4B25a4arrow-up-right](https://basescan.org/address/0x147a2CcbAF4521ad209A2875AE0B3c496f4B25a4) Wrapped Aerodrome [0x17B5826382e3a5257b829cF0546A08Bd77409270arrow-up-right](https://basescan.org/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) [0x17B5826382e3a5257b829cF0546A08Bd77409270arrow-up-right](https://optimistic.etherscan.io/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) [0x17B5826382e3a5257b829cF0546A08Bd77409270arrow-up-right](https://uniscan.xyz/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) Staked Aerodrome [0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27arrow-up-right](https://basescan.org/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) [0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27arrow-up-right](https://optimistic.etherscan.io/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) [0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27arrow-up-right](https://uniscan.xyz/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#pricing-modules) Pricing Modules -------------------------------------------------------------------------------------------------------------------------- Pricing Module (Asset Module) addresses are shared across all chains. Some modules are only active on chains where their underlying protocol exists. Contract Address Base Optimism Unichain [ERC20PrimaryAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/ERC20-Primaries/ERC20PrimaryAM.sol) `0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7` [↗arrow-up-right](https://basescan.org/address/0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7) [↗arrow-up-right](https://uniscan.xyz/address/0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7) [UniswapV3AMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/UniswapV3/UniswapV3AM.sol) `0x21bd524cC54CA78A7c48254d4676184f781667dC` [↗arrow-up-right](https://basescan.org/address/0x21bd524cC54CA78A7c48254d4676184f781667dC) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x21bd524cC54CA78A7c48254d4676184f781667dC) [↗arrow-up-right](https://uniscan.xyz/address/0x21bd524cC54CA78A7c48254d4676184f781667dC) [UniswapV4HooksRegistryarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/asset-modules/UniswapV4/UniswapV4HooksRegistry.sol) `0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C` [↗arrow-up-right](https://basescan.org/address/0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C) [↗arrow-up-right](https://uniscan.xyz/address/0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C) [DefaultUniswapV4AMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/asset-modules/UniswapV4/DefaultUniswapV4AM.sol) `0xb808971ea73341b0d7286B3D67F08De321f80465` [↗arrow-up-right](https://basescan.org/address/0xb808971ea73341b0d7286B3D67F08De321f80465) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xb808971ea73341b0d7286B3D67F08De321f80465) [↗arrow-up-right](https://uniscan.xyz/address/0xb808971ea73341b0d7286B3D67F08De321f80465) [AerodromePoolAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Aerodrome-Finance/AerodromePoolAM.sol) `0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5` [↗arrow-up-right](https://basescan.org/address/0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5) [↗arrow-up-right](https://uniscan.xyz/address/0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5) [WrappedAerodromeAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Aerodrome-Finance/WrappedAerodromeAM.sol) `0x17B5826382e3a5257b829cF0546A08Bd77409270` [↗arrow-up-right](https://basescan.org/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) [↗arrow-up-right](https://uniscan.xyz/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) [StakedAerodromeAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Aerodrome-Finance/StakedAerodromeAM.sol) `0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27` [↗arrow-up-right](https://basescan.org/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) [↗arrow-up-right](https://uniscan.xyz/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) [SlipstreamAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Slipstream/SlipstreamAM.sol) `0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44` [↗arrow-up-right](https://basescan.org/address/0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44) [↗arrow-up-right](https://uniscan.xyz/address/0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44) [StakedSlipstreamAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Slipstream/StakedSlipstreamAM.sol) `0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1` [↗arrow-up-right](https://basescan.org/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) [↗arrow-up-right](https://uniscan.xyz/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) SlipstreamV2AM `0x3aDE1F1FdC666B1bFAd376345EA878D1c11EB73B` [↗arrow-up-right](https://basescan.org/address/0x3aDE1F1FdC666B1bFAd376345EA878D1c11EB73B) StakedSlipstreamV2AM `0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c` [↗arrow-up-right](https://basescan.org/address/0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c) [StargateAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/Stargate-Finance/StargateAM.sol) `0x20f7903290bF98716B62Dc1c9DA634291b8cfeD4` [↗arrow-up-right](https://basescan.org/address/0x20f7903290bF98716B62Dc1c9DA634291b8cfeD4) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x20f7903290bF98716B62Dc1c9DA634291b8cfeD4) [StakedStargateAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/Stargate-Finance/StakedStargateAM.sol) `0xae909e19fd13C01c28d5Ee439D403920CF7f9Eea` [↗arrow-up-right](https://basescan.org/address/0xae909e19fd13C01c28d5Ee439D403920CF7f9Eea) [↗arrow-up-right](https://optimistic.etherscan.io/address/0xae909e19fd13C01c28d5Ee439D403920CF7f9Eea) [AlienBaseAMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/UniswapV3/UniswapV3AM.sol) `0x79dD8b8d4abB5dEEA986DB1BF0a02E4CA42ae416` [↗arrow-up-right](https://basescan.org/address/0x79dD8b8d4abB5dEEA986DB1BF0a02E4CA42ae416) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#oracles) Oracles ---------------------------------------------------------------------------------------------------------- Contract Address Base Optimism Unichain [ChainlinkOMarrow-up-right](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/oracle-modules/ChainlinkOM.sol) `0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31` [↗arrow-up-right](https://basescan.org/address/0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31) [↗arrow-up-right](https://optimistic.etherscan.io/address/0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31) [↗arrow-up-right](https://uniscan.xyz/address/0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31) [hashtag](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#common-tokens) Common Tokens ---------------------------------------------------------------------------------------------------------------------- Token addresses vary by chain. WETH uses the standard OP-stack address on all chains. Token Decimals Base Optimism Unichain WETH 18 [0x4200000000000000000000000000000000000006arrow-up-right](https://basescan.org/address/0x4200000000000000000000000000000000000006) [0x4200000000000000000000000000000000000006arrow-up-right](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000006) [0x4200000000000000000000000000000000000006arrow-up-right](https://uniscan.xyz/address/0x4200000000000000000000000000000000000006) USDC 6 [0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913arrow-up-right](https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) [0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85arrow-up-right](https://optimistic.etherscan.io/address/0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85) [0x078D782b760474a361dDA0AF3839290b0EF57AD6arrow-up-right](https://uniscan.xyz/address/0x078D782b760474a361dDA0AF3839290b0EF57AD6) cbBTC 8 [0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bfarrow-up-right](https://basescan.org/address/0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf) AERO / VELO / xVELO 18 [0x940181a94A35A4569E4529A3CDfB74e38FD98631arrow-up-right](https://basescan.org/address/0x940181a94A35A4569E4529A3CDfB74e38FD98631) [0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Dbarrow-up-right](https://optimistic.etherscan.io/address/0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db) [0x7f9AdFbd38b669F03d1d11000Bc76b9AaEA28A81arrow-up-right](https://uniscan.xyz/address/0x7f9AdFbd38b669F03d1d11000Bc76b9AaEA28A81) AAA 18 [0xaaa843fb2916c0B57454270418E121C626402AAaarrow-up-right](https://basescan.org/address/0xaaa843fb2916c0B57454270418E121C626402AAa) stAAA 18 [0xDeA1531d8a1505785eb517C7A28526443df223F3arrow-up-right](https://basescan.org/address/0xDeA1531d8a1505785eb517C7A28526443df223F3) [PreviousContract Addresseschevron-left](https://docs.arcadia.finance/developers/contract-addresses) [NextCreditorschevron-right](https://docs.arcadia.finance/developers/contract-addresses/creditors) Last updated 21 days ago * [Core](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#core) * [Account Implementations](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#account-implementations) * [Position Managers](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#position-managers) * [Pricing Modules](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#pricing-modules) * [Oracles](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#oracles) * [Common Tokens](https://docs.arcadia.finance/developers/contract-addresses/smart-contracts#common-tokens) --- # Liquidity Provision | Arcadia Finance 1. Navigate to [https://arcadia.finance/arrow-up-right](https://arcadia.finance/) and click on **'Earn Passive Yield'** ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252FLouoRGA96fQCwPmSt0Dd%252FScreenshot%25202024-03-25%2520at%25204.32.32%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D3529175d-9f42-4421-a082-37932c073d6d&width=768&dpr=3&quality=100&sign=b8226171&sv=2) 1. You'll see an overview of the lending pools available. Select the pool you'd like to deposit in ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252Ftst3GHm7T5xmF7SM3K3z%252FScreenshot%25202024-03-25%2520at%25204.35.54%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D7cdf0574-5512-401b-a5e0-19c5bc95119a&width=768&dpr=3&quality=100&sign=ed9e051e&sv=2) 1. You'll be able to see detailed information about your selected pool, including historical borrow rate, utilization rate, assets and protocols that pool is exposed to. On the top right corner of the page, you'll be able to enter the amount to deposit ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252FGxvIoadPmeMlWA0C7Uwf%252FScreenshot%25202024-03-25%2520at%25204.37.44%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D50f5bf30-e0d6-4005-b348-5917891a01ab&width=768&dpr=3&quality=100&sign=4d8a128e&sv=2) 1. Click on 'Approve' after you've entered the amount. By approving, you will allow the Arcadia contracts to transfer your assets into the lending pool. ![](https://docs.arcadia.finance/~gitbook/image?url=https%3A%2F%2F1842996165-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FCZEtaA6yEHQp1bLQVU4p%252Fuploads%252FEDos9hWpFIOPfdhhlgaY%252FScreenshot%25202024-03-25%2520at%25204.40.42%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3Dc8d1f6af-755e-4975-870f-a5ba6fa520cb&width=768&dpr=3&quality=100&sign=a3f50e85&sv=2) 1. Once the approval is done, the button will be changed to 'Deposit.' Click on 'Deposit' and confirm the transaction in your wallet. This will initiate the transfer of assets to the lending pool. Congrats, you've now become a lender (aka a bank). You're now providing liquidity to Arcadia users and earning fees passively for doing so! [PreviousTutorialschevron-left](https://docs.arcadia.finance/tutorials) [NextAccountschevron-right](https://docs.arcadia.finance/tutorials/account-overview) Last updated 21 days ago --- # Rebalancers: Deep Dive | Arcadia Finance _Source:_ [_Arcadia Finance Blog_arrow-up-right](https://arcadiafinance.notion.site/Rebalancers-15804482afa7801a9c77ca1d2a932040) The Rebalancer serves a single purpose: to automate the rebalancing of concentrated liquidity positions (CLPs) when the relative prices of their underlying assets change. In this post we will outline what Rebalancers are, what the trust assumptions are and how the Rebalancers work. [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#why-you-need-rebalancers) Why you need Rebalancers --------------------------------------------------------------------------------------------------------------------- DEXs like Uniswap V3, Uniswap V4, Slipstream, use concentrated liquidity. As a Liquidity Provider you only supply liquidity between a lower and an upper price. If the price moves outside of this range, you will no longer be earning fees as LP. Hence in order to continue earning fees as Liquidity provider, these CLPs have to be managed and rebalanced so that the amount of fees earned is maximised, while costs (like swap fees, Impermanent Loss (IL) etc.) are minimised. Finding the optimal strategy that determines when to rebalance, and which new lower and upper price to use, is a complex problem to solve, and it depends on multiple factors: * Type of liquidity pool (stable pool, correlated assets, volatile assets...) * Market conditions (bullish, bearish, flat) * Objectives of the position owner * Chain conditions e.g. gas price Some simple rebalance strategies can be: * Rebalance when out of range back to a 50/50 position * Trailing strategies: only rebalance when out of range in one direction * Rebalance after fixed time periods But they can (and should) be much more complex: * Non-symmetric positions * Use variable ranges depending on volatility * Increase ranges to avoid IL * Multi CLP strategies with different liquidity distributions (gaussian, triangle...) The Rebalancer is made in such a way that it works with any rebalance strategy. The main logic is strategy agnostic: it takes as input an old position, the new upper price and the new lower price. Optionally, Arcadia Account Owners can impose strategy specific restrictions (such as min/max ranges, cooldown periods etc.) via separate hooks contracts. [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#trust-assumptions) Trust Assumptions ------------------------------------------------------------------------------------------------------- The Rebalancer is of the Non-Custodial Permissioned type. It is a smart contract that can only perform a single atomic action (rebalancing CLPs), it never holds assets and can never be used to withdraw assets from an Account. But it does require input from a permissioned (whitelisted) user (further called the Initiator). The initiator has to call the Rebalancer contract and has to determine: * When to rebalance * The range of the new Liquidity Position A malicious initiator can still only rebalance via the Rebalancer, while it is a trusted role, they can never steal funds or Liquidity from the Account Owner. The worst a malicious/incompetent Rebalancer can do, is trigger Rebalances at bad moments and move liquidity to non-optimal ranges, resulting in value lost due to swap fees, slippage and opportunity cost. But they can never "rug" the assets of an Account. Since Initiators can be revoked/replaced at any time by the Account Owner, they are incentivised to rebalance optimally, to keep earning fees for their services. The Rebalancer is permissioned, but that does not mean it is centralised. Each Account Owner can choose if they enable the Rebalancer at all. And if they do, they can choose who they set as initiator. Different initiators can for instance run different rebalance strategies, or ask different fee amounts for their services. [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#rebalancer-implementation) Rebalancer Implementation ----------------------------------------------------------------------------------------------------------------------- The code of the Arcadia Rebalancer can be found here: [https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/Rebalancer.solarrow-up-right](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/Rebalancer.sol) We kept the logic for the Rebalancer as simple as possible, it has a single function to rebalance the position: Which accepts the following inputs (to be provided by the Initiator): * The account for which a CLP has to be rebalanced * Information about the old position: positionManager and oldId. The Rebalancer works for different CLAMMs such as Uniswap V3, Slipstream (both staked and unstaked) * Information about the new position: tickLower and tickUpper * Optionally swapData: the initiator can specify custom swap data (to limit slippage). If not provided, the Rebalancer will use the underlying Pool of the CLP to rebalance. The Rebalancer will execute a number of checks and actions: ### [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#verifications-before-the-rebalance) Verifications before the rebalance The following checks are performed before the rebalance: * The Arcadia Account exists * The Initiator is whitelisted by the Account Owner * Optionally: any strategy specific constraints (such as cooldown periods, range limitations...) are checked on the Strategy Hook contract. * Verify that the pool is balanced (see next paragraph). ### [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#verify-that-the-pool-is-balanced) Verify that the pool is balanced Before we rebalance, it is important to check that the liquidity pool of our position is balanced. If this was not the case, a malicious Initiator could execute something similar to a sandwich attack: * Bring the pool out of balance (this could be done with a flash loan). * Call the Rebalancer, which now creates a new position in an unbalanced pool. * Bring the pool back into balance. If the total active liquidity of the pool is bigger after the rebalance, the profit from bringing the pool in balance is bigger than the cost to bring the pool out of balance. Note that the Account Owner must have approved this malicious Initiator before this is possible! To check if a pool is balanced, we need to compare the current price of the pool (which can be manipulated) with the expected price, based on the trusted price feeds of both underlying assets. Luckily all that pricing logic is already implemented in the Arcadia Registry! The Rebalancer will fetch the USD-price for token0 (P0→usdP\_{0 \\rightarrow usd}P0→usd​) and token1 (P1→usdP\_{1 \\rightarrow usd}P1→usd​) and check that: Ppool\=P0→usdP1→usdP\_{pool} = \\frac{P\_{0 \\rightarrow usd}}{P\_{1 \\rightarrow usd}}Ppool​\=P1→usd​P0→usd​​ ### [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#burn-the-old-liquidity-position) Burn the old Liquidity position This step is straightforward, the liquidity position is decomposed in its underlying assets, and any pending fees (or rewards for staked positions) are claimed. After burning the old position, the Rebalancer will hold a certain balance0balance\_0balance0​ and balance1balance\_1balance1​ of the underlying assets. ### [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#calculate-the-theoretical-maximum-of-liquidity-that-can-be-added) Calculate the theoretical Maximum of liquidity that can be added After the new position is minted, the actual minted liquidity is compared with the theoretical Maximum and should be within acceptable bounds. When adding liquidity to a Uniswap V3 position, token0 and token1 (the underlying tokens) have to be added in a certain ratio depending on the lower and upper tick of the liquidity position and on the current price of the pool. The amounts of balance0balance\_0balance0​ and balance1balance\_1balance1​, do under most circumstances not match the required ratio, directly adding the balances as liquidity will result in some leftover for either token0 or token1. To calculate the theoretical Maximum amount of liquidity, LmaxL\_{max}Lmax​, we first rebalance token0 and token1 such that after minting the liquidity position there are no leftovers in either token0 or token1. In order to do this, an amount of token0 has to be swapped into token1 (or opposite). In the theoretical maximum we assume we can swap without slippage (the current price of the pool, P0→1P\_{0 \\rightarrow 1}P0→1​, remains constant), but we take into account swapping fees. We can calculate the optimal swap amounts Δamount0\\Delta amount\_{0}Δamount0​ and Δamount1\\Delta amount\_{1}Δamount1​ analytically in the no slippage case. #### [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#derivation-of-optimal-swap-amounts) Derivation of optimal swap amounts In the no slippage case (constant pool price), the relation between amountinamount\_{in}amountin​ and its corresponding amountoutamount\_{out}amountout​ is given as: amountout\=(1−fee)⋅amountin⋅Pin→out(1)amount\_{out} = (1-fee) \\cdot amount\_{in} \\cdot P\_{in \\rightarrow out} \\quad (1)amountout​\=(1−fee)⋅amountin​⋅Pin→out​(1) For new positions that are out of range the optimal swap amounts are straightforward: * If the current tick is above the upper tick, all balance0balance\_0balance0​ has to be swapped to token1. * If the current tick is below the lower tick, all balance1balance\_1balance1​ has to be swapped to token0. For positions in range, we first calculate the Target ratio: Rtarget\=sqrtPrice−sqrtRatioLower2⋅sqrtPrice−sqrtRatioLower−sqrtPrice2sqrtRatioUpper(2)R\_{target} = \\frac{sqrtPrice - sqrtRatioLower}{2 \\cdot sqrtPrice - sqrtRatioLower - \\frac{sqrtPrice^2}{sqrtRatioUpper}} \\quad (2)Rtarget​\=2⋅sqrtPrice−sqrtRatioLower−sqrtRatioUppersqrtPrice2​sqrtPrice−sqrtRatioLower​(2) And the current ratio: Rcurrent:\=balance1balance0⋅sqrtPrice2+balance1(3)R\_{current} := \\frac{balance\_1 }{balance\_0 \\cdot sqrtPrice^2 + balance\_1} \\quad (3)Rcurrent​:=balance0​⋅sqrtPrice2+balance1​balance1​​(3) If we want to mint as much liquidity as possible, both ratios should be equal after the swap: Rtarget\=balance1+Δamount1(balance0+Δamount0)⋅sqrtPrice2+(balance1+Δamount1)(4)R\_{target} = \\frac{balance\_1 + \\Delta amount\_{1}}{(balance\_0+ \\Delta amount\_{0}) \\cdot sqrtPrice^2 + (balance\_1+ \\Delta amount\_{1})} \\quad (4)Rtarget​\=(balance0​+Δamount0​)⋅sqrtPrice2+(balance1​+Δamount1​)balance1​+Δamount1​​(4) Combining equations (1), (3) and (4): If Rtarget\>RcurrentR\_{target} > R\_{current}Rtarget​\>Rcurrent​, we need to swap token0 for token1: Δamount0\=−Δamount1(1−fee)⋅sqrtPrice2\\Delta amount\_{0} = -\\frac{\\Delta amount\_{1}} {(1-fee) \\cdot sqrtPrice^2}Δamount0​\=−(1−fee)⋅sqrtPrice2Δamount1​​ Δamount1\=(Rtarget−Rcurrent)⋅(balance0⋅sqrtPrice2+balance1)1+Rtargetfee1−fee\\Delta amount\_1 = \\frac{(R\_{target} - R\_{current}) \\cdot (balance\_0 \\cdot sqrtPrice^2 + balance\_1)}{1 + R\_{target} \\frac{fee}{1-fee}}Δamount1​\=1+Rtarget​1−feefee​(Rtarget​−Rcurrent​)⋅(balance0​⋅sqrtPrice2+balance1​)​ If Rtarget An Arcadia Account can never end up in an unhealthy position at the end of a transaction. This includes the rebalancer. Make sure your Account remains in a healthy state, otherwise it won't be rebalanced. ### [hashtag](https://docs.arcadia.finance/deep-dives/rebalancers#overview-fees-and-costs-involved-with-rebalancing) Overview fees & costs involved with rebalancing * **Initiator fee**: The initiator of the rebalance (who triggers it) receives a 0.05% fee on the amount swapped. * **Swap fee**: The swap fee is at most the fee of the LP pool itself (e.g., a 0.01% pool means a max swap fee of 0.01%). * **Slippage & leftovers**: Slippage and leftovers are capped at 99% of the optimal rebalance (i.e., assuming infinite liquidity and no slippage). Leftovers aren't an actual cost. * **Impermanent loss** (IL): Rebalancing locks in any impermanent loss, making it permanent. However, IL itself isn't a direct cost. To minimize swap fees and slippage we use optimizers for routing like Odos. [PreviousCompounders: Deep Divechevron-left](https://docs.arcadia.finance/deep-dives/compounders) [NextComposable Pricing Logicchevron-right](https://docs.arcadia.finance/deep-dives/composable-pricing-logic) Last updated 21 days ago * [Why you need Rebalancers](https://docs.arcadia.finance/deep-dives/rebalancers#why-you-need-rebalancers) * [Trust Assumptions](https://docs.arcadia.finance/deep-dives/rebalancers#trust-assumptions) * [Rebalancer Implementation](https://docs.arcadia.finance/deep-dives/rebalancers#rebalancer-implementation) * [Verifications before the rebalance](https://docs.arcadia.finance/deep-dives/rebalancers#verifications-before-the-rebalance) * [Verify that the pool is balanced](https://docs.arcadia.finance/deep-dives/rebalancers#verify-that-the-pool-is-balanced) * [Burn the old Liquidity position](https://docs.arcadia.finance/deep-dives/rebalancers#burn-the-old-liquidity-position) * [Calculate the theoretical Maximum of liquidity that can be added](https://docs.arcadia.finance/deep-dives/rebalancers#calculate-the-theoretical-maximum-of-liquidity-that-can-be-added) * [Rebalance the underlying assets](https://docs.arcadia.finance/deep-dives/rebalancers#rebalance-the-underlying-assets) * [Mint the new Liquidity Position](https://docs.arcadia.finance/deep-dives/rebalancers#mint-the-new-liquidity-position) * [Verifications after the rebalance](https://docs.arcadia.finance/deep-dives/rebalancers#verifications-after-the-rebalance) * [Transfer a fee to the initiator](https://docs.arcadia.finance/deep-dives/rebalancers#transfer-a-fee-to-the-initiator) * [Overview fees & costs involved with rebalancing](https://docs.arcadia.finance/deep-dives/rebalancers#overview-fees-and-costs-involved-with-rebalancing) Copy rebalance( address account, address positionManager, uint256 oldId, int24 tickLower, int24 tickUpper, bytes calldata swapData ) --- # Unknown \# Arcadia Finance ## Arcadia Finance - \[Introduction\](/introduction.md): Welcome to Arcadia Finance documentation. Arcadia is a non-custodial composable margin protocol on Base, Optimism, and Unichain for leveraged yield strategies on AMM liquidity positions. - \[Overview\](/introduction/overview.md): Arcadia Finance: DeFi liquidity management protocol on Base, Optimism, and Unichain. Earn yield on AMM liquidity positions with one-click strategies, automated asset management, and built-in margin — - \[Concepts\](/introduction/concepts.md): Core concepts and terminology used throughout Arcadia Finance: DeFi Accounts, Lending Pools, Farms, AMMs, and Collateralized Loans. - \[Arcadia DeFi Accounts\](/introduction/concepts/arcadia-defi-accounts.md): Arcadia DeFi Accounts are self-custodial smart contract wallets (Spot and Margin types) that enable batched transactions, automated portfolio management, and one-click leveraged LP strategies. - \[Arcadia Lending Pools\](/introduction/concepts/lending-pools.md): How Arcadia Lending Pools work: isolated USDC, WETH, and cbBTC pools following ERC-4626, tranched liquidity, interest rate mechanics, and liquidation protection for lenders. - \[Arcadia Farms\](/introduction/concepts/farms.md): How Arcadia Farms incentivize liquidity providers with additional rewards on top of DEX trading fees. - \[Arcadia Rewards\](/introduction/concepts/arcadia-rewards.md): Arcadia Rewards program: how users earn rewards for protocol participation and liquidity provision. - \[Automated Market Maker (AMM)\](/introduction/concepts/automated-market-makers.md): Automated Market Makers (AMMs) explained: constant product formula, concentrated liquidity (Uniswap V3), virtual AMMs (Aerodrome/Velodrome), and how they relate to Arcadia strategies. - \[Collateralized Loans\](/introduction/concepts/collateralized-loans.md): How collateralized loans work in DeFi and within Arcadia: over-collateralization, liquidation thresholds, and health factors. - \[Users\](/users.md): User roles in Arcadia Finance: Lenders, Strategists, Farmers, and Protocols — what each role does and how to get started. - \[Lenders\](/users/lenders.md): How to lend assets on Arcadia Finance: deposit into USDC, WETH, or cbBTC lending pools, earn passive yield via ERC-4626 tranches, and optionally cover deposits. - \[Strategists\](/users/strategists.md): How Strategists use Arcadia Margin Accounts to create leveraged yield strategies on AMM liquidity positions across Uniswap and Aerodrome. - \[Delta Neutral USD\](/users/strategists/delta-neutral-usd.md): Delta Neutral USD strategy: earn leveraged yield on stable LP pools while maintaining USD-denominated delta neutrality. - \[Delta Neutral ETH\](/users/strategists/delta-neutral-eth.md): Delta Neutral ETH strategy: earn leveraged yield on correlated-asset LP pools while maintaining ETH-denominated delta neutrality. - \[Bullish Crypto\](/users/strategists/bullish-crypto.md): Bullish Crypto strategy: earn leveraged LP yield with long exposure to volatile assets like ETH using Arcadia Margin Accounts. - \[Bearish Crypto\](/users/strategists/bearish-crypto.md): Bearish Crypto strategy: earn LP yield while maintaining short exposure to volatile assets using Arcadia Margin Accounts. - \[Farmers\](/users/farmers.md): How Farmers use Arcadia Spot Accounts to manage LP positions with automated compounding, rebalancing, and reward claiming. - \[Protocols\](/users/protocols.md): How protocols use Arcadia Foundry to manage onchain liquidity: protocol-owned liquidity for native tokens and treasury management for established pairs. - \[Tutorials\](/tutorials.md): Step-by-step tutorials for using Arcadia Finance: creating accounts, providing liquidity, entering strategies, and managing positions. - \[Liquidity Provision\](/tutorials/liquidity-provision.md): Tutorial: how to provide liquidity on DEXs through Arcadia, including one-click zaps for Uniswap V3 and Aerodrome positions. - \[Accounts\](/tutorials/account-overview.md): Tutorial: overview of Arcadia Account features, managing assets, viewing positions, and understanding account health. - \[First Strategy\](/tutorials/first-strategy.md): Tutorial: how to enter your first leveraged yield strategy on Arcadia Finance step by step. - \[Managing positions\](/tutorials/managing-positions.md): Tutorial: how to manage existing positions on Arcadia — adjusting leverage, rebalancing, claiming rewards, and closing positions. - \[Advanced Strategies\](/tutorials/farm.md): Tutorial: advanced farming strategies using Arcadia Spot Accounts with auto-compounding and auto-rebalancing. - \[Foundry\](/foundry-intro.md): Arcadia Foundry: the strategy creation interface for building and deploying automated yield strategies on Arcadia. - \[Benefits\](/foundry-intro/foundry-benefits.md): Benefits of Arcadia Foundry: simplified strategy creation, one-click deployment, automated management, and built-in risk controls. - \[Protocol Owned Liquidity\](/foundry-intro/foundry-pol.md): Protocol Owned Liquidity: how protocols use Arcadia Foundry to manage liquidity for their native token with automated strategies. - \[Treasury Management\](/foundry-intro/foundry-treasury.md): Treasury Liquidity Management: how protocols deploy treasury assets into established AMM pairs for yield using Arcadia Foundry. - \[Dashboard\](/foundry-intro/foundry-tutorial.md): Tutorial: using the Arcadia Foundry dashboard to create, monitor, and manage yield strategies. - \[Position Wizard\](/foundry-intro/foundry-wizard.md): Arcadia Foundry Position Wizard: guided interface for creating optimized LP positions with leverage and automation. - \[Governance\](/governance.md) - \[Arcadia DAO\](/governance/arcadia-dao.md): Arcadia DAO structure, voting mechanisms, and how AAA token holders participate in protocol governance. - \[Token Mechanics\](/governance/tokenomics.md): AAA token mechanics: supply, distribution, stAAA staking, utility within the protocol, and fee rebate eligibility. - \[Fee Rebates\](/governance/fee-rebates.md): How stAAA holders earn fee rebates on Arcadia: rebate tiers, calculation methodology, and claiming process. - \[Protocol\](/protocol.md): Technical documentation for the Arcadia Protocol: DeFi Accounts, Flash Actions, Creditors, margin calculations, liquidations, Asset Managers, asset pricing, and fees. - \[Arcadia DeFi Accounts\](/protocol/arcadia-defi-accounts.md): Technical details of Arcadia DeFi Accounts: Factory contract, Account versions, Spot vs Margin accounts, deposit/withdrawal mechanics, and ownership model. - \[Flash Actions\](/protocol/flash-actions.md): Flash Actions enable atomic multi-step DeFi operations within Arcadia Accounts: leverage, deleverage, rebalance, and refinance in a single transaction without risk of bad debt. - \[Arcadia Creditors\](/protocol/arcadia-creditors.md): Arcadia Creditors: how lending pools and other creditors integrate with Arcadia Accounts, risk parameters, and the creditor interface. - \[Margin Calculations\](/protocol/margin-calculations-and-requirements.md): How Arcadia calculates margin requirements: collateral value, liquidation value, collateral factors, liquidation factors, and health factor computation. - \[Liquidations\](/protocol/liquidations.md): Arcadia liquidation mechanism: Dutch auction for unhealthy Margin Accounts, partial liquidations, health factor triggers, auction dynamics, and liquidation bot integration. - \[Asset Managers\](/protocol/asset-managers.md): Asset Managers overview: permissionless, permissioned, and custodial automation for Arcadia Accounts — Compounders, Rebalancers, Yield Claimers, CoW Swapper, and Merkl Operators. - \[Compounders\](/protocol/asset-managers/compounders.md): Compounders: immutable, permissionless Asset Managers that auto-compound concentrated liquidity fees. Properties, fee structure, and link to technical deep dive. - \[Rebalancers\](/protocol/asset-managers/rebalancers.md): Rebalancers: non-custodial permissioned Asset Managers that auto-rebalance concentrated liquidity positions. Trust assumptions, strategies, hook system, fee tiers, rate limits, and stAAA benefits. - \[Yield Claimers\](/protocol/asset-managers/yield-claimers.md): Yield Claimers: Asset Managers that claim staking rewards and yield from liquidity positions and send them to a designated recipient. - \[Merkl Operators\](/protocol/asset-managers/merkl-operators.md): Merkl Operators: Asset Managers that automatically claim Merkl rewards from liquidity incentive campaigns and send them to a receiver set by the Account Owner. - \[CoW Swapper\](/protocol/asset-managers/cow-swapper.md): CoW Swapper: trustless MEV-protected ERC20-to-ERC20 swaps within Arcadia Accounts via CoW Protocol batch auctions. Use cases include compounding staking rewards, take profit, debt repayment, and stop - \[Asset Pricing\](/protocol/asset-pricing.md): How Arcadia prices assets on-chain: the Registry, Oracle Modules, Primary and Derived Asset Modules, and recursive decomposition of composed assets like staked LP positions. - \[Fees\](/protocol/fees.md): Arcadia Protocol fee structure: yield success fees, swap fees, initiator fees, and how stAAA holdings reduce fees. - \[Security & Risk\](/security-and-risk.md): Security and risk management for Arcadia Protocol: audits, risk parameters, circuit breakers, insurance/cover options, and protocol roles. - \[Audits\](/security-and-risk/audits.md): Arcadia Protocol audit history: completed security audits by Pashov Group, Sherlock, and other auditors, with links to audit reports. - \[Risk Management\](/security-and-risk/risk.md): Risk management in Arcadia: per-asset risk parameters (collateral factors, liquidation factors), risk exposure limits, and how Creditors configure risk. - \[Circuit Breakers\](/security-and-risk/circuit-breakers.md): Arcadia circuit breakers: automated safety mechanisms that pause protocol operations during extreme market events or oracle failures. - \[Insurance/Cover\](/security-and-risk/insurance.md): Insurance and cover options for Arcadia lending pool deposits: smart contract exploit protection via coverage protocols. - \[Roles\](/security-and-risk/roles.md): Protocol roles in Arcadia: owner, guardian, risk manager, and their permissions across Factory, Registry, Lending Pools, and Asset Modules. - \[Developers\](/developers.md): Developer documentation for Arcadia Protocol: contract addresses, integration guides for Asset Managers, Liquidators, and Creditors. - \[Contract Addresses\](/developers/contract-addresses.md): All Arcadia Protocol deployed contract addresses across Base (chain ID 8453), Optimism (chain ID 10), and Unichain (chain ID 130), organized by category: core protocol, creditors, and asset managers. - \[Core protocol\](/developers/contract-addresses/smart-contracts.md): Core Arcadia Protocol contract addresses across Base, Optimism, and Unichain: Factory, Registry, Account implementations, Liquidator, Position Managers, Pricing Modules, Oracle Modules, and common tok - \[Creditors\](/developers/contract-addresses/creditors.md): Arcadia Creditor contract addresses across Base, Optimism, and Unichain: Lending Pools (WETH, USDC, cbBTC), Tranches (Senior), and Wrapped Tranches (ERC-4626 compliant). - \[Asset Managers\](/developers/contract-addresses/asset-managers.md): Arcadia Asset Manager contract addresses across Base, Optimism, and Unichain: Compounders, Rebalancers, Yield Claimers, CoW Swapper, and Merkl Operators for Slipstream, Uniswap V3, and Uniswap V4. - \[Integrations\](/developers/integrations.md): Integration guides for building on the Arcadia Protocol: how to build Asset Managers, Liquidation bots, and custom Creditors. - \[Asset Managers\](/developers/integrations/asset-managers.md): Developer guide: how to build custom Asset Managers for Arcadia Accounts — interface requirements, permissions model, and flash action integration. - \[Liquidators\](/developers/integrations/liquidators.md): Developer guide: how to build liquidation bots for Arcadia — monitoring unhealthy accounts, participating in Dutch auctions, and settlement. - \[Creditors\](/developers/integrations/creditors.md): Developer guide: how to integrate as a Creditor with Arcadia Protocol — implementing the creditor interface, setting risk parameters, and managing debt. - \[For AI Agents\](/developers/integrations/ai-agents.md): Integration guide for AI agents interacting with Arcadia Protocol: chain deployments, key contract addresses, common read operations, account queries, and programmatic docs access via llms.txt. - \[MCP Server\](/developers/integrations/mcp-server.md): Use the Arcadia MCP Server to let AI agents manage liquidity positions, borrow, deposit, and interact with the Arcadia Protocol via Claude, Cursor, or any MCP-compatible client. - \[Deep Dives\](/deep-dives.md): Technical deep dives into Arcadia Protocol internals: mathematical derivations, trust models, fee structures, and implementation details for Asset Managers, pricing logic, delta neutral strategies, an - \[Delta Neutral Strategies\](/deep-dives/delta-neutral-strategies.md): The Greeks (Delta, Gamma), delta/gamma neutral portfolios, True Delta Neutral (leveraged stable pools), Pseudo Delta Neutral (2x leveraged volatile pools), with full mathematical derivations of Uniswa - \[Compounders: Deep Dive\](/deep-dives/compounders.md): How the Compounder Asset Manager works: immutable, stateless, permissionless fee compounding for concentrated liquidity positions. Covers pool balance verification, fee thresholds, fee rebalancing mat - \[Rebalancers: Deep Dive\](/deep-dives/rebalancers.md): How the Rebalancer Asset Manager works: why CLPs need rebalancing, trust assumptions (permissioned but non-custodial), the rebalance() function, pool balance verification, liquidity burn, theoretical - \[Composable Pricing Logic\](/deep-dives/composable-pricing-logic.md): How Arcadia values complex composed assets on-chain using recursive decomposition. The Registry coordinates pricing by breaking composed tokens into underlying assets via Asset Modules, each implement - \[Arcadia and Uniswap v4\](/deep-dives/arcadia-and-uniswap-v4.md): What Uniswap v4 brings (hooks, customizable pools, gas savings), impact on traders, LPs, and protocols. How Arcadia positions itself as an intelligent Liquidity Management Layer / aggregator for LPs a - \[CoW Swapper: Deep Dive\](/deep-dives/cow-swapper.md): How the CoW Swapper enables trustless, MEV-protected ERC20-to-ERC20 swaps within Arcadia Accounts via CoW Protocol batch auctions. Covers the full flow (order signing, auction, settlement via flash ac - \[Resources\](/resources.md): Arcadia Finance resources: brand assets, contact information, and community links. - \[Brand Assets\](/resources/brand-assets.md): Arcadia Finance brand assets: logos, colors, and guidelines for using Arcadia branding. - \[Contact and Support\](/resources/contact-and-support.md): Contact Arcadia Finance: Discord, Twitter/X, and support channels for questions and strategy discussions. --- # Unknown \# Introduction Welcome to Arcadia Finance documentation. Arcadia is a non-custodial composable margin protocol on Base, Optimism, and Unichain for leveraged yield strategies on AMM liquidity positions. !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-1925d720b6a09369bdfc23a3472abcc4273d5f88%2FArcadia%20General%20Green.png?alt=media) ### Welcome to Arcadia Finance \[Join us on Discord\](https://discord.com/invite/PXcr8SEeTH) to ask questions and discuss strategies\\ \[Follow us on X\](https://x.com/ArcadiaFi) to stay up to date with the latest developments. # Overview Arcadia Finance: DeFi liquidity management protocol on Base, Optimism, and Unichain. Earn yield on AMM liquidity positions with one-click strategies, automated asset management, and built-in margin — ## What is Arcadia? \*\*Arcadia Finance\*\* allows everyone, both professional market makers as everyday users, to earn yield, leveraging \[Automated Market Maker (AMM)\](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) liquidity positions. It supports both virtual and concentrated liquidity positions and is integrated with major Decentralized Exchanges (DEXs) such as Uniswap and Aerodrome. The protocol is deployed on \*\*Base\*\*, \*\*Optimism\*\*, and \*\*Unichain\*\*. Arcadia Finance is the first user-facing application built on top of The Arcadia Protocol, designed to showcase its power. \*\*The Arcadia Protocol\*\* is the next-generation DeFi asset management protocol that powers Arcadia Finance. Through user-owned DeFi Accounts, it provides: \* Simple one-click transactions to enter sophisticated high-yield strategies, normally reserved for professionals. \* Automation of asset and risk management without giving up on self custody. \* Built-in margin. \* An interface for third parties and AI agents to manage assets within onchain enforceable boundaries. For deeper technical details, see the \[protocol whitepaper\](https://github.com/arcadia-finance/whitepapers/blob/main/main.pdf). !\[Arcadia Protocol\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-011c4c79589fdd88a0b1ede64c4eb9ee9f294c64%2Farcadia-protocol.png?alt=media) \*\*Pragma Labs\*\* is the research company that develops The Arcadia Protocol and the underlying off-chain infrastructure. \*\*Arcadia Protocol LLC\*\* develops, commercializes and hosts user-facing applications built on top of The Arcadia Protocol. # Concepts Core concepts and terminology used throughout Arcadia Finance: DeFi Accounts, Lending Pools, Farms, AMMs, and Collateralized Loans. This page explains some commonly used concepts and terminology in a non-technical way. # Arcadia DeFi Accounts Arcadia DeFi Accounts are self-custodial smart contract wallets (Spot and Margin types) that enable batched transactions, automated portfolio management, and one-click leveraged LP strategies. Arcadia DeFi Accounts are user-owned smart contracts that function like self-custodial wallets, but with added efficiency and automations. They allow users to batch multiple transactions and automate portfolio management, making complex DeFi interactions seamless. Actions that would normally require multiple steps—like rebalancing liquidity positions, unwinding assets, or managing leverage—can be executed in a single transaction with an Arcadia DeFi Account. There are 2 types of Arcadia Accounts: 1. \*\*Spot Accounts\*\* \* Create LP positions with any assets. \* No borrowing or leverage—just an optimal way to manage liquidity. 2. \*\*Margin Accounts\*\* \* Support leverage by borrowing against collateral. \* LP positions can only be created using allowlisted assets. \* Assets inside the account contribute to its overall health, enabling greater flexibility in liquidity management. \* Deposited and borrowed assets count as collateral. Both account types benefit from \*\*Arcadia’s automation tools\*\* like the \*\*auto-rebalancer\*\* and \*\*auto-compounder\*\*, and one-click zaps, helping users optimize their liquidity positions effortlessly. For a technical explanation what Arcadia accounts are and how they work, see \[here\](https://docs.arcadia.finance/protocol/arcadia-defi-accounts). # Arcadia Lending Pools How Arcadia Lending Pools work: isolated USDC, WETH, and cbBTC pools following ERC-4626, tranched liquidity, interest rate mechanics, and liquidation protection for lenders. Arcadia Lending offers isolated lending pools where \[Lenders\](https://docs.arcadia.finance/users/lenders) supply assets to earn passive yield. \[Strategists\](https://docs.arcadia.finance/users/strategists) and \[Farmers\](https://docs.arcadia.finance/users/farmers) can borrow funds from the lending pools, using their \[Arcadia Accounts\](https://docs.arcadia.finance/introduction/concepts/arcadia-defi-accounts) as collateral, and pay interests to the Lenders. Deposits in Arcadia’s lending pools can be \[covered\](https://docs.arcadia.finance/security-and-risk/insurance), protecting deposits against smart contract exploits. Currently, Arcadia supports \*\*USDC, wETH, and cbBTC lending pools\*\*, each operating independently. These pools follow the ERC-4626 vault standard, making them compatible with platforms like \*\*Superform\*\* and \*\*Vaults.fyi\*\*. #### \*\*How It Works\*\* \* \*\*Lenders\*\* deposit assets and receive \*\*yield-bearing tokens\*\* that automatically accrue yield. \* \*\*Borrowers\*\* use Arcadia Accounts to create leveraged liquidity positions on various DEXs. \* \*\*Interest rates\*\* adjust based on pool utilization—higher borrowing demand means higher returns for lenders. \* \*\*Liquidations\*\* ensure unhealthy positions are closed before bad debt occurs, with lenders earning a share of penalties paid by the liquidated Accounts. For information related to fees, see \[Fees\](https://docs.arcadia.finance/protocol/fees). # Arcadia Farms How Arcadia Farms incentivize liquidity providers with additional rewards on top of DEX trading fees. Arcadia streamlines liquidity provision on multiple leading DEXs through an intuitive interface that combines essential pool data with flexible position management. Depending on the users' strategy and risk appetite, they can use margin or spot Accounts to provide liquidity. With \*\*margin Accounts\*\* users can only provide liquidity to pools where the underlying assets are accepted as collateral by Arcadia’s lending pools. At the time of writing, more than 100 pools are available for margin liquidity provision. With \*\*spot Accounts\*\*, on the other hand, users can create LP positions for any token, including speculative meme coins or community tokens. Since no leverage is taken, the underlying assets do not need to be allowed as collateral. Users maintain complete control over their LP positions, just as they would when interacting directly with DEXs. This includes the ability to adjust position ranges, open or close positions, and modify leverage ratios for margin positions. Next to being a helpful platform for beginning liquidity providers, it is suited for experienced liquidity providers who understand DEX mechanics and want to maintain granular control while benefiting from streamlined position management across multiple platforms. # Arcadia Rewards Arcadia Rewards program: how users earn rewards for protocol participation and liquidity provision. Arcadia's reward system focuses on incentives that drive participation and usage ## Lenders The protocol tracks all lending rewards through ERC4626 yield-bearing tokens that represent your share of the lending pool. These tokens continuously accrue value: \* Rewards accumulate automatically in real-time \* Rewards are auto-compounding on your lending position #### Interests When users borrow assets from \[Arcadia's lending pools\](https://docs.arcadia.finance/introduction/concepts/lending-pools), they pay interest based on utilization. Unlike many protocols that take a fee, Arcadia passes all of these rewards to lenders: \* 100% of borrower interest payments flow to lenders \* No hidden Arcadia fees, what you deposit is what you can minimally withdraw The protocol uses a dynamic interest rate model that responds to market demand. Interest rates automatically adjust based on pool utilization to maintain optimal liquidity levels. This curve ensures that lenders earn more as demand increases, while borrowers maintain access to reasonably priced loans during normal market conditions. #### Liquidation Rewards When Borrowers get \[liquidated\](https://docs.arcadia.finance/protocol/liquidations), up to 50% of liquidation penalties get distributed to Lenders #### AAA Emissions Besides all the rewards mentioned earlier Arcadia might decide to incentivise their USDC, wETH or cbBTC pools with additional AAA emissions. #### Extra Rewards Beyond base protocol rewards, Arcadia works with partners to provide additional earning opportunities: \* Extra incentives from partner protocols. \* Special rewards during ecosystem promotions (like Superchain rewards). ## Accounts #### Liquidity Provision When providing liquidity on DEXs, accounts earn multiple reward streams: \* Trading fees from standard liquidity positions. \* AERO tokens when using staked Slipstream positions. For example: \* A margin account user might provide ETH-USDC liquidity on Aerodrome Staked Slipstream with borrowed funds, earning AERO instead of trading fees plus MERKL incentives \* A spot account user could do the same strategy without leverage, accessing more exotic pairs that aren't available as collateral. For example, liquidity positions using popular AI, meme and community tokens like VIRTUAL, AIXBT, TOSHI can be created Both account types can optimize their positions and claim rewards through the same mechanisms, with rewards automatically collecting during position adjustments or rebalancing. # Automated Market Maker (AMM) Automated Market Makers (AMMs) explained: constant product formula, concentrated liquidity (Uniswap V3), virtual AMMs (Aerodrome/Velodrome), and how they relate to Arcadia strategies. Automated Market Makers (\*\*AMMs\*\*) are smart contracts that enable decentralized trading without an order book. Instead of matching buyers and sellers, AMMs use liquidity pools—funded by liquidity providers (LPs)—to facilitate trades Traditional \*\*virtual Automated Market Makers (vAMMs)\*\* distribute liquidity across all possible prices, ensuring continuous trading but leading to \*\*capital inefficiency\*\*. Most liquidity remains unused, especially for stable or correlated asset pairs. \*\*Concentrated Liquidity Automated Market Makers (clAMM)\*\* solve this by allowing liquidity providers (LPs) to allocate funds within a specific price range. This makes capital more efficient and increases fee earnings, but it comes with trade-offs. \* \*\*No Yield When Out of Range\*\*\\ If the market price moves outside an LP’s selected range, their liquidity is no longer active, meaning \*\*no fees are earned\*\* until the price moves back or the position is adjusted. \* \*\*Impermanent Loss (IL)\*\*\\ IL occurs when the relative price of assets in the pool changes, causing LPs to end up with more of the weaker-performing asset. In CL pools, \*\*IL is amplified\*\* when using narrow ranges, as price movements can quickly push positions out of range, forcing LPs to either take a loss or adjust their range at additional cost. While CL pools offer higher efficiency, they require \*\*active management\*\* to stay profitable. LPs must balance range size, rebalancing frequency, and market volatility to minimize risks. \*\*This is where Arcadia comes in.\*\* # Collateralized Loans How collateralized loans work in DeFi and within Arcadia: over-collateralization, liquidation thresholds, and health factors. Arcadia reimagines collateralized lending through an innovative Account-based system. Unlike traditional platforms that treat each asset separately, Arcadia considers your entire portfolio as one, enabling more flexible collateral management and efficient capital use. Note that this is only relevant for margin accounts and not for spot accounts. ## Key Features ### Borrowing Borrowing enables advanced strategies by allowing you to use borrowed funds within the same transaction. The system checks your position's health only at the end, enabling complex DeFi operations while maintaining security. If your final position is unhealthy, the transaction reverts automatically. For example, if you want to open up a 5x leveraged wETH-cbBTC position with USDC as debt, you can in a single transaction: \* Provide just a single asset. This does not even have to be wETH or cbBTC, but can be any asset. \* Immediately borrow the required amount of USDC, through a native flashloan-like mechanism. No looping required to reach the maximum leverage. \* Use the borrowed funds, together with the deposited asset(s), to swap into the required amounts of wETH and cbBTC. \* Use the wETH and cbBTC to create a leveraged LP position. ### Multi-Asset Collateral Arcadia breaks traditional barriers by supporting a wide range of digital assets as collateral. The protocol works with standard tokens (ERC20), LP Positions (ERC721) and more. In theory, any available asset type can be integrated within Arcadia, without the need for a protocol-wide upgrade. ### Collateral Management Your Arcadia Account acts as a smart portfolio, valuing assets collectively rather than individually. This means you can adjust your collateral composition freely while maintaining a leveraged position. In practice, this means you can switch pools in which liquidity is provided, change ranges of your positions and adjust leverage ratios, all through a single transaction. ### Risk Parameters The protocol uses four key factors to manage risk effectively. Each factor is \[creditor\](https://docs.arcadia.finance/protocol/arcadia-creditors) specific, meaning the different Lending Pools have different risk parameters. #### Asset based \*\*Collateral Factors\*\* determine how much you can borrow against each asset. For example: \* A USDC collateral factor of 0.90 means you can borrow up to 90% of your USDC value. This corresponds to 10x leverage. \* A wETH collateral factor of 0.80 allows borrowing up to 80% of your wETH value. This corresponds to 5x leverage. \*\*Liquidation Factors\*\* set safety thresholds for your position. For example: \* A USDC liquidation factor of 0.95. \* A wETH liquidation factor of 0.90. An Account with 850 USDC debt, with a total value equal to 1000 USDC and where the Account assets are fully composed of wETH, will be liquidated when: \* The Account value remains equal, but the open debt increases from 850 USDC to 900 USDC (1000/0.9), and/or \* The open debt remains equal, but the total account value decreases to 944.44 USDC (850/0.9) Your total borrowing capacity is calculated using a weighted average of these factors based on your portfolio composition. All values in a Margin Account are valued in the asset you have borrowed. For example, if the ETH price is 3500 USD and USDC is worth 1 USD, the protocol values an Account holding 1 ETH at 3500 USDC. \*\*Exposure caps\*\* set a maximum amount of the asset to which the creditor can be exposed. For example: \* The USDC Lending Pool has an exposure cap of 5,000 wETH. This means that the Lending Pool can only be exposed to up to 5,000 wETH of collateral, whether as a plain ERC20 asset or as composed in a DEX LP position. #### Asset module based Each Asset Module, for example the Uniswap V3 asset module, the Aerodrome Slipstream asset module, ... has a specific exposure cap. This exposure cap ensures that a specific creditor has no more exposure to the underlying protocol than the cap. This is expressed in USD. For example, the Uniswap V3 asset module may have an exposure cap of 10m USD. Even though from the example of above, it could support one big LP position of 5,000 wETH and 20M USDC, the exposure cap on the Asset Module would not allow Uniswap V3 positions totalling worth more than $10m as collateral. The combination of asset-specific caps and asset module-specific caps allows the creditors for great flexibility in assessing and protecting themselves from risks. ### Position Management Managing your position is straightforward yet powerful. Arcadia provides: \* Real-time monitoring of your position's health, including Telegram notifications \* Flexible collateral adjustment capabilities \* Flash actions for efficient position modifications, including changing underlying LP pool, changing ranges, ... \* Auto-compounder \* Auto-rebalancer ## Risks Borrowing assets is inherently risky. Users should be aware of the following risks: \* \*\*Liquidation risk\*\*: If the value of your collateral drops below the required threshold, your position will be \[liquidated\](https://docs.arcadia.finance/protocol/liquidations). Volatile market conditions can trigger liquidations rapidly. \* \*\*Smart contract risk\*\*: Despite extensive \[audits\](https://docs.arcadia.finance/security-and-risk/audits), no smart contract system is fully immune to bugs or exploits. \* \*\*Oracle risk\*\*: Asset pricing relies on on-chain oracles. Oracle failures or manipulations could cause incorrect valuations and unexpected liquidations. \* \*\*Impermanent loss\*\*: Liquidity positions used as collateral are subject to impermanent loss, which reduces collateral value independently of the market direction. \* \*\*Interest rate risk\*\*: Borrowing rates adjust dynamically based on pool utilization and can increase significantly during periods of high demand. For more details on protocol security measures, see \[Security & Risk\](https://docs.arcadia.finance/security-and-risk). # Users User roles in Arcadia Finance: Lenders, Strategists, Farmers, and Protocols — what each role does and how to get started. Different types of users can earn yield through the Arcadia Protocol. There are four different user groups. The following image illustrates how each of them interacts with the Arcadia Protocol. !\[Users\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-dff6534c73d2b5d1c06c69dd3f8eb4b238325c2a%2Fusers.png?alt=media) ## 1. Lenders \[Lenders\](https://docs.arcadia.finance/users/lenders) are the least sophisticated users. They have no direct exposure to liquidity positions and only indirect exposure to market- or liquidation risks. They only need to choose which assets they want to lend, and how much they want to lend. ## 2. Strategists \[Strategists\](https://docs.arcadia.finance/users/strategists) are a more sophisticated type of user. They need to understand the risks involved with using AMM liquidity positions. Choosing and managing a yield strategy does not require any technical knowledge or experience. Strategists only need to select one of the four curated yield strategies. The dApp will use data to optimize which pools, ranges, rebalancing frequencies... are used within the curated strategies. ## 3. Farmers \[Farmers\](https://docs.arcadia.finance/users/farmers) are the most sophisticated type of user. Farmers get the full flexibility and tooling to build and manage their yield portfolio's. Farmers can select and combine liquidity positions of any available Pool, choose custom ranges, use leverage, customize automations and much more. ## 4. Protocols \[Protocols\](https://docs.arcadia.finance/users/protocols) providing liquidity in DEXs have very different objectives than typical yield farmers. Where a yield farmer wants to maximize returns, protocols wants to ensure sufficient liquidity, limiting slippage for buyers/sellers, while preserving principle capital. Arcadia Pro is a bespoke suite for PoL management. Under the hood it uses the same (onchain) infrastructure as the main dapp, but optimises for the specific objectives and needs to manage PoL. # Lenders How to lend assets on Arcadia Finance: deposit into USDC, WETH, or cbBTC lending pools, earn passive yield via ERC-4626 tranches, and optionally cover deposits. Lenders provide capital and earn passive APY. ## How does it work? Lenders deposit a single asset in one of the Arcadia Lending Pools, which can be borrowed by Strategists and Farmers to build leveraged positions. There are currently three available Lending Pools, with more to come in the future. Current pools are: \* USDC Lending Pool \* WETH Lending Pool \* cbBTC Lending Pool There are no lock-up periods or withdrawal fees for Lenders \*unless there is an ongoing auction\*. There’s no impermanent loss either. For a detailed guide how to deposit in a Lending Pool, see \[Here\](https://docs.arcadia.finance/tutorials/liquidity-provision). ## Where does the yield come from? All yield is ultimately coming from the Strategists and Farmers who borrow funds in their \[AMM\](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) strategies to boost their returns. As such, Lenders can indirectly benefit from the yield earned by providing liquidity on AMMs, without having to manage the AMM liquidity positions themselves. There are two mechanisms by which Strategists and Farmers pay lenders: interest payments and liquidation penalties: #### Interest Payments When Strategists and Farmers borrow assets from the lending pools, they pay interests to the Lenders. The interest rate paid is dictated by the utilization of the pool. When there is high demand to borrow, the interest rate paid to Lenders is high. Conversely, when there is low demand to borrow, the interest rate paid to Lenders is low. Most protocols take a cut on the interest rate while passing it on to the Lenders. Arcadia doesn't! ALL of the interests are currently passed on to Lenders. #### Liquidation Penalties When an Account is liquidated by third-party liquidators, a percentage of the liquidation penalty fee also goes to Lenders —up to 2.4% of the open debt. Here as well, Arcadia takes no fee and passes all the rewards straight to Lenders. ## What are the risks Since Lenders do not manage the AMM liquidity positions themselves, they do not have direct market or impermanent loss risks. The risks they are exposed to: \* Smart contract risks, for which they can take insurance. \* Bad debt. If liquidations of unhealthy Accounts fail or the proceeds of the auctions are not sufficient to cover the open debt, a default event is automatically triggered. All Lenders will lose part of their funds pro rata to their fraction of the lending pool's total assets to recover the bad debt. # Strategists How Strategists use Arcadia Margin Accounts to create leveraged yield strategies on AMM liquidity positions across Uniswap and Aerodrome. Strategists select one of the four curated strategies to earn yield using \[AMMs\](https://docs.arcadia.finance/introduction/concepts/automated-market-makers). They create a position with both their own assets and borrowed assets. ## How does it work? Strategists are users looking for yield, with certain objectives and/or market outlooks, who see AMMs as a good way to earn yield, but don't have the technical expertise and/or time to monitor and manage individual pools. For these type of users, Arcadia offers a curated set of easy to use strategies that allow them to enter well-performing AMM liquidity pools in a few clicks. The strategies use only stable coins or tokens related to major assets (such as ETH and BTC). Arcadia offers currently four strategies: \* \[Delta neutral USD\](https://docs.arcadia.finance/users/strategists/delta-neutral-usd): keep USD value of portfolio as stable as possible, while earning yield. \* \[Delta neutral ETH\](https://docs.arcadia.finance/users/strategists/delta-neutral-eth): keep ETH value of portfolio as stable as possible, while earning yield. \* \[Bullish Crypto\](https://docs.arcadia.finance/users/strategists/bullish-crypto): USD value of portfolio increases when total market cap increases, while earning yield. \* \[Bearish Crypto\](https://docs.arcadia.finance/users/strategists/bearish-crypto): USD value of portfolio increases when total market cap decreases, while earning yield. For a detailed guide how to enter in a strategy, see \[here\](https://docs.arcadia.finance/tutorials/first-strategy). ## Where does the yield come from? Depending on the type of Liquidity Positions that are used within the strategy, there are two different possibilities: #### Non-staked Liquidity Positions All yield comes from trading fees that traders pay when they swap through the underlying AMM pools. #### Staked Liquidity Positions Holders of staked positions, such as staked Aerodrome, receive token emissions. Depending on the staking mechanism these emissions can be on top of the yield from trading fees. Or, as is the case with Aerodrome, stakers choose to earn emissions instead of trading fees. ## What are the risks All Strategists are exposed to the following risks: \* Smart contract risks \* Market risks \* Impermanent loss And depending if they use leverage or not: \* Interest rate risk (interest rate can exceed yields) \* Liquidation risk # Delta Neutral USD Delta Neutral USD strategy: earn leveraged yield on stable LP pools while maintaining USD-denominated delta neutrality. \*\*Strategy description:\*\* Generates yield from both ETH and USD yield-bearing assets while maintaining market neutrality. This strategy utilizes borrowed wETH to acquire both wETH and USD yield-bearing assets, requiring periodic rebalancing to maintain its delta-neutral position. The wETH used in the LP position is borrowed (shorted) and thus the strategist remains neutral in their ETH exposure.\\ By utilizing very wide ranges, the LP composition is minimally affected by limited market changes. A detailed explanation how the delta neutral strategies work, and their mathematical derivation can be found \[here\](https://arcadiafinance.notion.site/Delta-Neutral-strategies-1f7f4240c3264bec82608a85b58329a1?pvs=74). \*\*Yield source:\*\* Combines multiple yield sources from both ETH and USD-based assets. The yield generated automatically counts towards the Account health, out-earning the interests of the borrowed wETH. \*\*Strategic use cases:\*\* You want to accumulate USD holdings independent of crypto market volatility, while being comfortable with leveraged DeFi strategies and periodic portfolio rebalancing. # Delta Neutral ETH Delta Neutral ETH strategy: earn leveraged yield on correlated-asset LP pools while maintaining ETH-denominated delta neutrality. \*\*Strategy description:\*\* Generates yield from both ETH and USD yield-bearing assets while maintaining market neutrality through balanced exposure. This strategy utilizes borrowed USDC to acquire both ETH and USD yield-bearing assets, requiring periodic rebalancing to maintain its delta-neutral position. The USDC used in the LP position is borrowed (shorted) and thus the strategist remains neutral in their USDC exposure.\\ By utilizing very wide ranges, the LP composition is minimally affected by limited market changes. A detailed explanation how the delta neutral strategies work, and their mathematical derivation can be found \[here\](https://arcadiafinance.notion.site/Delta-Neutral-strategies-1f7f4240c3264bec82608a85b58329a1?pvs=74). \*\*Yield source:\*\* Combines multiple yield sources from both ETH and USD-based assets. The yield generated automatically counts towards the Account health, out-earning the interests of the borrowed USDC. \*\*Strategic use cases:\*\* You want to accumulate both ETH and USD holdings independent of ETH's price volatility, while being comfortable with leveraged DeFi strategies and periodic portfolio rebalancing. # Bullish Crypto Bullish Crypto strategy: earn leveraged LP yield with long exposure to volatile assets like ETH using Arcadia Margin Accounts. \*\*Strategy description:\*\* Maximizes crypto asset accumulation in a bullish market environment by utilizing borrowed USDC to acquire crypto-based yield-bearing assets. This strategy benefits from upward crypto market movements while generating additional yield. \*\*Yield source:\*\* Generates yield from crypto-based stable yield-bearing assets such as concentrated liquidity positions. \*\*Strategic use cases:\*\* You want to increase your crypto holdings during bull market conditions while simultaneously earning yield on your position, and are comfortable with leveraged DeFi strategies. # Bearish Crypto Bearish Crypto strategy: earn LP yield while maintaining short exposure to volatile assets using Arcadia Margin Accounts. \*\*Strategy description:\*\* Maximizes stablecoin accumulation in a bearish market environment by utilizing borrowed wETH to acquire stablecoin-based yield bearing assets. This strategy benefits from downward crypto market movements while generating additional yield. \*\*Yield source:\*\* Generates yield from stablecoin-based yield-bearing assets such as concentrated liquidity positions. \*\*Strategic use cases:\*\* You want to increase your stablecoin holdings during bear market conditions while simultaneously earning yield on your position, and are comfortable with leveraged DeFi strategies. # Farmers How Farmers use Arcadia Spot Accounts to manage LP positions with automated compounding, rebalancing, and reward claiming. Farmers are experienced DeFi users who fully understand how \[AMMs\](https://docs.arcadia.finance/introduction/concepts/automated-market-makers) work and are looking to optimize their portfolio's risk and return. ## How does it work? Farmers can make use of the full range of features offered by Arcadia, such as: \* Selecting any AMM pool of any of the supported DEXs. \* Setting custom ranges for the liquidity positions. \* Setting automations for their positions, such as compounding or automatic rebalancing. \* Selecting various rebalance strategies. \* Using leverage to hedge IL risk, or the maximize yield. They can further choose which asset to borrow and how much leverage to take. \* Fine grained control to deposit, withdraw, borrow, repay... assets from their Account. For a detailed guide how to farm, see \[Here\](https://docs.arcadia.finance/tutorials/farm). ## Where does the yield come from? Depending on the type of Liquidity Positions that are used, there are two different possibilities: #### Non-staked Liquidity Positions All yield comes from trading fees that Traders pay when they swap through the underlying AMM pools. #### Staked Liquidity Positions Holders of staked positions, such as staked Aerodrome, receive token emissions. Depending on the staking mechanism these emissions can be on top of the yield from trading fees. Or as is the case with Aerodrome, stakers choose to earn emissions instead of trading fees. ## What are the risks All Strategists are exposed to the following risks: \* Smart contract risks \* Market risks \* Impermanent loss And depending if they use leverage or not: \* Interest rate risk (interest rate can exceed yields) \* Liquidation risk # Protocols How protocols use Arcadia Foundry to manage onchain liquidity: protocol-owned liquidity for native tokens and treasury management for established pairs. Protocols use \[Arcadia Foundry\](https://docs.arcadia.finance/foundry-intro) to manage onchain liquidity. Foundry serves two use cases: \* \[\*\*Protocol Owned Liquidity\*\*\](https://docs.arcadia.finance/foundry-intro/foundry-pol)\*\*:\*\* Manage liquidity for your native token — rebalancing, bootstrapping, buybacks, and custom distribution strategies. \* \[\*\*Treasury Liquidity Management\*\*\](https://docs.arcadia.finance/foundry-intro/foundry-treasury)\*\*:\*\* Deploy treasury assets (USDC, WETH, wstETH, etc.) as liquidity in established pairs for yield. Both are non-custodial, DAO/multi-sig compatible, and fully automated. See \[Foundry Benefits\](https://docs.arcadia.finance/foundry-intro/foundry-benefits) for details. ## What are the risks Protocol liquidity positions are exposed to: \* Smart contract risks \* Market risks \* Impermanent loss And depending if they use margin or not: \* Interest rate risk (interest rate can exceed yields) \* Liquidation risk # Tutorials Step-by-step tutorials for using Arcadia Finance: creating accounts, providing liquidity, entering strategies, and managing positions. # Liquidity Provision Tutorial: how to provide liquidity on DEXs through Arcadia, including one-click zaps for Uniswap V3 and Aerodrome positions. 1. Navigate to and click on \*\*'Earn Passive Yield'\*\* ![](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2FLouoRGA96fQCwPmSt0Dd%2FScreenshot%202024-03-25%20at%204.32.32%E2%80%AFPM.png?alt=media&token=3529175d-9f42-4421-a082-37932c073d6d) 2\. You'll see an overview of the lending pools available. Select the pool you'd like to deposit in ![](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Ftst3GHm7T5xmF7SM3K3z%2FScreenshot%202024-03-25%20at%204.35.54%E2%80%AFPM.png?alt=media&token=7cdf0574-5512-401b-a5e0-19c5bc95119a) 3\. You'll be able to see detailed information about your selected pool, including historical borrow rate, utilization rate, assets and protocols that pool is exposed to. On the top right corner of the page, you'll be able to enter the amount to deposit ![](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2FGxvIoadPmeMlWA0C7Uwf%2FScreenshot%202024-03-25%20at%204.37.44%E2%80%AFPM.png?alt=media&token=50f5bf30-e0d6-4005-b348-5917891a01ab) 4\. Click on 'Approve' after you've entered the amount. By approving, you will allow the Arcadia contracts to transfer your assets into the lending pool. ![](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2FEDos9hWpFIOPfdhhlgaY%2FScreenshot%202024-03-25%20at%204.40.42%E2%80%AFPM.png?alt=media&token=c8d1f6af-755e-4975-870f-a5ba6fa520cb) 5\. Once the approval is done, the button will be changed to 'Deposit.' Click on 'Deposit' and confirm the transaction in your wallet. This will initiate the transfer of assets to the lending pool. Congrats, you've now become a lender (aka a bank). You're now providing liquidity to Arcadia users and earning fees passively for doing so! # Accounts Tutorial: overview of Arcadia Account features, managing assets, viewing positions, and understanding account health. ## Tutorial: Account Page !\[Account overview\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-3bb811878d80d14a0a3b6eaf731474be7629cf6d%2Faccount.png?alt=media) ## Account Page Tutorial ### Account Overview At the top of the page, you'll find your account address, which is your unique identifier on the platform. Below that, you'll see three key metrics: 1. \*\*Net APY (Annual Percentage Yield)\*\*: This represents the overall annualized return on your investments, taking into account all assets in your account and the interest rate. It's calculated by combining the yields from the assets within your account, considering both positive yields and the negative impact of the interest for leveraged positions. 2. \*\*Net Value\*\*: This is the net total value of your account. It represents your actual equity, and is calculated by subtracting the amount of debt from the total value of all assets contained in the account. 3. \*\*Est. daily earnings\*\*: This is the estimated daily earnings of your account, taking into account the current interest rate and the amount of assets in your account. 4. \*\*Total yield earned (Profit and Loss)\*\*: This shows the total yield earned using your account up to the present day. It includes any previously claimed or (auto)compounded rewards. ### Quick Actions This section provides easy access to essential account management functions. Some actions may not be available for your account, depending on your account status. \* \*\*Optimize\*\*: When concentrated liquidity positions in your account are out of range, this action will automatically adjust the ranges of your positions to ensure they go back within range. \* \*\*Add Collateral\*\*: Quickly add extra tokens to your account without altering existing positions. This is particularly useful when you have a leveraged position near liquidation and want to avoid realizing impermanent loss. \* \*\*Deposit and Invest\*\*: Add collateral that will be immediately used to update your existing position or strategy. This action harvests any accumulated fees, and together with the added collateral, will increase the value of the positions within your account. This will not affect the ranges set for concentrated liquidity positions. \* \*\*Adjust Your Leverage\*\*: Modify the leverage in your account. Similar to the previous action, this will harvest fees. If you're adding leverage, it will increase the value of your positions. If you're removing leverage, it will decrease the value of your positions. This will not affect the ranges set for concentrated liquidity positions. \* \*\*Automate Your Portfolio\*\*: Access a modal to manage your automations. For the available automations, see \[Asset Managers\](https://docs.arcadia.finance/protocol/asset-managers). \* \*\*Notify Me for Strategy Recommendations\*\*: Set up Telegram notifications for important events, such as your position moving out of range, getting close to liquidation or other strategic alerts. \* \*\*Need a Break?\*\*: Use this to exit your position into AERO, USDC, cBBTC or WETH. \* \*\*Withdraw\*\*: Withdraw your assets from your account. This will not work if this causes your account to become unhealthy. \* \*\*Repay Debt\*\*: Repay your debt. ### Margin & Health This section provides crucial information about your account's financial status: \* \*\*Gross Value\*\*: The total value of all assets in your account, including leveraged positions. \* \*\*Liquidation at Gross Value\*\*: This indicates the gross value threshold at which your account becomes eligible for liquidation. It's essential to monitor this to avoid forced position closures. Make sure the Gross Value never reaches this threshold! \* \*\*Leverage\*\*: If applicable, this displays your current leverage ratio, indicating how much borrowed capital you're using. \* \*\*Debt\*\*: The amount of debt you've taken, expressed in wETH, USDC or cBTC, which serves as the account's numeraire. \* \*\*Interest\*\*: The annualized percentage of interest you're paying on your borrowed funds. \* \*\*Health Score\*\*: A qualitative assessment of your account's overall financial health, considering factors like leverage, collateral, and market conditions. ### Asset Overview This section lists all assets currently in your account, including: \* ERC20 tokens: Standard fungible tokens. \* LP (Liquidity Provider) positions: These represent your stakes in liquidity pools. Each LP position displays: \* The range of prices at which you're providing liquidity and the current price of the pool. \* Fees and rewards earned. \* For staked Slipstream positions, a button to claim your AERO rewards. ### Historical Rates This graph visualizes the history of your yield earnings over time, allowing you to track your investment performance. ### Account History A comprehensive log of all your account transactions, providing a clear audit trail of your activities on the platform. # First Strategy Tutorial: how to enter your first leveraged yield strategy on Arcadia Finance step by step. ## Intro As new DeFi user you might be overwhelmed by all the new technical jargon you come across and may be unfamiliar on starting to earning yield by providing liquidity. Arcadia is designed to simplify your journey into earning yield by providing two options to get started. The first are curated strategies that allow you to enter well-performing liquidity pools in a few clicks. The second is for slightly more advanced users and allow you to pick any single LP (provided Arcadia supports the underlying assets) and also enter it with a few clicks. {% embed url="" %} ## Navigating to our dapp for the first time When you go to \[arcadia.finance\](http://arcadia.finance) for the first time you will be greeted by our home page. Here you’ll find a few brief sections on what we’re all about and even a list of our curated strategies that we’ll talk about later. Be sure to go over each section. Our focus today however will be on the Navigation on top of the page. !\[navbar\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-ce8b5e0c5ec721e61c10eb4d96f0292aab792532%2Fnavbar.png?alt=media) To open your first position on Arcadia you must first connect your wallet of choice to our application. You can do this by pressing the “Connect Wallet” button. Make sure the selected chain is Base L2. ## Opening your first strategy Scroll down on the home page or navigate to the Strategies page and choose one of the curated strategies. These are strategies hand-picked by our algorithms and automatically choose the best underlying assets for the goal of each strategy. For our example we’ll use Delta-Neutral USD. As explained on the strategies card this means we will take USD debt to open up a leveraged liquidity position in a liquidity pair of two USD-pegged stable coins. This will earn yield (from the trading happening on the underlying liquidity pool) in USD-denominated stablecoin. Click on ‘Open Strategy’ and a modal will pop up. This modal will guide you through 3 steps to easily open up your curated strategy. Step 1 will prompt you to input any amount of either USDC, WETH, ETH or cbBTC. You must regard the asset you deposit as a certain "value": the asset you deposit will be converted, together with any taken leverage, into the liquidity position on which you'll be earning yield. Which asset you deposit will thus have no influence on the yield nor interest rate! You will see a table which displays exactly what assets are going to be or created. After you chose your amount, click confirm to be brought to the next step. !\[Input Step\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-e7c3b16ab3f4be40ced5e58cb7cd2eaaad2f0890%2Finput.png?alt=media) In step 2 we select the account to work with, or create a new one if you don’t have an account. An Arcadia account serves as a non-custodial smart contract wallet, will hold all the collateral assets and keeps tracks of open debt. Approve the assets for our transaction and preview what will exactly happen in the transaction by clicking Outline transaction button. !\[Accounting Step\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-56d6939167d1a38e44805a9981b8dd2875d8d11a%2Faccounting.png?alt=media) After pressing this button. An outline of the transaction will be generated and presented in step 3. In this example I use 15 USDC to open a delta-neutral usd position. !\[Outline\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-65837b39fcdd668cb42d569208c588a6d9e89108%2Foutline.png?alt=media) This step outlines what will happen in the protocol when your transaction is submitted. In this example you can see 15 USDC is being used from my wallet. Some of it is swapped into USDT and together with the leftover USDC a new Slipstream position is created and staked. Now the only thing that remains is pressing Deposit and signing the transaction in your wallet! Congratulations, you just opened your first Arcadia Position. Follow the other tutorials to learn more about how to open your own strategies, how to manage your newly minted LP positions and more. # Managing positions Tutorial: how to manage existing positions on Arcadia — adjusting leverage, rebalancing, claiming rewards, and closing positions. ## Prerequisites This tutorial assumes you have: \* An active Arcadia account \* At least one active position (via curated strategies or the farm tab) ## Overview Arcadia provides multiple ways to manage your active LP (Liquidity Provider) positions. This guide covers the key areas on the account page where you can initiate transactions to optimize and manage your portfolio, with a focus on the Quick Actions section. ## Quick Actions The Quick Actions section is your primary hub for managing your positions. It includes several important functions: ### Optimize \* A prominently colored button within the Quick Actions section \* Appears when: \* Your position is out of range, OR \* The curated strategies' APY exceeds your current asset composition APY by 5% or more \* Clicking this button will: \* Maintain your current leverage \* Claim all accumulated fees \* Rebalance your assets, maintaining the same range width around the current price ### Add Collateral \* Purpose: Increase your account's LTV (Loan-to-Value) ratio or Health score \* Note: This action does NOT rebalance existing positions ### Add Funds to Portfolio \* Increases the size of your current positions \* Choose new leverage or retain current leverage \* Note: This action does NOT rebalance existing positions, only increases the size of them ### Adjust Leverage \* Modifies the current leverage of your positions \* Process: \* Select new leverage \* Note: This action does NOT rebalance existing positions, only increases or decreases the size of them ### Automate \* Enables selection of Automation services \* Current feature: Compound fees from non-staked Slipstream and Uniswap positions \* Future feature: Auto-rebalancing automation ### Subscribe \* Sets up a Telegram bot for notifications \* Alerts you when: \* Your positions are out of range \* Your account is close to liquidation \* Optimization opportunities arise ### Close Portfolio \* Allows you to exit your position \* Repays all debt \* Convert all leftover assets to WETH, USDC, AERO or cbBTC in your account ### Withdraw \* Allows you to withdraw your assets from your account ### Repay Debt \* Allows you to repay your debt directly from your wallet ## Additional Management Features ### Claiming Fees #### For Staked Slipstream Positions \* A claim button appears in the asset overview next to the position \* Allows you to claim AERO rewards \* Safety feature: Claiming is prevented if it would make your account vulnerable to liquidation ### Liquidation Surplus If your account has been liquidated: \* After the auction concludes, a prominent button appears \* Location: Next to your points and wallet in the top-right navigation bar \* Function: Allows you to claim any surplus from the liquidation process # Advanced Strategies Tutorial: advanced farming strategies using Arcadia Spot Accounts with auto-compounding and auto-rebalancing. ## Intro At Arcadia we not only support curated strategies, but also allow users to enter any LP of which we support the underlying tokens. This allows a user to pick a pool and range, and their leverage to open up a leveraged LP position in any of their favorite LP pools. {% embed url="" %} ## Navigating to the farm page. To get to the overview of all the LP pools navigate to the Farm via the link in the navbar on top of the page. When you do this you should be greeted by the following page: !\[Strategy overview\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-2a6be54191413af2cf640afc3c081f03b3d33e50%2Flist-view.png?alt=media) On this page you see an overview of all the pools Arcadia currently supports and some information about them. There is are filters on top where you can filter between Uniswap, Staked Slipstream, Slipstream and Aerodrome V1 pools. You can sort by APY, TVL or Volume. Let’s open a position in Staked Slipstream wETH-Aero. Either scroll until you find the one you think you like or filter on “Staked Slipstream” and search on Aero. !\[Specific pool\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-9e3ea07ba716afc7a54dcd7b5be2f4fc22de98b3%2Fstrategy.png?alt=media) You can see some information about this pool: \* Logo. \* Protocol + Pool. \* APY: the range of APYs are shown as "base APY - max leveraged APY" based on the 7 day history of the pool. \* TVL: TVL of the pool. \* Max Leverage: this is the maximum leverage you can take in an arcadia account for this asset. \* Volume: the amount traded in the past 24hr. When you click on the pool it navigates you to the following page. !\[Advanced Strategy\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-50ed056babdecf0716305240c4a8828c282d954e%2Fstrategy-wizard.png?alt=media) This is the general overview of an LP pool on Arcadia's Farm pools. On this page you can set the ranges to provide liquidity in (for concentrated pools only), the input amount and the leverage. If you don’t have an account yet or need an account that has a different debt token than the one you have, you can also do that here. Let’s first select which debt token we’d like to use to open our position. Choosing this is important, as it will determine the interest rate, maximum leverage available and the asset you will be borrowing - and thus shorting! You can do this by selecting USDC, wETH or cbBTC in the top right of the page. After you selected a debt token, you can create an account with this specific numeraire. If you already have an account you can use any of those. The debt token of the existing account should be clear by the icon. If you use an existing account that already has some assets in it (and potentially open debt), you can choose to only use those assets and transform them into the newly selected pool. If you have a new account or want to add extra assets, you can do that by checking the "Deposit Extra funds" button. If you pressed this button an input field should appear that allows you to deposit wETH, USDC, ETH or cbBTC. Here you can input the amount you want to add to your account when opening this position. Selecting the range is the next important step for concentrated liquidity pools. You can either use one of the 5 predetermined ranges from Very Narrow to Very Wide or select a custom range. To select a custom range you pick one of the 5 pre existing ranges that comes closest to what you want and then press custom. Two things will happen: A + and - button will appear in the set price range input and two drag-able buttons will appear on the liquidity graph. You can use either or both to fine-tune your preferred range. You can switch the base asset by clicking the "switch to ..." button on the top of the range selector window. By changing the range in which you will provide liquidity, the estimated APY on the top of the page will also change. As a general rule, the more narrow the range is, the higher the APY will be. Note however that in narrow ranges, you will more likely be out of range and not earn any yield, and will have a higher impermanent loss. Wider ranges need less rebalancing and will therefore have lower impermanent loss, but will earn lower yield. When you have selected your range, your account, your deposit amount and your leverage, you are (almost) ready to confirm it. If you selected ETH as a deposit asset, it'll need to be converted into wrapped ETH so Arcadia can use it. If applicable, you may need to approve the amount you selected, and lastly you can outline the transaction.\\ This outline transaction screen is the familiar screen where you see exactly what would happen if you’d trigger this transaction. If you're happy with what's shown, press the confirm button to trigger a wallet action. Sign the transaction in your wallet and it will be executed onchain. You first advanced strategy is opened. The page will automatically navigate to your account page where you can now see your freshly minted LP position earning yield. # Foundry Arcadia Foundry: the strategy creation interface for building and deploying automated yield strategies on Arcadia. !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-98a27dafe62cd43ea71c20ce76a4f6cd15369e56%2Ffoundry-banner.png?alt=media) ## Arcadia Foundry Arcadia Foundry is a tailor-made solution for protocols looking to deploy and manage onchain liquidity. Acting as a trustless market maker, Foundry serves two core use cases: \* \[\*\*Protocol Owned Liquidity\*\*\](https://docs.arcadia.finance/users/protocols)\*\*:\*\* Automate liquidity management for your native token: rebalancing, bootstrapping, buybacks, and custom distribution strategies. \* \[\*\*Treasury Liquidity Management\*\*\](https://docs.arcadia.finance/foundry-intro/foundry-treasury)\*\*:\*\* Put idle treasury assets to work by providing liquidity in established pairs like WETH/USDC or WETH/wstETH, earning yield while deepening ecosystem liquidity. Both are powered by the same automation infrastructure, non-custodial security model, and DAO/multi-sig compatibility. Explore why protocols choose Foundry with the \[summer.fi case study\](https://paragraph.com/@arcadiafi/arcadia-foundry-summerfi-case-study). # Benefits Benefits of Arcadia Foundry: simplified strategy creation, one-click deployment, automated management, and built-in risk controls. Using Foundry, teams can optimize their onchain liquidity to build deep markets, lower trading slippage, and generate sustainable trading fees instead of paying out endless incentives. Let's take a look at the benefits: \* \*\*End "Rented" Liquidity:\*\* By managing your own liquidity, your protocol can achieve deep liquidity without continuously issuing tokens, turning a major capital drain into a potentially revenue-generating asset. \* \*\*Protection against MEV and Execution Risk:\*\* Whenever you perform an action through Arcadia, dedicated transaction emulators make sure you don't fall prey to MEV attacks or faulty transactions. \* \*\*Strategic Bootstrapping:\*\* If your protocol is launching a token, Arcadia facilitates organic price discovery and provides support for setting up your clAMM pool parameters to ensure deep liquidity. \* \*\*Treasury Diversification:\*\* Protocols often hold 100% of their treasury in their native token and lack the ETH or USDC needed to seed a pool. Arcadia provides custom strategies to manage the conversion without crashing the token price. \* \*\*Yield on Idle Treasury Assets:\*\* Protocols holding non-native assets like USDC, WETH, or wstETH can deploy them as concentrated liquidity in established pairs, earning trading fees instead of leaving them idle. \* \*\*Operational Simplicity:\*\* Arcadia's architecture is modular and can manage your liquidity across multiple venues (including Uniswap V3/V4, Aerodrome, etc.) atomically, with automated rebalancing for your liquidity ranges based on our proprietary algorithms. \* \*\*Capital Efficiency:\*\* Arcadia ensures that the capital you deploy is utilized as efficiently as possible, meaning you can achieve the same market depth with a fraction of the capital. \* \*\*Better Trader Experience:\*\* By concentrating liquidity around the active price, Arcadia ensures that traders experience minimal slippage, making the ecosystem more attractive to trade in. \* \*\*Non-Custodial Security:\*\* Arcadia provides a trustless structure where the protocol retains full ownership of the assets. \* \*\*DAO-enabled:\*\* Is your project structured as a DAO? Arcadia readily integrates with Safe and Fireblocks multi-sig wallets so your DAO retains custody without the need for micro-management, thanks to our automations. # Protocol Owned Liquidity Protocol Owned Liquidity: how protocols use Arcadia Foundry to manage liquidity for their native token with automated strategies. Protocols use Foundry to manage liquidity for their native token. Instead of renting liquidity through emissions or incentive programs, protocols deploy their own assets and let Arcadia's automations handle position management. Arcadia migrates existing liquidity positions to an active Foundry strategy in a single transaction, ensuring there is never a liquidity gap during migration. ## Strategies A non-exhaustive list of strategies tailored for PoL: #### Efficient Rebalancing for Capital Preservation PoL deployments require regular re-calibration of position ranges to optimize for trading depth. Rebalancing is optimized for capital preservation, using organic yields to offset impermanent loss. #### Inventory Rebalancing Standard rebalancing can cause negative price impact when executed in size. Arcadia's tooling allows inventory rebalancing, which mitigates negative price impact. #### Custom PoL Strategy Custom strategies, such as padded distributions to support token price floors and increase depth in high-volume price areas. #### Take Profit with Zero Price Impact Withdraw assets from liquidity positions without direct price impact or temporarily removing the main liquidity position. #### Structured Buybacks Buybacks can be automated and executed in a structured way to maximise accumulation. ## Yield All yield comes from trading fees that traders pay when they swap through the underlying AMM pools. Staked positions (e.g., staked Aerodrome) earn token emissions rather than trading fees. Earned fees and rewards can be auto-compounded back into the position or claimed to the protocol wallet via \[Compounders\](https://docs.arcadia.finance/protocol/asset-managers/compounders) and \[Yield Claimers\](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers). ## Risks Protocol owned liquidity is exposed to: \* Smart contract risks \* Market risks \* Impermanent loss And depending if margin is used or not: \* Interest rate risk (interest rate can exceed yields) \* Liquidation risk # Treasury Management Treasury Liquidity Management: how protocols deploy treasury assets into established AMM pairs for yield using Arcadia Foundry. Protocols holding treasury assets like USDC, WETH, or wstETH can deploy them as concentrated liquidity in established AMM pairs. This generates yield from trading fees while deepening ecosystem liquidity, without requiring the treasury team to actively manage positions. For managing liquidity for your native token, see \[Protocol Owned Liquidity\](https://docs.arcadia.finance/foundry-intro/foundry-pol). ## Why Deploy Treasury Liquidity? \* \*\*Yield on idle assets.\*\* Treasury holdings sitting in a wallet or multisig earn nothing. Deploying them as concentrated liquidity earns trading fees from the underlying AMM pool. \* \*\*Ecosystem liquidity.\*\* Deeper liquidity in major pairs reduces slippage for traders and makes the ecosystem more attractive for protocols that depend on liquid markets (e.g., lending vaults, structured products). \* \*\*Revenue diversification.\*\* Fee income is independent of token emissions or governance token price. ## Strategies #### Active Liquidity Management Deploy assets into a pair with automated \[Rebalancers\](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) that actively manage the position: adjusting ranges, optimizing fee capture, and keeping liquidity productive. Earned fees are auto-compounded or claimed to the treasury wallet. #### Hedged Liquidity Provisioning For volatile pairs like WETH/USDC, impermanent loss can be significant. To mitigate this, a treasury can borrow one of the two assets (below 2x leverage) against the LP position, creating a hedge similar to a \[pseudo delta neutral\](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies) strategy. The debt offsets the directional exposure of the LP, reducing the portfolio's sensitivity to price movements. This comes at the cost of interest on the borrowed amount, but can substantially reduce IL. #### Pair Selection by Risk Profile | Category | Examples | IL Profile | Yield Profile | | ---------- | ----------------------- | ---------- | ---------------- | | Correlated | WETH/wstETH, cbETH/WETH | Low | Steady | | Volatile | WETH/USDC, WETH/cbBTC | Higher | Higher potential | | Stable | USDC/DAI | Minimal | Lowest | Correlated pairs have structurally low IL and predictable returns. Volatile pairs offer higher fee APYs but benefit from hedging. ## Yield Yield comes from trading fees earned on the LP position. Staked positions (e.g., staked Aerodrome) earn token emissions rather than trading fees. Earned fees and rewards can be auto-compounded back into the position or claimed to the treasury wallet via \[Compounders\](https://docs.arcadia.finance/protocol/asset-managers/compounders) and \[Yield Claimers\](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers). ## Impermanent Loss Concentrated liquidity positions are subject to impermanent loss (IL). When the relative price of the two assets changes, the position's value diverges from simply holding the assets. Rebalancing realizes this IL: the old position is closed and a new one is opened at a new range, locking in whatever divergence has occurred. Yield vs IL depends on: \* \*\*Pair type.\*\* Correlated pairs have structurally lower IL. Volatile pairs have higher IL but also higher fee income. \* \*\*Range width.\*\* Wider ranges reduce rebalancing frequency and IL but earn less fees. Tighter ranges earn more but rebalance more often. Arcadia's algorithms optimize this tradeoff based on pool characteristics and market conditions. \* \*\*Hedging.\*\* Borrowing against the LP position to offset directional exposure reduces IL on volatile pairs. For a detailed breakdown of rebalancing mechanics and costs, see the \[Rebalancers deep dive\](https://docs.arcadia.finance/deep-dives/rebalancers) and the \[cost overview\](https://docs.arcadia.finance/protocol/asset-managers/rebalancers#costs-and-fees). ## Risks Treasury liquidity positions are exposed to: \* \*\*Smart contract risk.\*\* See \[Audits\](https://docs.arcadia.finance/security-and-risk/audits). \* \*\*Market risk and impermanent loss.\*\* Pair selection, range width, and hedging are the primary levers to manage this. \* \*\*Interest rate risk\*\*, if hedging with debt, the borrow rate can exceed the IL reduction benefit. \* \*\*Liquidation risk\*\*, if hedging with debt. See \[Margin Calculations\](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements). When no leverage is used, there is no interest rate or liquidation risk. # Dashboard Tutorial: using the Arcadia Foundry dashboard to create, monitor, and manage yield strategies. Visit your customized Foundry dashboard and connect your wallet to get started. Make sure to connect your whitelisted wallet. ## Your Dashboard !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-1212f19039bf48cfd59d0188a3a1aebf52aa1a06%2Ffoundry-dashboard.png?alt=media) \* \*\*Metrics:\*\* On top of the page you find general metrics and pool-specific metrics for your selected pairs. Hover over the question marks to learn more. \* \*\*The Liquidity Graph:\*\* On the left side you find the onchain liquidity distribution for your selected pool. This shows how much liquidity is present for each individual tick. \* \*\*Top Positions:\*\* On the right side you find a list of the biggest positions for this pool. Click on a single position to see its range and size projected on the graph. \* \*\*Filter:\*\* You can filter this list by wallet address, by position ID, or by staked/unstaked (only for Aerodrome Slipstream positions). ## Your Positions View your liquidity positions for the token pair. Click on \*View Account\* to visit the position's tracking and performance page. # Position Wizard Arcadia Foundry Position Wizard: guided interface for creating optimized LP positions with leverage and automation. To create a new liquidity position, select the Position Wizard. ## Quick Setup Arcadia pre-loads a configuration tailored to your specific requirements, visible in the Default Configuration Preview and selected with Quick Setup. After reviewing the setup, execute the transaction steps with a wallet of your choice to deploy a liquidity position. \*\*Arcadia is fully compatible with Safe multi-sig solutions\*\*. \*Safe Wallet: If you access Arcadia through your Gnosis Safe interface, you can queue the transactions straight into your Safe. Make sure to select ‘Safe Wallet’ in the dropdown next to ‘Ready to Execute’. Otherwise, export a Batch Json file to import manually into your multi-sig setup.\* !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-a6dcfafc85bba523c0f6ee02f8df0abac9712aae%2Ffoundry-quick.png?alt=media) ## Custom Setup Your setup can be fully customized to your requirements using the Custom Setup flow. \* \*\*Arcadia Account:\*\* Choose whether you want to create a new account or use one of your existing Arcadia accounts. If you choose an existing account, old settings will be overridden and tokens in that account converted as appropriate. \* \*\*Deposit Assets:\*\* Choose how much of the assets you want to deposit. Deposit in equal amounts for a 50:50 balanced position, using the ‘Equal USD value’ toggle. \* \*\*LP Position:\*\* Choose how you want to set up your liquidity position. \* \*\*Create New LP:\*\* Create a new position, with preconfigured data provided by Arcadia. \* \*\*Import Existing LP:\*\* Import a position you already minted on Uniswap or Aerodrome. \* \*\*Migrate Basic LP:\*\* Convert a vAMM position into a clAMM position. If a clAMM pool does not yet exist for your token, a new one will be created. \* \*\*Skip LP Creation:\*\* Let Arcadia Asset Managers create a position on your behalf, using your deposited assets and/or your existing position. Creation of the position is automated and optimized, especially useful for time-sensitive launches and multi-sig deployments. \* \*\*Automations:\*\* Set up automated strategies to manage your liquidity. \* \*\*Rebalancer Strategy:\*\* Choose how you want your positions to be rebalanced. Position ranges are configured by Arcadia on your behalf. \* \*\*Auto-Claimer:\*\* Claims rewards and sends it to your account or your wallet. \* \*\*Auto-Compounder:\*\* Claims rewards and reinvests them into your position. \* \*\*Ready to Execute:\*\* Sign all transaction steps. Use the drop down button to select: \* \*\*Smart:\*\* Execute most transactions with one single signature where possible, with complex transactions requiring a dedicated signature. \* \*\*Auto:\*\* Execute all transactions one after another, automatically asking for confirmation in your wallet once the previous transaction is completed. \* \*\*Manual:\*\* Requires manually clicking to launch the next transaction. \* \*\*Safe Wallet:\*\* If you access Arcadia through your Gnosis Safe interface, you can queue the transactions straight into your Safe. Otherwise, export a Batch Json file to import manually into your multi-sig setup. # Governance # Arcadia DAO Arcadia DAO structure, voting mechanisms, and how AAA token holders participate in protocol governance. ## Why a DAO? As Arcadia evolves, it is essential to ensure that the protocol becomes a sustainable, community-driven entity. Our DAO governance structure is designed around three essential principles that foster a vibrant and resilient community: \*\*predictability, mutual interest, and visibility.\*\* Adhering to these pillars ensures every stakeholder has the clarity, motivation, and insight necessary to participate meaningfully. 1. \*\*Predictability\*\*: By clearly outlining governance rules and token distribution methods, we enable participants to anticipate how decisions are made and resources are allocated. This consistency supports steady, long-term thinking rather than reactive, short-term speculation. 2. \*\*Mutual Interest\*\*: Our incentive models and consensus processes encourage contributors, token holders, and builders to pursue objectives that benefit the ecosystem as a whole. When incentives are well-aligned, collaboration thrives, and the community naturally develops robust solutions. 3. \*\*Visibility\*\*: Transparent documentation, open discussions, and regular reporting safeguard community confidence. Shared information helps every member understand and evaluate decisions, creating a culture of accountability and constructive feedback. Through this framework, our goal is to foster a sense of unity and shared accountability that transforms traditional “winner-takes-all” competition into collective progress. ## Timeline Arcadia's governance will transition to a DAO model through a phased approach, empowering the community to take an increasingly active role in shaping the protocol's future. \*\*Phase 0 – Laying the Foundations (Completed)\*\* \* \*\*Focus:\*\* Finding early signs of user demand for Arcadia. Without this, nothing else matters. \* \*\*Achievements:\*\* Developed a robust product, onboarded initial users, and validated the protocol’s value proposition. \* \*\*Outcome:\*\* A solid groundwork for community-driven growth, ensuring future governance decisions are informed by early user insights. \*\*Upcoming: Phase 1 – Community First\*\* \* \*\*Governance Evolution:\*\* \* Introduce community voting on non-critical decisions (e.g., feature suggestions, integrations, airdrop allocations, and contributor/grant distributions). \* Core team retains final decision-making authority but uses community input to guide direction. \* \*\*Initiatives:\*\* \* Launch community grants for non-critical development and operational tasks. \* Begin building community trust, engagement, and alignment with the long-term vision. \*\*Phase 2 – Soft DAO\*\* \* \*\*Governance Evolution:\*\* \* Implement delegated voting mechanisms to strengthen community influence over the roadmap. \* Update multisig structures to include elected community delegates, decentralizing control over treasury operations. \* \*\*Initiatives:\*\* \* Community management of the DAO treasury (funding grants, partnerships, emissions, incentives, airdrops). \* Formalize community-driven decision-making processes beyond advisory roles. \*\*Phase 3 – Full DAO\*\* \* \*\*Governance Evolution:\*\* \* Transition to fully on-chain governance systems, eliminating reliance on multisigs. \* Complete decoupling of Arcadia from the founding development company, enabling self-sustaining, community-led operations. \* \*\*Initiatives:\*\* \* Solidify a fully decentralized governance framework, ensuring long-term resilience and community stewardship. \* Establish Arcadia as a fully autonomous, community-owned protocol. \*\*\* \*\*End State\*\* A mature DAO where governance, treasury management, and roadmap decisions rest entirely with the community—fostering long-term protocol stability, trust, and broad stakeholder alignment. # Token Mechanics AAA token mechanics: supply, distribution, stAAA staking, utility within the protocol, and fee rebate eligibility. ### AAA & stAAA Token Overview The Arcadia ecosystem is powered by two core tokens: \*\*AAA\*\* and \*\*stAAA\*\*. Together, they provide governance, utility, and incentive alignment for all participants in the protocol. ## AAA – The Utility Token \`AAA\` is an ERC-20 token and the foundational utility token of the Arcadia protocol. It is designed to be \*\*minimal, immutable, and not upgradeable\*\*. This simplicity ensures that its contract address, total supply, and core properties remain constant throughout the life of the protocol. While \`AAA\` itself is a passive asset, \*\*its full utility is unlocked by staking it to receive \`stAAA\`.\*\* ## stAAA – The Governance & Reward Layer \`stAAA\` is the \*\*staked version of AAA\*\*, implemented as a multi-reward ERC-20 token. \*\*stAAA is how users actively take part in Arcadia\*\* — from governance to accessing protocol rewards and revenue streams. ### Key Features: \* \*\*Governance\*\*: stAAA holders vote on proposals in the Arcadia DAO. \* \*\*Fee Sharing\*\*: stAAA receives a share of protocol revenue streams, not just emissions. \* \*\*Access\*\*: Unlocks advanced yield strategies and ecosystem tools. \* \*\*Multi-Reward Stream\*\*: Beyond \`AAA\` emissions, stAAA can receive any ERC-20 token captured by the protocol. ### Why Not Only Use stAAA? The logic behind staking, governance, and fund distribution is likely to evolve over time. Rather than tying these mechanics directly to the token and relying on proxies or upgradable token contracts, Arcadia separates the roles: \* \*\*AAA\*\* stays simple, fixed, and universally recognizable. \* \*\*stAAA\*\* encapsulates all advanced features — and can evolve independently of the base token. This architecture ensures \*\*future flexibility\*\* without compromising \*\*contract stability\*\*. ## Staking & Unstaking \* \*\*1:1 Staking\*\*: Stake \`AAA\` to mint \`stAAA\`. \* \*\*Standard Unstake\*\*: 30-day waiting period to unlock your full \`AAA\` balance. You may queue multiple unstake requests at once. Each unstake request is independent of the others. An unstake request cannot be cancelled once it has been queued. \* \*\*Early Withdrawal\*\*: Access \`AAA\` before the 30-day period ends, with a time-based dynamic penalty applied. The penalty starts at 90% and decreases linearly over the next 30 days to 0%. If multiple unstakes are queued, each individual unstake request will be subject to its own timeline and own penalty. This system balances long-term commitment with optional liquidity flexibility. ## Fee Sharing stAAA holders are eligible for a share of fees captured by various parts of the Arcadia ecosystem: \* In \*\*Arcadia Strategies\*\*, this includes: \* A portion of the interest paid by borrowers to lenders. \* A portion of liquidation fees. \* For \*\*Arcadia tooling\*\* (e.g. the Rebalancer or Compounder), specific fees can be redirected to stAAA holders. As protocol usage grows, these sources generate a diversified and robust stream of rewards for stakers — in \`AAA\` and other ERC-20 tokens. ## Utility Highlights \* \*\*Delegation & Voting\*\*: Active participation in shaping Arcadia’s future. \* \*\*Ecosystem Incentivization\*\*: Real yield from actual protocol usage. \* \*\*Advanced Features\*\*: Access to optimized strategies and tools on Arcadia Finance. \* \*\*Grants Program\*\*: \`AAA\` supports ecosystem growth by funding third-party developers and integrations. ## Token Distribution | Category | Allocation (tokens) | Allocation (%) | Vesting Schedule | | ---------------- | ------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------- | | Investors | 15,000,000 | 15% | 1 year vesting starting at TGE. All investors under the same schedule | | Treasury | 15,000,000 | 15% | Unlocked but subject to governance. Allocated for future strategic investors and long-term strategic initiatives. | | Core Team | 20,000,000 | 20% | 2 year vesting starting at TGE. | | Community | 50,000,000 | 50% | Gradual release over 3 years and subject to governance | | \*\*Total Supply\*\* | \*\*100,000,000\*\* | \*\*100%\*\* | - | !\[Tokenomics v9.png\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-f31f7a4f721d4fcae8881285df7b67c0815dfa96%2FTokenomics\_v9.png?alt=media) \*\*Community Breakdown\*\* Airdrops (20%) \* The first airdrop will have a 10% allocation, distributed to V2 users, as per their point allocation, and V1 users, as per their usage of the v1 protocol during the time it was live. \* The DAO will decide on the remaining 10% airdrop allocation. Liquidity Provision (20%) \* 5% for initial launch on aerodrome pool \* 15% for a liquidity mining program \*\*Contributors and grants (5%)\*\* \* Incentivize community participation in initiatives to grow Arcadia. \* The DAO will oversee this allocation. \*\*Public token sale (5%)\*\* \* Designed to give protocol ownership to the Arcadia community, enabling more participants to become Arcadia stakeholders. ## Supply Schedule !\[AAA Final token emission model.png\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-4a51cda5070f5e773ac35c4dbf69e5da822ef575%2FAAA\_Final\_tokem\_emmission\_model.png?alt=media) \*\*At TGE\*\* \* 35% of supply in circulation \*\*At Year 1\*\* \* Investors fully vested (15%) \* Public sale (5%) \* Core team partially vested (10%) \* Liquidity mining releases (10%) \* 75% of supply in circulation \*\*At Year 2\*\* \* Core team fully vested (20%) \* Additional 3% liquidity mining released (3%) \* 83% of supply in circulation \*\*At Year 3\*\* \* Final 2% liquidity mining allocation released during Year 3. \* 85% of supply in circulation ❗The remaining allocation earmarked for airdrops and contributors/grants will be allocated by the DAO. # Fee Rebates How stAAA holders earn fee rebates on Arcadia: rebate tiers, calculation methodology, and claiming process. ## Introduction As outlined in the \[Arcadia Recovery Plan\](https://arcadiafinance.notion.site/Arcadia-Recovery-Plan-23e04482afa78034aceecd9897962994), Arcadia users can redeem Recovery Tokens ($ART) for protocol fees.\\ Fee rebates are denominated in and redeemable for USDC. There are two Fee Rebate redemption mechanisms, active and passive. Active rebates allow for the fastest value redemption, while passive rebates are hands-off and do not require use of the protocol. Recovery Tokens can optionally be swapped for other tokens on third party DEXs ($ART is a standard ERC20 token). Note that Arcadia does not manage these DEXs, neither guarantees liquidity nor price. ## Active Fee Rebates Active users of the Arcadia protocol can rebate up to 100% of the costs they incur on the following fees: \* Yield success Fees: This is the fee charged to users on the yield generated through the protocol. \* Fees paid for the Auto-Rebalancer and Auto-Compounder: These are the fees charged to users on the amount swapped when using the automated rebalancing and/or compounding. Active fee rebates can be claimed using unstaked ART. Users can at any time during an epoch claim their fee rebates, whether or not they had unstaked ART at the beginning of the epoch. Users can unstake their ART or acquire it elsewhere at any time during the epoch. ### Mechanism The accounting and distribution follows a schedule measured in epochs. Each epoch counts 7 days, with a new epoch starting every Monday at 12:00 UTC. 1. During an epoch I, all transactions that generate fees are accounted for in the asset in which the fee is collected. 2. At the end of epoch I, the total amount of fees collected per token and per user is calculated, and all collected tokens are swapped to USDC. 3. Each user is eligible to redeem up to an amount of USDC equivalent to their share of fees collected: If a user generated 10% of the total fees collected for a certain TOKEN, then they will be eligible for 10% of the USDC that was received after swapping all collected TOKEN to USDC. 4. Users have 1 epoch (during epoch II) to redeem their Recovery Tokens for USDC. 5. Non-redeemed fee rebates are not rolled over. After epoch II ends, users will no longer be able to redeem the fee rebates generated during epoch I. Instead, the fee rebates for epoch II will become available for redemption. ## Passive Fee Rebates Recovery Token holders who do not actively use the Arcadia protocol or prefer a hands-off approach can passively redeem their Recovery Tokens for USDC. To do so, holders stake their Recovery Tokens through the Arcadia dApp. The staked balances when USDC is made available to the passive redeem contract are taken into account to calculate the amount of USDC each staker can redeem. As such, it is important to keep ART staked to not miss out on any USDC redemptions.\\ Passive fee redemptions roll over, meaning you do not lose your redemption should you decide not to claim during an epoch. ### Mechanism The accounting and distribution follows the same epochs as the Active Fee Rebates. 1. After epoch II ends, the total amount of non-redeemed USDC from epoch I is calculated. 2. Up to 50% of the remaining USDC is distributed to $ART stakers pro rata their stake: If you hold 15% of the staked Recovery Tokens, you receive 15% of the distributed USDC. 3. Users can at all times stake and unstake their Recovery Tokens. There are no penalties or waiting periods. 4. Users who do not claim during epoch II, will have the ability to claim their USDC at any later time: the balances to claim roll over to the next epoch. ## Contract Addresses | Token | Address | Chain | | ---------------------------- | ------------------------------------------ | ----- | | Arcadia Recovery Token (ART) | 0x9089397444EF32F1777d2A9d0c0886592C8eF449 | Base | | Staked ART | 0x3889255C5a9A55137DfdF870a0C30A285978176A | Base | # Protocol Technical documentation for the Arcadia Protocol: DeFi Accounts, Flash Actions, Creditors, margin calculations, liquidations, Asset Managers, asset pricing, and fees. # Arcadia DeFi Accounts Technical details of Arcadia DeFi Accounts: Factory contract, Account versions, Spot vs Margin accounts, deposit/withdrawal mechanics, and ownership model. Arcadia Accounts sit at the center of the Arcadia Protocol. They are built to optimise management of assets and financial contracts within DeFi. The Accounts are responsible for the following actions: \* They hold their owners assets. \* They are the interface to manage assets (either by the owner itself, by automations, by trusted third parties or by any other type of asset manager). \* They can be used as margin Accounts, where the total value of the assets held by the Accounts is used to back liabilities issued against the Account. !\[Strategy overview\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-afa6cc09bc5ae16fe4d9b2ac12424a4bb3a2a237%2Farcadia-account-overview.png?alt=media) ## Deployment and ownership Users can create one or more Arcadia Accounts through the Arcadia Factory. Each Arcadia Account is a separate smart contract, owned by one single user. When creating an Account, the user can specify a number of parameters: \* A salt, which can be used to precalculate the Account address or to create a vanity address. \* The Account Version, more on that in section \[Versioning and Types of Accounts\](#versioning-and-types-of-accounts). \* Optionally, the user can set a Creditor, if they create a Margin Account. Arcadia Accounts are assets of their own and have a single owner. Initially the creator of the Account is also its owner, but ownership can be changed. To keep track of ownership, the Arcadia Factory uses the ERC721 standard, where each ID maps one-to-one with a specific Account. Since the ERC721 standard is used, Arcadia Accounts are composable with existing infrastructure to change ownership, or even to sell Accounts. ## Versioning and Types of Accounts The Arcadia Protocol can work with multiple Account versions. Different implementations of the Account logic can (co)exist and each implementation is uniquely identified with a specific version in the Account Factory. Under certain circumstances, Account Owners can even choose to upgrade their Account to a different version, see \[Upgradability\](#upgradability). There are two main types of Accounts (\[Spot Accounts\](#spot-accounts) and \[Margin Accounts\](#margin-accounts)). But versioning is more granular, for each type there can exist multiple versions, for instance to offer new features, or to enable the Account to hold a new asset type of a new ERC standard. ### Spot Accounts Spot Accounts are the simplest type of Accounts, they offer all the main features of an Arcadia DeFi Account except the ability to back liabilities. They can for example not be used to borrow assets against. The advantage of Spot Accounts over margin Accounts is that they are truly permissionless and can hold any asset or asset type. Unlike Margin Accounts, which work with allowlists for the assets they can hold. ### Margin Accounts Margin Accounts are Accounts that can have liabilities to one or more Creditor(s). Current Margin Account have maximally one Creditor per Account, but future versions might be multi-Creditor. The Margin Account mitigates the counterparty risk borne by the Creditor, by guaranteeing that the total value of all assets within the Account is always bigger than the liabilities against the Account (it is over-collateralized). An example of a Creditor is a Lending Pool. The Account Owner can borrow funds from the Lending Pool on the condition that the total value of the assets held by the Account is always bigger than the liabilities against the Account. A more detailed explanation about the margin requirements and calculations can be found on the Page \[Margin Calculations and Requirements\](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) Since the assets held by the Account serve as collateral backing liabilities, there are some restrictions which assets can held by Margin Accounts. It are the Creditors who choose which assets are allowed as collateral, and set appropriate risk parameters for these assets. ### Deployed Versions The following versions are deployed. V1 versions are available on Base only; V2 versions are deployed on all chains. | Version | Address | Base | Optimism | Unichain | | --------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | Spot V1 | \`0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28\` | \[↗\](https://basescan.org/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) | | | | Spot V2 | \`0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442\` | \[↗\](https://basescan.org/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) | \[↗\](https://optimistic.etherscan.io/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) | \[↗\](https://uniscan.xyz/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) | | Margin V1 | \`0xbea2B6d45ACaF62385877D835970a0788719cAe1\` | \[↗\](https://basescan.org/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) | | | | Margin V2 | \`0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6\` | \[↗\](https://basescan.org/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) | \[↗\](https://optimistic.etherscan.io/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) | \[↗\](https://uniscan.xyz/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) | ## Upgradability Arcadia Accounts are based on the ERC-1967 standard for proxy contracts. Each Account contract points to a certain Account logic contract. It is the logic contract that implements the features to: deposit/withdraw assets, do flash actions, manage assets, authorise delegations... !\[Upgradability\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-798879d52ba3eb96c63df89b039c616f9d8c38b2%2Fproxy-accounts.png?alt=media) Creditors can determine which Account logic versions are allowed to be used by their Debtors. As such, they can block version with certain features or highly-customized Account logic can be implemented for Creditor-specific versions should this be required. The Account logic is upgradable, enabling existing Accounts to make use of newly introduced features in a new Account version if they wish. \*\*Upgrading Account logic is always on an opt-in basis, it can never be enforced by the Arcadia Protocol.\*\* The Accounts can only be upgraded to a different version if both the Account Owner and the Creditor (if a margin account is opened) accept the specific version. When users upgrade their Accounts, they don't have to migrate any assets or close liabilities and the Accounts keep the same contract address. # Flash Actions Flash Actions enable atomic multi-step DeFi operations within Arcadia Accounts: leverage, deleverage, rebalance, and refinance in a single transaction without risk of bad debt. Flash Actions (or optimistic Actions or flash accounting) expand on the concept of flashloans and are only possible thanks to a unique property of smart contracts: atomicity\[^1\]. Just like with flashloans, each step of the Flash Action must be successful, or the transaction as a whole fails. This allows the Account Owner to temporarily bring the Account into an under-collateralized (or even non-collateralized) state without risk of bad debt for any Creditor. If the Account is not brought back into a healthy state during the transaction, the final health check fails, and thanks to atomicity, the whole transaction fails. This gives Account Owners unprecedented flexibility to manage assets and liabilities. It overall provides a much better user experience, since users only need to do a single transaction to obtain their desired outcome. In a fully permissionless way, they can chain the following actions together in one Flash Action: \* A margin Account can be opened for a new Creditor if the new Creditor is approved by the Account Owner. \* The Creditor can execute arbitrary logic (e.g., give a flashloan). \* The Account Owner can optimistically withdraw assets from the Account. \* The Account Owner can transfer assets from their own wallet to the Account or external logic. \* The Account Owner can execute arbitrary external logic, using the assets (borrowed, withdrawn, or transferred) to interact with multiple DeFi protocols to swap, stake, claim, etc. \* The Account Owner can deposit recipient tokens back into the Account. The only requirement is that the Account is in a healthy state at the very end of the Flash Action. !\[Flash Actions\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-852c6ab4aedf4a8725fa6ff71568f443ad057d8f%2Fflash-actions.png?alt=media) Flash Actions are a very powerful tool that has no equal in traditional finance. We will list a few examples of how Flash Actions from an Arcadia Account can be used out of the box (the list is far from exhaustive). \* Rebalance whole portfolios, swapping a portfolio of n different assets directly to a new portfolio of m different assets. \* Refinance liabilities (change to different Creditors) without the need to sell any collateral. \* Stake or provide liquidity on approved DeFi protocols. External protocols used in this context must provide a receipt token that is allowed as collateral within the Arcadia Protocol. Examples include providing liquidity on Aave (receiving approved aTokens), depositing assets on Yearn (receiving approved yTokens), etc. \* Change ranges for Uniswap V3 LP. Contrary to Uni V2 and similar AMMs, Uni V3 positions are meant to be more actively managed in terms of liquidity ranges. Users who deposit Uni V3 positions in their Arcadia Accounts will be able to change those liquidity ranges without withdrawing their tokens first. \* Claim airdrops that depend on address-owned tokens. Arcadia Accounts will feature “flash withdrawals”. This feature can be used by the Account Owner to claim airdrops using assets under collateral within their Arcadia Account, without having to close DeFi positions to withdraw their tokens first. \* ... Keep in mind that all of these actions can be done, even if the assets in the Account are used to secure liabilities! \[^1\]: Xie, Zhiyuan, et al. "Towards A Better Understanding of Atomic Transactions on Ethereum." (2022). # Arcadia Creditors Arcadia Creditors: how lending pools and other creditors integrate with Arcadia Accounts, risk parameters, and the creditor interface. An Arcadia Creditor is a (set of) smart contract(s), that does the accounting of the liabilities between debtors (Margin Accounts that owe the liabilities) and one or more ultimate creditor(s) (the addresses that are owed the liabilities). An example of an Arcadia Creditor is a Lending Pool, where the Arcadia Accounts are the debtors that can borrow funds from the pool, and the Liquidity Providers of the Lending Pool are the ultimate creditor(s).\\ Other examples are perpetual futures contracts, options contracts, escrow services... Basically every financial contract or protocol where a party has, or can have, liabilities can be implemented as an Arcadia Creditor. The liabilities of each Debtor are fully secured by the collateral held in the users' Arcadia Margin Account. ## Accounting Liabilities The Arcadia Creditor must know the Open Position (how much liabilities they owe) of each Margin Account at each point in time. The open position is used for the margin calculations to determine the health state of the Arcadia Account of Debtor. In turn, this guarantees that all liabilities can be paid back to the Creditor. An Arcadia Creditor must denominate these open position in a certain numeraire. This represents the unit of accounting, for example USD, USDC or ETH. The Arcadia Account of the Debtors will use the same numeraire for the margin calculations. ## Risk Management The Creditor must set a \[Risk Manager\](https://docs.arcadia.finance/security-and-risk/roles). The Risk manager can be both an EOA or a smart contract. The Risk Manager is responsible for choosing which assets can be used within the Debtors Margin Accounts and for setting the correct \[Risk Parameters\](https://docs.arcadia.finance/security-and-risk/risk). For each asset the Risk Managers allows, they have to set the following Parameters: \* The Collateral factor \* The Liquidation factor \* The exposure cap of the asset \* The exposure cap of any integrated protocols, such as DEXs The Risk Manager must ensure the credit risk borne by the Creditor remains acceptable. # Margin Calculations How Arcadia calculates margin requirements: collateral value, liquidation value, collateral factors, liquidation factors, and health factor computation. The Margin of an Arcadia Account can roughly be seen as the value of collateral assets that a Debtor must hold in a Margin Account to cover the credit risk of its Creditor(s). It is the value of assets that is "locked" when a Debtor opens a position. ## Margin Requirements There are three different account states, as shown in the following figure, depending on the Used Margin of the Account and the risk-adjusted total values of the Account. !\[Margin Account health states\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-b9a6a9ad6a1f85378e70ac53c3084d2034e2c4fa%2Fhealth-states.png?alt=media) ### 1. Healthy state: The Account is in a healthy state if the used margin is smaller than the Collateral Value: $$ um < v\\\_{coll} $$ No account actions are restricted for Accounts in a healthy state, as long as the Account is still healthy at the end of the action. ### 2. Unhealthy state: The Account is in an unhealthy state if the used margin is smaller than the Collateral Value but bigger than the Liquidation Value: $$ v\\\_{coll} < um < v\\\_{liq} $$ Accounts in the unhealthy state can only be de-risked by reducing the open position or adding more collateral assets. It is not possible to withdraw any asset or to increase the open position. ### 3. Liquidatable state: The Account is in a liquidatable state if the used margin is larger than the Liquidation Value: $$ v\\\_{liq} < um $$ When an account is in the liquidatable state, anyone can trigger a margin call. The Account is now frozen, and the liquidation process of the Account starts. The liquidation ends when either the Account is brought back to a healthy state, or all assets are liquidated. ## Margin Calculations ### Collateral Value The Collateral value is the sum of the MtM (mark-to-market) value, discounted with the risk factor (the Collateral Factor) of each asset in the account. $$ v\\\_{coll}^{c} := \\sum\\\_{i} CF\\\_{i}^{c} \\cdot v\\\_{i}(a\\\_{i}) $$ The Collateral Factor is equivalent to the Initial Margin as is commonly used in traditional finance. $$ CF\\\_{i}^{c} = \\frac{1}{1 + IM\\\_{i}^{c}} $$ ### Liquidation Value The Liquidation value is the sum of the MtM (mark-to-market) value, discounted with the risk factor (the Liquidation Factor) of each asset in the account. $$ v\\\_{liq}^{c} := \\sum\\\_{i} LF\\\_{i}^{c} \\cdot v\\\_{i}(a\\\_{i}) $$ The Liquidation Factor is equivalent to the Maintenance Margin as is commonly used in traditional finance. $$ LF\\\_{i}^{c} = \\frac{1}{1 + MM\\\_{i}^{c}} $$ ### Available Margin We define the available margin, $$am$$, as the total value that the Account can use as margin to secure liabilities. Hence the Available Margin is nothing different then the previously defined Collateral Value: $$ am = v\\\_{coll}^{c} $$ ### Open Position The open position, $$op^c$$, equals the size of the liability that a specific Debtor has with a specific Creditor. ### Minimum Margin As explained in \[Liquidations\](https://docs.arcadia.finance/protocol/liquidations), the minimum margin, $$M\\\_{min}^c$$, is the minimum amount of Collateral Value that must be held in an Account to be able to open a position with a Creditor. ### Used Margin The used margin, $$um$$, is the total amount of Collateral Value locked by the Account to ensure that the Account remains over-collateralized. Since collateral in the Account must be held to cover both the open position and the minimum margin, the used margin can be found as: $$ um := M\\\_{min}^c + op^c $$ ### Free Margin The free margin, $$fm$$, is the remaining amount of Collateral Value that can be used to increase the open position or that can be withdrawn from the Account's assets. The free margin can be found by subtracting the used margin from the available margin: $$ fm := am - um $$ ## Examples Coming soon. # Liquidations Arcadia liquidation mechanism: Dutch auction for unhealthy Margin Accounts, partial liquidations, health factor triggers, auction dynamics, and liquidation bot integration. ## Overview Arcadia's liquidation mechanism is designed to protect both lenders and borrowers by maintaining market stability and minimizing excessive liquidations during volatile market conditions. This mechanism exclusively applies to Arcadia Margin Accounts, as Spot Accounts are not debt-enabled and therefore exempt from liquidation processes. By combining partial liquidations with a Dutch auction mechanism, Arcadia has developed an innovative approach that: \* Minimizes the risk of bad debt \* Prevents unfair account liquidations \* Incentivize third-party participation in price discovery and protocol maintenance ## Key Concepts ### 1. Collateral Value Represents the maximum debt an Account can assume based on its assets. Calculated as the sum of individual asset prices multiplied by their respective collateral factors. $$ CV = \\sum\\\_{i=1}^{n} (P\\\_i \\cdot CF\\\_i) $$ Where: \* $$CV$$: Collateral Value \* $$P\\\_i$$: Price of asset $i$ \* $$CF\\\_i$$: Collateral Factor of asset $i$ \* $$n$$: Total number of assets ### 2. Liquidation Value Defines the threshold at which an Account becomes eligible for liquidation. Calculated by multiplying each asset's latest price with its specific liquidation factor. $$ LV = \\sum\\\_{i=1}^{n} (P\\\_i \\cdot LF\\\_i) $$ Where: \* $$LV$$: Liquidation Value \* $$P\\\_i$$: Price of asset $i$ \* $$LF\\\_i$$: Liquidation Factor of asset $i$ \* $$n$$: Total number of assets ### 3. Margin Metrics \* \*\*Used Margin\*\*: The total value of debt drawn by the account, including accrued interest. \* \*\*Minimum Margin\*\*: A protocol-imposed threshold ensuring system safety, below which margin positions cannot be created. ### 4. Partial Liquidation A nuanced approach where only a portion of an Account's position is liquidated, allowing: \* Partial debt repayment \* Preservation of remaining assets \* Reduced risk of total Account destruction ### 5. Dutch Auction Mechanism A dynamic pricing model characterized by: \* \*\*Starting Price\*\*: (Debt + Liquidation Costs) × Starting Price Multiplier \* \*\*Price Decay\*\*: Exponential price reduction \* \*\*Auction Duration\*\*: Maximum 8 hours, but most auctions are cleared in 30 to 60 minutes. \* \*\*Minimum Price\*\*: Debt × Multiplier ### 6. Liquidation Costs \* \*\*Initiator Fee\*\*: Compensation for liquidation trigger \* \*\*Terminator Fee\*\*: Reward for auction settlement \* \*\*Lending Pool Liquidation Penalty\*\*: Penalty paid by the liquidated Account ### 7. Account Health Indicators \* \*\*Health Factor\*\*: Liquidation Value ÷ Used Margin $$ HF = \\frac{LV}{UM} $$ Where: \* $$HF$$: Health Factor \* Ratio > 1: Healthy Account \* Ratio ≤ 1: Unhealthy Account \* $$LV$$: Liquidation Value \* $$UM$$: Used Margin ## Liquidation Process ### 1. Liquidation Trigger Conditions for Liquidation: \* Health Factor drops below 1 \* Triggered by: \* Automated monitoring systems \* Decentralized third-party participants \*\*Starting Price Calculation\*\*: Starting Price = (Outstanding Debt + Liquidation Costs) × Starting Price Multiplier ### 2. Auction Dynamics \* \*\*Price Mechanism\*\*: Exponential decay over time \* \*\*Partial Liquidation\*\*: \* Liquidators can purchase account portions \* Incrementally reduces user's debt \* Lowers remaining position's debt ratio ### 3. Auction Termination Auction ends when: \* Account reaches a healthy state, where the collateral value > used margin, and the liquidator chooses to terminate \* Minimum price is reached \* Maximum duration (8 hours) is exceeded \* All assets in the Account are liquidated ### 4. Post-Liquidation \* Surplus funds returned to Account Owner \* Account remains usable ## Key Advantages \* Minimized liquidation risk \* Fair asset preservation \* Decentralized participation \* Dynamic price discovery \*\*Disclaimer\*\*: Users should thoroughly understand liquidation mechanisms and associated risks. ## Liquidation Bots The mechanism is open to third-party participants who can develop their own bots to act as initiators or terminators or liquidators, and purchase partial account positions during the liquidation process. You can find more information if you are interested in building your own liquidation bot \[here\](https://docs.arcadia.finance/developers/integrations/liquidators). # Asset Managers Asset Managers overview: permissionless, permissioned, and custodial automation for Arcadia Accounts — Compounders, Rebalancers, Yield Claimers, CoW Swapper, and Merkl Operators. ## Overview An Asset Manager of an Arcadia Account is a privileged role that can, as the name implies, manage the assets of an Account. Their main purpose is to enable a wide range of automation for the owner of the Arcadia Account, without the owner having to give up self-custody of their assets. Each Arcadia Account may have one or more Asset Managers, and only the owner of an Account can add or remove Asset Managers. Asset Managers can perform the following actions: \* Deposit assets. \* Withdraw assets. \* Transfer funds from the Owner. \* Execute flash actions (optimistically execute arbitrary logic with the withdrawn/transferred assets). ## Types of Asset Managers Any Ethereum address, whether a smart contract or an externally owned account, can be set as an Asset Manager. This opens up a wide range of solutions for users with varying trust assumptions. We can roughly define three models in this context: permissionless, permissioned, and custodial. #### 1. Non-Custodial Permissionless Asset Managers are immutable, trustless smart contracts that can only perform a single action and do not require any additional user input. An example of this is the Compounders that will be described in more detail in this article. #### 2. Non-Custodial Permissioned Asset Managers can be smart contracts that restrict the actions they can perform to a single purpose, but do require user input. An example would be an Asset Manager to rebalance Liquidity Positions. While the contract can only change the range of a position and not, say, withdraw assets, it might require a permissioned role that only triggers a rebalance when it makes sense. #### 3. Custodial Asset Managers can be EOAs that run strategies as a service for users. While there might be off-chain agreements regarding what these managers can and cannot do, these are not enforced on-chain, and the Asset Managers essentially have full power over the Account. ## Implementations of Asset Managers Some examples how asset management can be automated with Arcadia Accounts and Asset Managers are: \* \[Compounding fees\](https://docs.arcadia.finance/protocol/asset-managers/compounders) \* \[Rebalancing portfolios\](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) \* \[Yield Claimers\](https://docs.arcadia.finance/protocol/asset-managers/yield-claimers) \* \[CoW Swapper\](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper) \* \[Merkl Operators\](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators) \* AI agents \* ... Want to build your own Asset Manager for Arcadia Accounts, head over to our \[Developer docs\](https://docs.arcadia.finance/developers/integrations/asset-managers). # Compounders Compounders: immutable, permissionless Asset Managers that auto-compound concentrated liquidity fees. Properties, fee structure, and link to technical deep dive. Compounders address a critical inefficiency in concentrated liquidity protocols, where yield from liquidity positions is not automatically reinvested. These asset managers transform linear returns into exponential growth by automatically compounding fees. For a deep dive into our Compounders' mathematical and technical intricacies, \[read our comprehensive deep dive\](https://docs.arcadia.finance/deep-dives/compounders). ### Properties Compounders are: \* Immutable. \* Non-Custodial but triggering is Permissioned. \* The contract relies on economic incentives, with the initiator of the compound earning a small reward. ### Fees The compounders charges the standard fee on yield earned, see \[Fees\](https://docs.arcadia.finance/protocol/fees) and may charge a fee on amounts swapped based on the stAAA holdings of the Account Owner. # Rebalancers Rebalancers: non-custodial permissioned Asset Managers that auto-rebalance concentrated liquidity positions. Trust assumptions, strategies, hook system, fee tiers, rate limits, and stAAA benefits. Rebalancers manage concentrated liquidity positions dynamically, solving the challenge of maintaining optimal liquidity ranges in rapidly changing market conditions. They automatically adjust position ranges to maximize fee-earning. Detailed insights into our Rebalancer's innovative approach can be found in \[our in-depth technical deep dive\](https://docs.arcadia.finance/deep-dives/rebalancers). ## Properties Rebalancers are: \* Immutable. \* Non-Custodial but triggering is Permissioned. \* The contract relies on economic incentives, with the initiator of the rebalance earning a small reward. A unique feature of Arcadia's Rebalancers is the innovative Hook structure. This extensible design allows account owners to implement custom logic and additional checks for their rebalancing strategies. The Hook system is open for development by both protocol users and third-party developers. ## Strategies Rebalancing is always a tradeoff between the opportunity cost of being out of range and the costs of rebalancing the position. Finding the optimal strategy that determines when to rebalance, and which new lower and upper price to use, is a complex problem to solve, and it depends on multiple factors: \* Type of liquidity pool (stable pool, correlated assets, volatile assets…) \* Market conditions (bullish, bearish, flat) \* Objectives of the position owner \* Chain conditions e.g. gas price \* … The Rebalancer is made in such a way that it works with any rebalance strategy. The main logic is strategy agnostic: it takes as input an old position, the new upper price and the new lower price. ## Trust Assumptions The Rebalancer is a smart contracts that can only perform a single atomic action (rebalancing CLPs), it never holds assets. But it does require input from a permissioned (whitelisted by the Owner, not Arcadia) user, further called the Initiator. !\[Initiator\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-90cd95dea32103436d18cfaa2408f70e8e837dde%2Finitiator.png?alt=media) The initiator has to call the Rebalancer contract and has to determine: \* When to rebalance \* The range of the new Liquidity Position A malicious initiator can still only rebalance via the Rebalancer, while it is a trusted role, they can never steal funds or Liquidity from the Account Owner. The worst a malicious/incompetent Rebalancer can do, is trigger Rebalances at bad moments and move liquidity to non-optimal ranges, resulting in value lost due to swap fees, slippage and opportunity cost. But they can never “rug” the assets of an Account. Since Initiators can be revoked/replaced at any time by the Account Owner, they are incentivised to rebalance optimally, to keep earning fees for their services. The Rebalancer is permissioned, but that does not mean it is centralised. Each Account Owner can choose if they enable the Rebalancer at all. And if they do, they can choose who they set as initiator. Different initiators can for instance run different rebalance strategies, or ask different fee amounts for their services. ## Rebalancing Limits and Economic Filters To ensure economic sustainability and prevent abuse, the rebalancer implements a multi-tier filtering system that evaluates positions before executing rebalances. This system balances profitability for the protocol with quality service for users, allowing new users to try out the rebalancer without committing capital while preventing abuse. ### Decision Logic When a position meets its strategy-based rebalancing criteria (e.g., price moved out of range), it passes through the following checks \*\*in order\*\*. If any check passes, the position is rebalanced immediately: #### 1. Whitelist Bypass Certain account owners (VIP users, protocol partners, protocol-owned liquidity) are whitelisted for unlimited rebalancing without any restrictions. #### 2. Gas-based Profitability Check The protocol evaluates whether the expected revenue from pending fees exceeds the estimated gas cost by a factor of 2. Positions with significant accumulated fees get gas-sponsored rebalances regardless of rate limits. \*\*Calculation:\*\* \* Gas cost = 4,000,000 gas units × current gas price × ETH price (USD) \* Expected revenue = pending fees (USD) × initiator fee percentage \* Required: revenue ≥ 2 × gas cost #### 3. Large Position Threshold (≥ $50,000 USD) High-value positions (≥ $50,000 USD in total liquidity) are always rebalanced, regardless of pending fees or rate limits. The total USD value is computed from the liquidity amounts of both tokens at current market prices. #### 4. Rate Limiting with stAAA Token Benefits For positions that don't meet the above criteria, rebalancing is subject to usage quotas. \*\*Base Quota (everyone gets this):\*\* \* 1 gas-sponsored rebalance per day (rolling 24-hour window) \* 3 gas-sponsored rebalances per week (rolling 7-day window) \*\*stAAA Token Holder Benefits:\*\* Account Owners holding stAAA tokens receive additional rebalancing quota: \* \*\*+1 additional rebalance per day\*\* for every \*\*3,000 stAAA\*\* tokens held \* Weekly limit scales proportionally: base + (daily bonus × 7) | stAAA Held | Daily Limit | Weekly Limit | | ---------- | ----------- | ------------ | | 0 | 1 | 3 | | 3,000 | 2 | 10 | | 6,000 | 3 | 17 | | 9,000 | 4 | 24 | | 30,000 | 11 | 73 | \*\*Important:\*\* AAA holders need to \*\*stake their AAA tokens into stAAA\*\* to benefit from increased quotas. The rate limit counts all rebalances across \*\*all of an owner's accounts\*\*, preventing circumvention through multiple accounts. #### 5. Pay Gas Costs with AAA If you've exceeded your gas-sponsored quota but still want rebalancing, you can \*\*approve AAA tokens to the Gas Relayer\*\*. When a rebalance is triggered: \* The estimated gas cost is calculated in AAA tokens \* If your approval \*\*and balance\*\* cover the gas cost, the rebalance executes \* The gas cost (in AAA) is deducted from your balance This allows unlimited rebalancing for users willing to pay gas costs in AAA tokens. \*\*Gas Relayer Address:\*\* \`0xD938C8d04cF91094fecAF0A2018EAac483a40137\` To enable this: approve AAA tokens to the Gas Relayer address through the dApp. We recommend approving enough for multiple rebalances. ### Summary | Situation | Solution | | ------------------------------------- | ------------------------------------------------------- | | Position has significant pending fees | Automatic - gas profitability check passes | | Position is worth $50k+ | Automatic - always rebalanced | | You hold stAAA tokens | You get increased gas-sponsored quota based on holdings | | You've used your gas-sponsored quota | Approve AAA to the Gas Relayer to pay for gas | | You need unlimited rebalances | Contact the team about whitelisting | ### Configuration | Parameter | Value | Description | | ------------------------ | ------------------ | ----------------------------------------------- | | Position Value Threshold | $50,000 USD | Minimum position size for priority treatment | | Base Daily Limit | 1 rebalance | Gas-sponsored rebalances per 24-hour period | | Base Weekly Limit | 3 rebalances | Gas-sponsored rebalances per 7-day period | | stAAA Bonus Rate | +1 per 3,000 stAAA | Additional daily rebalances per 3k stAAA tokens | | Gas Estimate | 4,000,000 units | Estimated gas per rebalance transaction | | Profitability Multiplier | 2× | Minimum revenue-to-gas-cost ratio | ### Checking Your Status When opening the asset manager modal in the dApp, you can see your current rebalancing status including: \* Your daily/weekly usage and remaining quota \* Your stAAA balance and resulting limits \* Your AAA relayer approval status \* Whether additional AAA approval is recommended ## Costs and Fees When rebalancing there are a number of costs/inefficiencies involved: \* \*\*1. Initiator Fee:\*\* The initiator of the rebalance (who triggers it) receives an initiator fee ($$fee\\\_{initiator}$$) based on the pending yield earned of the position. \* \*\*2. Slippage & leftovers:\*\* Both slippage and leftovers result in a less than optimal amount of liquidity minted (Leftovers are not really a cost since they are deposited back into the account, but they no longer earn yield). Slippage & Leftovers are capped by the maximal decrease in liquidity ($$MDL$$), which compares the optimal rebalance (i.e., assuming no slippage and leftovers) to the current rebalance. \* \*\*3. Impermanent Loss:\*\* Rebalancing realizes impermanent loss. It is not a cost due to rebalancing, but a loss in value compared to the initial position that is realized by rebalancing. Note that \*\*2.\*\* is capped to the downside (if exceeded the transaction reverts) but is most of the time much smaller or even positive (the swap can be done with a lower average fee than that of the pool and slippage can be positive as well). Both the initiator $$fee\\\_{initiator}$$ and the $$MDL$$ are set by the Account Owner, they can differ for different strategies and different pools. The Initiator can change the rebalance parameters, but only advantageous to the Account Owner (lower fees, lower max slippage). The fees and settings for the current initiators are set to: | Rebalancer | Initiator | Strategy | $$fee\\\_{initiator}$$ | $$MDL$$ | | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------- | -------------------- | ------- | | \[Slipstream V1 Rebalancer\](https://basescan.org/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) | \[0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE\](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) | Any | 7.5% of yield earned | 1% | | \[Slipstream V2 Rebalancer\](https://basescan.org/address/0x953Ff365d0b562ceC658dc46B394E9282338d9Ea) | \[0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE\](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) | Any | 7.5% of yield earned | 1% | | \[Uniswap V3 Rebalancer\](https://basescan.org/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) | \[0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE\](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) | Any | 7.5% of yield earned | 1% | | \[Uniswap V4 Rebalancer\](https://basescan.org/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) | \[0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE\](https://basescan.org/address/0xDc9B596ce15F859673D1Be72e2Aadd41DD3aC4fE) | Any | 7.5% of yield earned | 1% | Note: all rebalances will be subject to the Yield Success Fee of the protocol, as can be found in the \[Fees\](https://docs.arcadia.finance/protocol/fees) section. # Yield Claimers Yield Claimers: Asset Managers that claim staking rewards and yield from liquidity positions and send them to a designated recipient. Yield claimers will periodically claim any pending yield (either trading fees for non staked positions, or staking emissions from staked positions) and send it to a designated recipient, defined by the owner of the Account. This can be the Account, the owner or any third contract. ### Properties Yield claimers are: \* Immutable. \* Non-Custodial but triggering is Permissioned. ### Fees The yield claimers charge the standard fee on yield earned, see \[Fees\](https://docs.arcadia.finance/protocol/fees). # Merkl Operators Merkl Operators: Asset Managers that automatically claim Merkl rewards from liquidity incentive campaigns and send them to a receiver set by the Account Owner. \[Merkl\](https://app.merkl.xyz/) is a widely used reward distribution platform powering dApps such as Aerodrome, Uniswap, Aave, etc. Also Arcadia Accounts can be eligible for said rewards by holding positions that qualify the requirements of a specific Merkl campaign (set up by third parties, not the Arcadia team). The Merkl Operator automates claiming and distribution of the rewards to an address set by the owner of the Arcadia Account. ### Properties Merkl Operators are: \* Immutable. \* Non-Custodial but triggering is Permissioned. \* The contract relies on economic incentives, with the initiator of the operation charging a fee. ### Fees The Merkl Operator charges the standard fee on yield earned, see \[Fees\](https://docs.arcadia.finance/protocol/fees). # CoW Swapper CoW Swapper: trustless MEV-protected ERC20-to-ERC20 swaps within Arcadia Accounts via CoW Protocol batch auctions. Use cases include compounding staking rewards, take profit, debt repayment, and stop The CoW Swapper enables ERC20-to-ERC20 token swaps within Arcadia Accounts via \[CoW Protocol\](https://cow.fi/)'s batch auction mechanism. Combined with Arcadia Flash Actions, it supports a range of automated strategies without assets leaving the Account. For a deep dive into the CoW Swapper's architecture and trust model, \[read our comprehensive deep dive\](https://docs.arcadia.finance/deep-dives/cow-swapper). Use cases include: \* \*\*Compounding staked positions\*\*: Staking rewards paid in a third token (e.g. OP, ARB, AERO) are swapped back into the pool's underlying tokens and compounded into the liquidity position. The CoW Swapper handles the token swap, the existing \[Compounder\](https://docs.arcadia.finance/protocol/asset-managers/compounders) handles the rest. \* \*\*Take profit\*\*: Account Owners can automatically take a portion of earned yield and swap it into any token of choice (e.g. USDC) rather than compounding everything back into the pool. \* \*\*General swaps\*\*: Any ERC20 token held in an Arcadia Account can be swapped to any other ERC20 token, enabling flexible portfolio management. \* \*\*Debt repayment\*\*: For leveraged positions, earned yield can be swapped into the debt token and used to repay the loan, gradually deleveraging the position over time. \* \*\*Stop losses\*\*: Position assets are swapped when certain price conditions are met, protecting against downside risk. ## Properties CoW Swapper is: \* Immutable. \* Non-Custodial but triggering is Permissioned. \* The contract relies on CoW Protocol's batch auction for price discovery, with the Initiator earning an optional fee capped by the Account Owner. ## How It Works ### 1. Setup Only the Account Owner can configure the CoW Swapper. They have to set which address to whitelist as Initiator (can also be themselves), a \`maxSwapFee\` cap on what the Initiator can charge (can be 0), and which OrderHook contract to use for additional per-account restrictions. ### 2. Signing the Order When the Initiator (or the Account Owner themselves) decides a swap should be done (e.g. to compound claimed staking rewards), they start by constructing and signing a valid CoW swap order. This order is then submitted to CoW's order book. !\[Order signing flow\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-2e74b0048d71d3b11c0e07b36ba2bd1005fc7287%2Fcow-swapper1.png?alt=media) ### 3. CoW Auction The CoW Protocol runs a \['Fair Combinatorial Auction'\](https://arxiv.org/abs/2408.12225), where solvers compete to fill the order within a set amount of time. The solver that can quote the best price wins the auction and can fill the order. !\[CoW auction\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-806b534fff79a72b2773bc9caac07c511ca577ba%2Fcow-swapper2.png?alt=media) ### 4. Settlement The winning solver executes the order on-chain. The solver triggers the transaction via CoW's Flash Loan Router, which initiates a flash action on the Arcadia Account, pulling tokenIn out to the CowSwapper. First, the CowSwapper logic is triggered. The CowSwapper reconstructs the order based on the input data, computes its hash, and stores the hash in transient storage. Next, an Account Owner-defined OrderHook is called. Via this hook the Account Owner can enforce additional, customisable constraints (more on this in the next section). Lastly, the actual swap is settled via CoW's Settlement contract. The settlement contract executes the swap and does a number of checks: \* Check that the order has not expired \* Check that the order has not been previously filled \* Check that the actual execution price was equal to or better than what was specified in the order \* Check the order's signature: for the CowSwapper we use \[EIP-1271\](https://eips.ethereum.org/EIPS/eip-1271#specification) signatures. The contract checks two things: the hash matches what was just reconstructed from the order parameters, and the signature over that hash came from the Initiator or Account Owner. The hash construction is the core of the trust model. Every field in the order — tokenOut, amountOut, deadline, fee — feeds into the hash that gets verified on-chain. If a solver modified any parameter between the Initiator's submission and settlement, the on-chain reconstruction produces a different hash, the signature check fails, and the transaction reverts. The Initiator commits to specific terms upfront. Those exact terms are what gets executed. !\[Settlement flow\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-3c1230cf0908392f7d76f3c56578b857fe79e0b4%2Fcow-swapper3.png?alt=media) ## Order Hooks Account Owners who want more control can use custom Order Hooks. Examples of what a custom hook can do: \*\*Oracle check.\*\* Verify the solver's output is within acceptable range of an on-chain price, as a second layer of protection on top of solver competition. \*\*Token filters.\*\* Whitelist or blacklist specific assets. Stops the Initiator from swapping into tokens the owner hasn't approved. \*\*Rate limits.\*\* Cap swap frequency or maximum size per time window, useful for strategies that should execute gradually rather than all at once. ## Trust Assumptions ### Initiators Initiators can decide when to swap tokens, the tokenIn and tokenOut, the amountIn and the minimum amountOut. The Account Owner can easily restrict the tokenIn and tokenOut via the Order Hook: \* Whitelist/blacklist, or fix tokenIn and/or tokenOut \* Set minimum cooldown periods For the minimum amountOut, the decentralised batch auction provides a safety net. Even with a low minimum amountOut, the batch auction guarantees a competitive actual price. Account Owners can additionally use third-party oracles to set a minimum value via a custom Order Hook. ### Solvers Solvers cannot modify anything in the order. If they change any field of the order, or skip certain steps such as the flash loan or hook calls, the on-chain calculated hash will not match the signature. If the auction mechanism fails or solvers collude, the worst case is that the minimum amountOut specified by the Initiator is what gets quoted. ## Fees The Initiator can charge a fee: a percentage of the tokenOut received, where the percentage is set per order but always capped by the \`maxSwapFee\` configured by the Account Owner. CoW Protocol charges gas costs indirectly by factoring them into the price quoted for the swap. For more information on protocol fees, see \[Fees\](https://docs.arcadia.finance/protocol/fees). # Asset Pricing How Arcadia prices assets on-chain: the Registry, Oracle Modules, Primary and Derived Asset Modules, and recursive decomposition of composed assets like staked LP positions. The pricing of assets is done via an on-chain append-only Registry. !\[Registry\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-aa5cf3dbd736662719113dd60e2823f64b6ab583%2Fregistry.png?alt=media) The Arcadia Registry is not a monolithic smart contract containing all logic.\\ It consists of a main coordinating smart contract (also referred to as The Registry) and multiple append-only Modules. Each Module is a separate smart contract with the pricing logic for specific Oracle implementations or specific Asset types.\\ The Registry keeps mappings of which Modules to use for each asset. Modules can only be appended to the Registry, not removed or overwritten.\\ This ensures that Pricing logic is immutable, but it still gives flexibility to add new assets, or implement more efficient Pricing logic over time. ## Oracle Modules The Oracle Module implements the logic to convert the oracle-rate of different oracle technologies into a standardized format. Each different oracle implementation (e.g. Chainlink oracles, Pyth oracles, Uniswap TWAPs...) has its own Oracle Module. ## Asset Modules Just like Oracle Modules implement the logic to return oracle-rates in a standardized format, Asset Modules will return Asset values in a standardized format. Similar to how each oracle implementation has its own oracle Module, each asset type has its own Asset Module. Next to pricing logic, Asset Modules also store and manage asset specific \[risk parameters\](https://docs.arcadia.finance/security-and-risk/risk). Asset Modules can be further divided into two distinct groups: Primary Asset Modules and Derived Asset Modules. ### Primary Asset Modules Primary assets are defined as assets that are not composed of other assets. For example: USDC, wETH and AERO.\\ Primary Assets must be priced using one or more on-chain oracles. ### Derived Asset Modules Derived Assets are defined as assets that are composed of one or more underlying assets (which can be Primary Assets or other Derived Assets).\\ Examples of Derived Assets are liquidity positions of AMMs, staked assets, yield bearing tokens. To value a certain amount of a Derived Asset, the Asset Module has to: 1. Decompose the asset in its underlying assets. 2. Calculate the values of the corresponding underlying asset amounts. 3. Sum the values of its underlying assets. The Asset Module luckily does not have to implement the pricing logic for each Underlying Asset, it can just ask the Arcadia Registry recursively what the values are for each of the Underlying Assets (Step 4 and 9)! This goes on until the underlying asset is not composed of any other assets (also referred to as Primary Assets), and we use an on-chain Oracle to determine its value (Step 6, 11 and 13). Lets use the example of an Aerodrome WETH-USDC pool, that is staked and earns Aero rewards: !\[Composed Assets\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-2fdedb7a6cbb6cfc1dbfbd39e64ca553e7eaa9eb%2Fcomposed-assets.png?alt=media) The staked position has as underlying assets the Liquidity position and the aero rewards (a Primary Asset). The Liquidity position is further composed of both WETH and USDC (two primary assets). The whole flow to price this asset is as follows: !\[Recursive Pricing\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-b333a745f18c5fd0132ea4dcff52f5f1a81378d0%2Frecursive-pricing.png?alt=media) While this recursive process may look complex, only one function per Asset Module (no matter what type of asset) has to be implemented, the conversion of an amount of the composed token into the amounts of its underlying tokens (step 3 and 8). All other steps are orchestrated by the Registry, and had to be implemented just once! # Fees Arcadia Protocol fee structure: yield success fees, swap fees, initiator fees, and how stAAA holdings reduce fees. The protocol can charge the following fees. Yield, earnings and APYs displayed on the front-end take into account activated fees. ## Summary | Fee Type | Amount | Notes | | ------------------------------------ | -------- | ----------------------------------------------------------------- | | Reserve factor for interest payments | 15% \\\* | Percentage of interests paid which goes towards the protocol | | Liquidation Penalty | | On open debt of Accounts, according to: | | - Liquidation Initiation | 0.12% | Paid to the keeper initiating the liquidation | | - Liquidation Termination | 0.12% | Paid to the keeper terminating the liquidation | | - Liquidation Penalty | 2% | Equally split between the protocol and liquidity providers | | Origination Fee | 0% | Fee on new debt taken | | Front-end Swap Fee | 0% | Fee on swaps executed through the front-end | | Front-end Position Fee | 0% | Success fee on positions created and burned through the front-end | | Yield Success Fee | 7.5% | Fee on yield generated through the protocol | | Auto-Rebalancer | 0%\\\*\\\* | Yield success fee on rebalancing | | Auto-Compounder | 0%\\\*\\\*\\\* | Yield success fee on compounding | \\\* \*This is not the interest rate itself, but the cut on interest payments.\*\\ \\\* \\\* \*Rebalancing may incur other costs such as DEX swap fees and IL.\*\\ \\\* \\\* \\\* \*Compounding may incur other costs such as DEX swap fees.\* ## Lending \* A fee on interest payments, currently set to 15%. \* A share of the liquidation penalty, currently evenly split between the protocol treasury and the liquidity providers. ## Front-end \* A fee on swaps through the front end, currently set to 0%. \* A success fee on positions created and burned through the front end, currently set to 0%. \* A success fee on yield generated through the protocol. This fee is set to 7.5%. ## Asset Managers Depending on the asset manager, the fees and usage limits can vary. For more information, see \[Asset Managers\](https://docs.arcadia.finance/protocol/asset-managers). # Security & Risk Security and risk management for Arcadia Protocol: audits, risk parameters, circuit breakers, insurance/cover options, and protocol roles. Arcadia uses a multi layered security approach to protect users and the protocol. 1. All code is \[audited\](https://docs.arcadia.finance/security-and-risk/audits) by multiple parties and underwent a Sherlock auditing contest. 2. A \[Risk Framework\](https://docs.arcadia.finance/security-and-risk/risk) is developed with industry leading third parties and continuously monitored. 3. \[Security breakers\](https://docs.arcadia.finance/security-and-risk/circuit-breakers) are in place to protect against malicious actors. 4. User can opt-in for \[Insurance\](https://docs.arcadia.finance/security-and-risk/insurance) to protect their deposits. For the formal risk model and protocol design rationale, see the \[protocol whitepaper\](https://github.com/arcadia-finance/whitepapers/blob/main/main.pdf). \*\*Disclaimer\*\*: While we take extensive measures to ensure protocol security, users should always understand that no system is 100% immune to potential risks. We recommend users to read our audit reports, our documentations and risk measures. # Audits Arcadia Protocol audit history: completed security audits by Pashov Group, Sherlock, and other auditors, with links to audit reports. At Arcadia, we prioritize the security of our protocol through comprehensive security measures and auditing processes. The DeFi landscape is evolving rapidly and is the primary target of bad actors. We work with the best teams in the security industry and researchers to ensure users' funds at Arcadia maximally protected. We would like to thank \[0xladboy\](https://twitter.com/Xc1008Cui) and Lambda from \[Trust Securities\](https://www.trust-security.xyz/), \[HollaDieWaldfee\](https://twitter.com/HollaWaldfee100), \[alexxander\](https://twitter.com/\_\_alexxander\_) and \[bytes032\](https://twitter.com/bytes032) from \[Renascense\](https://twitter.com/RenascenceLabs), \[Pashov\](https://twitter.com/pashovkrum), \[Ruhum\](https://code4rena.com/@ruhum) and \[carrotsmuggler\](https://code4rena.com/@carrotsmuggler) from the \[Pashov Audit Group\](https://twitter.com/PashovAuditGrp) and \[0x52\](https://twitter.com/IAm0x52) together with the many Sherlock Watsons for helping us with security reviews for the protocol. The complete Arcadia V2 contracts are audited by multiple parties and underwent a Sherlock auditing contest. Additionally, asset modules and periphery contracts have been fully audited. The audit reports can be found below: \* \*\*Nethermind (Q4 2022 - Q1 2023):\*\* complete codebase Arcadia V1 \* \*\*Trust Securities (Q4 2023):\*\* complete codebase Arcadia V2 \* \*\*Renascence (Q1 2024):\*\* complete codebase Arcadia V2 \* \*\*Pashov Audit Group (Q1 2024):\*\* complete codebase Arcadia V2 \* \*\*Sherlock Contest (Q1 2024):\*\* complete codebase Arcadia V2 \* \*\*Sherlock Contest - Aerodrome Asset Modules (Q2 2024):\*\* Aerodrome Asset Modules \* \*\*Renascence (Q2 2024):\*\* Aerodrome staked Slipstream, Auto-compounder and Tranche Wrapper \* \*\*Pashov Group (Q3 2024):\*\* Spot Accounts and Uniswap V4 Asset Module \* \*\*Renascence (Q1 2025):\*\* Staking contracts \* \*\*Sherlock (Q3 2025):\*\* New Account versions, multichain deployment All completed audit reports can be found in the following Github repository: We strongly recommend users to read our audit reports, our documentation and risk measures. # Risk Management Risk management in Arcadia: per-asset risk parameters (collateral factors, liquidation factors), risk exposure limits, and how Creditors configure risk. Each collateral and numeraire pair within the Arcadia Protocol has specific risk values, which influence how assets are supplied and loans are issued. Each asset has a different underlying risk, and it is crucial for users to understand the smart contract security, centralization risk, and market risks. Collateral and numeraire assets are onboarded with carefully designed risk mitigation parameters. ## Risk Parameters Arcadia Protocol employs three main risk mitigation parameters: 1. \*\*Collateral Factor\*\* 2. \*\*Liquidation Factor\*\* 3. \*\*Supply Caps\*\* These parameters help manage the market risk of supported collateral assets and are used for the \[Margin Calculation\](https://docs.arcadia.finance/protocol/margin-calculations-and-requirements) of Arcadia Accounts. ### Collateral Factor Determines the numeraire amount available as debt for a collateral asset. The factor depends on: \* Asset quality \* Security risk \* Market risk ### Liquidation Factor Used to: \* Determine when a collateral asset will be auctioned to pay off debt \* Calculate fair starting prices in auctions The factor depends on: \* Asset quality \* Volatility relative to numeraire asset ### Supply Caps Limits exposure to a single collateral asset or to a single type of asset by defining: \* Maximum numeraire debt for a given collateral \* Based on the on-chain liquidity of the collateral asset and the risk associated with the asset type. ## Detailed Methodology For a comprehensive understanding of our risk parameter methodology, \[visit our detailed research document\](https://www.llamarisk.com/research/introducing-arcadiasim). ## Continuous Monitoring We continuously monitor risk parameters to adapt to changing market conditions. Users can access our detailed risk dashboard, powered by LlamaRisk, \[here\](https://portal.llamarisk.com/arcadia/overview). # Circuit Breakers Arcadia circuit breakers: automated safety mechanisms that pause protocol operations during extreme market events or oracle failures. Arcadia uses \[Hexagate\](https://www.hexagate.com/)'s monitoring tools to detect suspicious contract deployments and transactions. An automated pause mechanism is set up such that on suspicious events, the whole protocol can be paused minimizing the risk of exploits. # Insurance/Cover Insurance and cover options for Arcadia lending pool deposits: smart contract exploit protection via coverage protocols. ## Nexus Mutual Arcadia's protocol is covered by \[Nexus Mutual\](https://v2.nexusmutual.io/cover/product/156) for comprehensive protection.\\ Coverage can be purchased \[through OpenCover\](https://opencover.com/arcadia). ## Base DeFi Pass Arcadia is also included in the \[Base DeFi Pass\](https://opencover.com/basepass/) through OpenCover. # Roles Protocol roles in Arcadia: owner, guardian, risk manager, and their permissions across Factory, Registry, Lending Pools, and Asset Modules. All permissioned roles use Safe multisig's. The Arcadia protocol has the following roles: \* Owner: Can append new Asset Modules and Account versions to the protocol. \* Risk Manager: Set per Creditor, can set risk parameters for collateral assets. \* Pause Guardian: Can pause the protocol in case of a security breach. # Developers Developer documentation for Arcadia Protocol: contract addresses, integration guides for Asset Managers, Liquidators, and Creditors. # Contract Addresses All Arcadia Protocol deployed contract addresses across Base (chain ID 8453), Optimism (chain ID 10), and Unichain (chain ID 130), organized by category: core protocol, creditors, and asset managers. The Arcadia Protocol is deployed on \*\*Base\*\* (chain ID \`8453\`), \*\*Optimism\*\* (chain ID \`10\`), and \*\*Unichain\*\* (chain ID \`130\`). Most contracts share the same address across all chains. Each sub-page uses per-chain explorer columns to indicate where a contract is deployed — empty cells mean the contract is not available on that chain. # Core protocol Core Arcadia Protocol contract addresses across Base, Optimism, and Unichain: Factory, Registry, Account implementations, Liquidator, Position Managers, Pricing Modules, Oracle Modules, and common tok The Arcadia Protocol consists of a number of contracts \* \*\*The Factory\*\* creates all Arcadia Accounts, for all Account versions. \* \*\*Pricing Modules\*\* ensure the correct pricing of simple and complex assets. \* \*\*Oracle modules\*\* form a standardized manner to request external prices. \* \*\*The Registry\*\* is the overarching contract coordinating all contracts. ## Core Core protocol contracts share the same address across all chains. | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[Factory\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/Factory.sol) | \`0xDa14Fdd72345c4d2511357214c5B89A919768e59\` | \[↗\](https://basescan.org/address/0xDa14Fdd72345c4d2511357214c5B89A919768e59) | \[↗\](https://optimistic.etherscan.io/address/0xDa14Fdd72345c4d2511357214c5B89A919768e59) | \[↗\](https://uniscan.xyz/address/0xDa14Fdd72345c4d2511357214c5B89A919768e59) | | \[Registry\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/Registry.sol) | \`0xd0690557600eb8Be8391D1d97346e2aab5300d5f\` | \[↗\](https://basescan.org/address/0xd0690557600eb8Be8391D1d97346e2aab5300d5f) | \[↗\](https://optimistic.etherscan.io/address/0xd0690557600eb8Be8391D1d97346e2aab5300d5f) | \[↗\](https://uniscan.xyz/address/0xd0690557600eb8Be8391D1d97346e2aab5300d5f) | | \[Liquidator\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/Liquidator.sol) | \`0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af\` | \[↗\](https://basescan.org/address/0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af) | \[↗\](https://optimistic.etherscan.io/address/0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af) | \[↗\](https://uniscan.xyz/address/0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af) | ### Account Implementations | Contract | Address | Base | Optimism | Unichain | | ----------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[AccountV1\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/accounts/AccountV1.sol) (Margin) | \`0xbea2B6d45ACaF62385877D835970a0788719cAe1\` | \[↗\](https://basescan.org/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) | \[↗\](https://optimistic.etherscan.io/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) | \[↗\](https://uniscan.xyz/address/0xbea2B6d45ACaF62385877D835970a0788719cAe1) | | \[AccountV2\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/accounts/AccountSpot.sol) (Spot) | \`0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28\` | \[↗\](https://basescan.org/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) | \[↗\](https://optimistic.etherscan.io/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) | \[↗\](https://uniscan.xyz/address/0xd8AF1F1dEe6EA38f9c08b5cfa31e01ad2Bfbef28) | | \[AccountV3\](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/accounts/AccountV3.sol) (Margin) | \`0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6\` | \[↗\](https://basescan.org/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) | \[↗\](https://optimistic.etherscan.io/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) | \[↗\](https://uniscan.xyz/address/0x78Db6a136EdD0F70bEd7a6eb5ca2fDF6eE16E8D6) | | \[AccountV4\](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/accounts/AccountV4.sol) (Spot) | \`0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442\` | \[↗\](https://basescan.org/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) | \[↗\](https://optimistic.etherscan.io/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) | \[↗\](https://uniscan.xyz/address/0xe976BFb44f9322164ca6fdA6C5B84fBb6163D442) | ## Position Managers External protocol position managers have different addresses per chain. Arcadia wrapper contracts share the same address across all chains. | Name | Base | Optimism | Unichain | | ---------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | UniswapV3 | \[0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1\](https://basescan.org/address/0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1) | \[0xC36442b4a4522E871399CD717aBDD847Ab11FE88\](https://optimistic.etherscan.io/address/0xC36442b4a4522E871399CD717aBDD847Ab11FE88) | \[0x943e6e07a7E8E791dAFC44083e54041D743C46E9\](https://uniscan.xyz/address/0x943e6e07a7E8E791dAFC44083e54041D743C46E9) | | UniswapV4 | \[0x7C5f5A4bBd8fD63184577525326123B519429bDc\](https://basescan.org/address/0x7C5f5A4bBd8fD63184577525326123B519429bDc) | \[0x3C3Ea4B57a46241e54610e5f022E5c45859A1017\](https://optimistic.etherscan.io/address/0x3C3Ea4B57a46241e54610e5f022E5c45859A1017) | \[0x4529A01c7A0410167c5740C487A8DE60232617bf\](https://uniscan.xyz/address/0x4529A01c7A0410167c5740C487A8DE60232617bf) | | Slipstream | \[0x827922686190790b37229fd06084350E74485b72\](https://basescan.org/address/0x827922686190790b37229fd06084350E74485b72) | \[0x416b433906b1B72FA758e166e239c43d68dC6F29\](https://optimistic.etherscan.io/address/0x416b433906b1B72FA758e166e239c43d68dC6F29) | \[0x991d5546C4B442B4c5fdc4c8B8b8d131DEB24702\](https://uniscan.xyz/address/0x991d5546C4B442B4c5fdc4c8B8b8d131DEB24702) | | Slipstream V2 | \[0xa990C6a764b73BF43cee5Bb40339c3322FB9D55F\](https://basescan.org/address/0xa990C6a764b73BF43cee5Bb40339c3322FB9D55F) | | | | Staked Slipstream | \[0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1\](https://basescan.org/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) | \[0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1\](https://optimistic.etherscan.io/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) | \[0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1\](https://uniscan.xyz/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) | | Staked Slipstream V2 | \[0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c\](https://basescan.org/address/0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c) | | | | Wrapped Staked Slipstream | \[0xD74339e0F10fcE96894916B93E5Cc7dE89C98272\](https://basescan.org/address/0xD74339e0F10fcE96894916B93E5Cc7dE89C98272) | \[0xD74339e0F10fcE96894916B93E5Cc7dE89C98272\](https://optimistic.etherscan.io/address/0xD74339e0F10fcE96894916B93E5Cc7dE89C98272) | \[0xD74339e0F10fcE96894916B93E5Cc7dE89C98272\](https://uniscan.xyz/address/0xD74339e0F10fcE96894916B93E5Cc7dE89C98272) | | Wrapped Staked Slipstream V2 | \[0x147a2CcbAF4521ad209A2875AE0B3c496f4B25a4\](https://basescan.org/address/0x147a2CcbAF4521ad209A2875AE0B3c496f4B25a4) | | | | Wrapped Aerodrome | \[0x17B5826382e3a5257b829cF0546A08Bd77409270\](https://basescan.org/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) | \[0x17B5826382e3a5257b829cF0546A08Bd77409270\](https://optimistic.etherscan.io/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) | \[0x17B5826382e3a5257b829cF0546A08Bd77409270\](https://uniscan.xyz/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) | | Staked Aerodrome | \[0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27\](https://basescan.org/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) | \[0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27\](https://optimistic.etherscan.io/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) | \[0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27\](https://uniscan.xyz/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) | ## Pricing Modules Pricing Module (Asset Module) addresses are shared across all chains. Some modules are only active on chains where their underlying protocol exists. | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[ERC20PrimaryAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/ERC20-Primaries/ERC20PrimaryAM.sol) | \`0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7\` | \[↗\](https://basescan.org/address/0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7) | \[↗\](https://optimistic.etherscan.io/address/0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7) | \[↗\](https://uniscan.xyz/address/0xfBecEaFC96ed6fc800753d3eE6782b6F9a60Eed7) | | \[UniswapV3AM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/UniswapV3/UniswapV3AM.sol) | \`0x21bd524cC54CA78A7c48254d4676184f781667dC\` | \[↗\](https://basescan.org/address/0x21bd524cC54CA78A7c48254d4676184f781667dC) | \[↗\](https://optimistic.etherscan.io/address/0x21bd524cC54CA78A7c48254d4676184f781667dC) | \[↗\](https://uniscan.xyz/address/0x21bd524cC54CA78A7c48254d4676184f781667dC) | | \[UniswapV4HooksRegistry\](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/asset-modules/UniswapV4/UniswapV4HooksRegistry.sol) | \`0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C\` | \[↗\](https://basescan.org/address/0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C) | \[↗\](https://optimistic.etherscan.io/address/0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C) | \[↗\](https://uniscan.xyz/address/0x8B0fd5352caE4E7c86632CA791229d132Fef5D3C) | | \[DefaultUniswapV4AM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.3.0/src/asset-modules/UniswapV4/DefaultUniswapV4AM.sol) | \`0xb808971ea73341b0d7286B3D67F08De321f80465\` | \[↗\](https://basescan.org/address/0xb808971ea73341b0d7286B3D67F08De321f80465) | \[↗\](https://optimistic.etherscan.io/address/0xb808971ea73341b0d7286B3D67F08De321f80465) | \[↗\](https://uniscan.xyz/address/0xb808971ea73341b0d7286B3D67F08De321f80465) | | \[AerodromePoolAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Aerodrome-Finance/AerodromePoolAM.sol) | \`0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5\` | \[↗\](https://basescan.org/address/0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5) | \[↗\](https://optimistic.etherscan.io/address/0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5) | \[↗\](https://uniscan.xyz/address/0xfe0FA1FD8F8E889062F03e2f126Fc7B9DE6091A5) | | \[WrappedAerodromeAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Aerodrome-Finance/WrappedAerodromeAM.sol) | \`0x17B5826382e3a5257b829cF0546A08Bd77409270\` | \[↗\](https://basescan.org/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) | \[↗\](https://optimistic.etherscan.io/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) | \[↗\](https://uniscan.xyz/address/0x17B5826382e3a5257b829cF0546A08Bd77409270) | | \[StakedAerodromeAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Aerodrome-Finance/StakedAerodromeAM.sol) | \`0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27\` | \[↗\](https://basescan.org/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) | \[↗\](https://optimistic.etherscan.io/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) | \[↗\](https://uniscan.xyz/address/0x9f42361B7602Df1A8Ae28Bf63E6cb1883CD44C27) | | \[SlipstreamAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Slipstream/SlipstreamAM.sol) | \`0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44\` | \[↗\](https://basescan.org/address/0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44) | \[↗\](https://optimistic.etherscan.io/address/0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44) | \[↗\](https://uniscan.xyz/address/0xd3A7055bBcDA4F8F49e5c5dE7E83B09a33633F44) | | \[StakedSlipstreamAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.1.0/src/asset-modules/Slipstream/StakedSlipstreamAM.sol) | \`0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1\` | \[↗\](https://basescan.org/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) | \[↗\](https://optimistic.etherscan.io/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) | \[↗\](https://uniscan.xyz/address/0x1Dc7A0f5336F52724B650E39174cfcbbEdD67bF1) | | SlipstreamV2AM | \`0x3aDE1F1FdC666B1bFAd376345EA878D1c11EB73B\` | \[↗\](https://basescan.org/address/0x3aDE1F1FdC666B1bFAd376345EA878D1c11EB73B) | | | | StakedSlipstreamV2AM | \`0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c\` | \[↗\](https://basescan.org/address/0xBed6C3E35B9B1e044b3Bc71465769EdFDC0FDD4c) | | | | \[StargateAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/Stargate-Finance/StargateAM.sol) | \`0x20f7903290bF98716B62Dc1c9DA634291b8cfeD4\` | \[↗\](https://basescan.org/address/0x20f7903290bF98716B62Dc1c9DA634291b8cfeD4) | \[↗\](https://optimistic.etherscan.io/address/0x20f7903290bF98716B62Dc1c9DA634291b8cfeD4) | | | \[StakedStargateAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/Stargate-Finance/StakedStargateAM.sol) | \`0xae909e19fd13C01c28d5Ee439D403920CF7f9Eea\` | \[↗\](https://basescan.org/address/0xae909e19fd13C01c28d5Ee439D403920CF7f9Eea) | \[↗\](https://optimistic.etherscan.io/address/0xae909e19fd13C01c28d5Ee439D403920CF7f9Eea) | | | \[AlienBaseAM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/asset-modules/UniswapV3/UniswapV3AM.sol) | \`0x79dD8b8d4abB5dEEA986DB1BF0a02E4CA42ae416\` | \[↗\](https://basescan.org/address/0x79dD8b8d4abB5dEEA986DB1BF0a02E4CA42ae416) | | | ## Oracles | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[ChainlinkOM\](https://github.com/arcadia-finance/accounts-v2/blob/v2.0.0/src/oracle-modules/ChainlinkOM.sol) | \`0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31\` | \[↗\](https://basescan.org/address/0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31) | \[↗\](https://optimistic.etherscan.io/address/0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31) | \[↗\](https://uniscan.xyz/address/0x6a5485E3ce6913890ae5e8bDc08a868D432eEB31) | ## Common Tokens Token addresses vary by chain. WETH uses the standard OP-stack address on all chains. | Token | Decimals | Base | Optimism | Unichain | | ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | WETH | 18 | \[0x4200000000000000000000000000000000000006\](https://basescan.org/address/0x4200000000000000000000000000000000000006) | \[0x4200000000000000000000000000000000000006\](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000006) | \[0x4200000000000000000000000000000000000006\](https://uniscan.xyz/address/0x4200000000000000000000000000000000000006) | | USDC | 6 | \[0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\](https://basescan.org/address/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) | \[0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85\](https://optimistic.etherscan.io/address/0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85) | \[0x078D782b760474a361dDA0AF3839290b0EF57AD6\](https://uniscan.xyz/address/0x078D782b760474a361dDA0AF3839290b0EF57AD6) | | cbBTC | 8 | \[0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\](https://basescan.org/address/0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf) | | | | AERO / VELO / xVELO | 18 | \[0x940181a94A35A4569E4529A3CDfB74e38FD98631\](https://basescan.org/address/0x940181a94A35A4569E4529A3CDfB74e38FD98631) | \[0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db\](https://optimistic.etherscan.io/address/0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db) | \[0x7f9AdFbd38b669F03d1d11000Bc76b9AaEA28A81\](https://uniscan.xyz/address/0x7f9AdFbd38b669F03d1d11000Bc76b9AaEA28A81) | | AAA | 18 | \[0xaaa843fb2916c0B57454270418E121C626402AAa\](https://basescan.org/address/0xaaa843fb2916c0B57454270418E121C626402AAa) | | | | stAAA | 18 | \[0xDeA1531d8a1505785eb517C7A28526443df223F3\](https://basescan.org/address/0xDeA1531d8a1505785eb517C7A28526443df223F3) | | | # Creditors Arcadia Creditor contract addresses across Base, Optimism, and Unichain: Lending Pools (WETH, USDC, cbBTC), Tranches (Senior), and Wrapped Tranches (ERC-4626 compliant). ## Lending Pools The Lending pools are responsible for the: \* Accounting of the liabilities of borrowers via the debt tokens (ERC4626). \* Accounting of the liquidity of the Liquidity Providers, via one or more Tranche(s) (ERC4626). \* Management of issuing and repaying debt. \* Management of interest payments. \* Settlement of liquidations and default events. | Contract | Address | Base | Optimism | Unichain | | -------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[LendingPool WETH\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/LendingPool.sol) | \`0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2\` | \[↗\](https://basescan.org/address/0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2) | \[↗\](https://optimistic.etherscan.io/address/0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2) | \[↗\](https://uniscan.xyz/address/0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2) | | \[LendingPool USDC\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/LendingPool.sol) | \`0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1\` | \[↗\](https://basescan.org/address/0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1) | \[↗\](https://optimistic.etherscan.io/address/0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1) | \[↗\](https://uniscan.xyz/address/0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1) | | \[LendingPool cbBTC\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/LendingPool.sol) | \`0xa37e9b4369dc20940009030bfbc2088f09645e3b\` | \[↗\](https://basescan.org/address/0xa37e9b4369dc20940009030bfbc2088f09645e3b) | | | ## Tranches Each Lending Pool has one or more Tranche(s). The Liquidity Providers do not provide Liquidity directly to the Lending Pool, but via a Tranche. Each Tranche contract will do the accounting of the balances of its Liquidity Providers, while the Lending Pool will do the accounting of the balances of its Tranches. A Tranche is according the ERC4626 standard, with a certain ERC20 as underlying asset. The Tranche is not compliant with ERC4626 on the approval flow: the approval goes to the Lending Pool instead of the Tranche, the deposit() is called on the Tranche itself. | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[SeniorTranche WETH\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/Tranche.sol) | \`0x393893caeB06B5C16728bb1E354b6c36942b1382\` | \[↗\](https://basescan.org/address/0x393893caeB06B5C16728bb1E354b6c36942b1382) | \[↗\](https://optimistic.etherscan.io/address/0x393893caeB06B5C16728bb1E354b6c36942b1382) | \[↗\](https://uniscan.xyz/address/0x393893caeB06B5C16728bb1E354b6c36942b1382) | | \[SeniorTranche USDC\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/Tranche.sol) | \`0xEFE32813dBA3A783059d50e5358b9e3661218daD\` | \[↗\](https://basescan.org/address/0xEFE32813dBA3A783059d50e5358b9e3661218daD) | \[↗\](https://optimistic.etherscan.io/address/0xEFE32813dBA3A783059d50e5358b9e3661218daD) | \[↗\](https://uniscan.xyz/address/0xEFE32813dBA3A783059d50e5358b9e3661218daD) | | \[SeniorTranche cbBTC\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.0/src/Tranche.sol) | \`0x9c63a4c499b323a25d389da759c2ac1e385eec92\` | \[↗\](https://basescan.org/address/0x9c63a4c499b323a25d389da759c2ac1e385eec92) | | | ## Wrapped Tranches A Wrapper of the Tranche contract is deployed for each Tranche. The Wrapper is fully compliant with ERC4626 and can be preferably used in integrations. | Contract | Address | Base | Optimism | Unichain | | ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[Wrapped SeniorTranche WETH\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.1/src/periphery/tranche-wrapper/TrancheWrapper.sol) | \`0xD82BFa27D49e5a394ba371B293DaE65E9B7a8C60\` | \[↗\](https://basescan.org/address/0xD82BFa27D49e5a394ba371B293DaE65E9B7a8C60) | \[↗\](https://optimistic.etherscan.io/address/0xD82BFa27D49e5a394ba371B293DaE65E9B7a8C60) | \[↗\](https://uniscan.xyz/address/0xD82BFa27D49e5a394ba371B293DaE65E9B7a8C60) | | \[Wrapped SeniorTranche USDC\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.1/src/periphery/tranche-wrapper/TrancheWrapper.sol) | \`0xbc10718571fcB3c3F67800e7C0887E450D2Ff398\` | \[↗\](https://basescan.org/address/0xbc10718571fcB3c3F67800e7C0887E450D2Ff398) | \[↗\](https://optimistic.etherscan.io/address/0xbc10718571fcB3c3F67800e7C0887E450D2Ff398) | \[↗\](https://uniscan.xyz/address/0xbc10718571fcB3c3F67800e7C0887E450D2Ff398) | | \[Wrapped SeniorTranche cbBTC\](https://github.com/arcadia-finance/lending-v2/blob/v2.0.1/src/periphery/tranche-wrapper/TrancheWrapper.sol) | \`0x7Cc8013e784418dc9771403DD057f55cEb34Ba3A\` | \[↗\](https://basescan.org/address/0x7Cc8013e784418dc9771403DD057f55cEb34Ba3A) | | | # Asset Managers Arcadia Asset Manager contract addresses across Base, Optimism, and Unichain: Compounders, Rebalancers, Yield Claimers, CoW Swapper, and Merkl Operators for Slipstream, Uniswap V3, and Uniswap V4. ## Compounders The \[Compounder\](https://docs.arcadia.finance/protocol/asset-managers/compounders) will act as an Asset Manager for Arcadia Accounts. It will allow third parties to trigger the compounding functionality for non staked Liquidity Positions in the Account. | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[CompounderSlipstreamV1\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderSlipstream.sol) | \`0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7\` | \[↗\](https://basescan.org/address/0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7) | \[↗\](https://optimistic.etherscan.io/address/0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7) | \[↗\](https://uniscan.xyz/address/0x467837f44A71e3eAB90AEcfC995c84DC6B3cfCF7) | | \[CompounderSlipstreamV2\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderSlipstream.sol) | \`0x35e59448C7145482E56212510cC689612AB4F61f\` | \[↗\](https://basescan.org/address/0x35e59448C7145482E56212510cC689612AB4F61f) | | | | \[CompounderUniswapV3\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderUniswapV3.sol) | \`0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3\` | \[↗\](https://basescan.org/address/0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3) | \[↗\](https://optimistic.etherscan.io/address/0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3) | \[↗\](https://uniscan.xyz/address/0x02e1fa043214E51eDf1F0478c6D0d3D5658a2DC3) | | \[CompounderUniswapV4\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/compounders/CompounderUniswapV4.sol) | \`0xAA95c9c402b195D8690eCaea2341a76e3266B189\` | \[↗\](https://basescan.org/address/0xAA95c9c402b195D8690eCaea2341a76e3266B189) | \[↗\](https://optimistic.etherscan.io/address/0xAA95c9c402b195D8690eCaea2341a76e3266B189) | \[↗\](https://uniscan.xyz/address/0xAA95c9c402b195D8690eCaea2341a76e3266B189) | ## Rebalancers The \[Rebalancer\](https://docs.arcadia.finance/protocol/asset-managers/rebalancers) will act as an Asset Manager for Arcadia Accounts. It will allow third parties to trigger the rebalancing functionality for Liquidity Positions in the Account. | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[RebalancerSlipstreamV1\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerSlipstream.sol) | \`0x5802454749cc0c4A6F28D5001B4cD84432e2b79F\` | \[↗\](https://basescan.org/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) | \[↗\](https://optimistic.etherscan.io/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) | \[↗\](https://uniscan.xyz/address/0x5802454749cc0c4A6F28D5001B4cD84432e2b79F) | | \[RebalancerSlipstreamV2\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerSlipstream.sol) | \`0x953Ff365d0b562ceC658dc46B394E9282338d9Ea\` | \[↗\](https://basescan.org/address/0x953Ff365d0b562ceC658dc46B394E9282338d9Ea) | | | | \[RebalancerUniswapV3\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerUniswapV3.sol) | \`0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd\` | \[↗\](https://basescan.org/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) | \[↗\](https://optimistic.etherscan.io/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) | \[↗\](https://uniscan.xyz/address/0xbA1D0c99c261F94b9C8b52465890Cca27dd993Bd) | | \[RebalancerUniswapV4\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/rebalancers/RebalancerUniswapV4.sol) | \`0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0\` | \[↗\](https://basescan.org/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) | \[↗\](https://optimistic.etherscan.io/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) | \[↗\](https://uniscan.xyz/address/0x01EDaF0067a10D18c88D2876c0A85Ee0096a5Ac0) | ## Yield Claimers The Yield Claimer will act as an Asset Manager for Arcadia Accounts. It will allow third parties to Claim yield or staking rewards from Liquidity Positions in the Account, and send it to a designated recipient. | Contract | Address | Base | Optimism | Unichain | | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[YieldClaimerSlipstreamV1\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerSlipstream.sol) | \`0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba\` | \[↗\](https://basescan.org/address/0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba) | \[↗\](https://optimistic.etherscan.io/address/0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba) | \[↗\](https://uniscan.xyz/address/0x5a8278D37b7a787574b6Aa7E18d8C02D994f18Ba) | | \[YieldClaimerSlipstreamV2\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerSlipstream.sol) | \`0xc8bF4B2c740FF665864E9494832520f18822871C\` | \[↗\](https://basescan.org/address/0xc8bF4B2c740FF665864E9494832520f18822871C) | | | | \[YieldClaimerUniswapV3\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerUniswapV3.sol) | \`0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16\` | \[↗\](https://basescan.org/address/0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16) | \[↗\](https://optimistic.etherscan.io/address/0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16) | \[↗\](https://uniscan.xyz/address/0x75Ed28EA8601Ce9F5FbcAB1c2428f04A57aFaA16) | | \[YieldClaimerUniswapV4\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cl-managers/yield-claimers/YieldClaimerUniswapV4.sol) | \`0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4\` | \[↗\](https://basescan.org/address/0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4) | \[↗\](https://optimistic.etherscan.io/address/0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4) | \[↗\](https://uniscan.xyz/address/0xD8aa21AB7f9B8601CB7d7A776D3AFA1602d5D8D4) | ## CoW Swapper The \[CoW Swapper\](https://docs.arcadia.finance/protocol/asset-managers/cow-swapper) enables trustless, MEV-protected ERC20-to-ERC20 swaps within Arcadia Accounts via CoW Protocol batch auctions. | Contract | Address | Base | Optimism | Unichain | | --------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | -------- | -------- | | \[CoW Swapper\](https://github.com/arcadia-finance/asset-managers/blob/main/src/cow-swapper/CowSwapper.sol) | \`0xc928013A219EC9F18dE7B2dee6A50Ba626811854\` | \[↗\](https://basescan.org/address/0xc928013A219EC9F18dE7B2dee6A50Ba626811854) | | | ## Merkl Operators The \[Merkl Operator\](https://docs.arcadia.finance/protocol/asset-managers/merkl-operators) automatically claim Merkl rewards and send them to a receiver, set by the Account Owner. | Contract | Address | Base | Optimism | Unichain | | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | \[Merkl Operator\](https://github.com/arcadia-finance/asset-managers/blob/main/src/merkl-operator/MerklOperatorBase.sol) | \`0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6\` | \[↗\](https://basescan.org/address/0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6) | \[↗\](https://optimistic.etherscan.io/address/0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6) | \[↗\](https://uniscan.xyz/address/0x969F0251360b9Cf11c68f6Ce9587924c1B8b42C6) | # Integrations Integration guides for building on the Arcadia Protocol: how to build Asset Managers, Liquidation bots, and custom Creditors. # Asset Managers Developer guide: how to build custom Asset Managers for Arcadia Accounts — interface requirements, permissions model, and flash action integration. ## Overview Arcadia Accounts offer users the flexibility to delegate control of their assets to third-party Asset Managers. Asset Managers are smart contracts that execute specific strategies on behalf of an account owner, such as rebalancing or compounding liquidity positions. By leveraging Asset Managers, users can optimize the performance of their accounts while maintaining control over the delegation process. ## Key Features 1. \*\*Delegation:\*\* Users can authorize an Asset Manager to perform actions on their behalf. 2. \*\*Full Access:\*\* The Asset Manager has access to all assets within the assigned Arcadia Account. 3. \*\*Flexible Strategies:\*\* Asset Managers can perform complex operations, such as rebalancing or interacting with DeFi protocols. 4. \*\*Health Check for Margin Accounts:\*\* Asset Managers must ensure that a margin account remains in a healthy state after executing actions. 5. \*\*Spot Accounts:\*\* No health check is required for operations on spot accounts. ## Workflow ### 1. Setting an Asset Manager The account owner assigns an Asset Manager to their account by calling the \`setAssetManager()\` function: \`\`\` account.setAssetManager(assetManager, true); \`\`\` \* \*\*Parameters:\*\* \* \`assetManager\`: Address of the Asset Manager contract. \* \`true\`: Enables the Asset Manager. Once set, the Asset Manager can perform actions using the \`flashAction()\` function. ### 2. Performing a Flash Action The \`flashAction()\` function enables Asset Managers to execute complex operations. It allows the chaining of multiple actions in a single transaction, with the following capabilities: \* \*\*Withdraw Assets:\*\* Transfer assets from the Arcadia Account to the \`actionTarget\`. \* \*\*Direct Transfers:\*\* Transfer assets directly from the account owner to the \`actionTarget\`. \* \*\*Execute External Logic:\*\* Interact with DeFi protocols via the \`actionTarget\` (e.g., staking, swapping, or claiming rewards). \* \*\*Deposit Back:\*\* Deposit the resultant tokens back into the Arcadia Account. At the end of the flash action, a health check ensures the margin account remains solvent (collateral value > liabilities). If the check fails, the transaction reverts. #### Flash Action Parameters \`\`\` flashAction( address actionTarget, bytes memory actionData ); \`\`\` \* \`actionTarget\`\*\*:\*\* The contract address where external logic is executed. \* \`actionData\`\*\*:\*\* Encoded data containing: \* \`withdrawData\`: Asset withdrawal details from the Arcadia Account to the actionTarget. \* \`transferFromOwnerData\`: Asset transfer details from the owner to the actionTarget. \* \`permit\`: Permit for the Permit2 transfer. \* \`signature\`: Signature for the Permit2 transfer. \* \`actionTargetData\`: The encoded calldata required to perform the series of contract calls needed to execute a specific action or operation with the assets. #### How Chaining of Calls Works The \`flashAction()\` function enables chaining by executing a series of tightly coupled operations in a single transaction. Here’s a step-by-step breakdown: 1. \*\*Decoding Input Data:\*\* The function decodes the \`actionData\` input into its respective components: \* Withdrawal details (\`withdrawData\`) \* Transfer details (\`transferFromOwnerData\`) \* Permit details for \`Permit2\` \* Action target logic (\`actionTargetData\`) 2. \*\*Asset Withdrawal:\*\* Using \`\_withdraw()\`, assets are transferred from the Arcadia Account to the \`actionTarget\` based on the \`withdrawData\`. 3. \*\*Direct Transfers:\*\* If \`transferFromOwnerData\` specifies additional assets, \`\_transferFromOwner()\` transfers them from the owner’s wallet to the \`actionTarget\`. 4. \*\*Permit-Based Transfers:\*\* If a \`signature\` and \`permit\` are provided, \`\_transferFromOwnerWithPermit()\` is called to initiate a \`Permit2\`-based asset transfer. 5. \*\*External Logic Execution:\*\* The Asset Manager calls \`executeAction()\` on the \`actionTarget\`, passing the \`actionTargetData\` to interact with external protocols (e.g., swapping tokens, staking). 6. \*\*Deposit Back to Account:\*\* After executing external logic, \`\_deposit()\` transfers the resulting assets back into the Arcadia Account. The \`\_deposit()\` function uses \`depositData\`, which is returned from the \`executeAction()\` call on the \`actionTarget\`, to determine the assets and amounts to deposit. 7. \*\*Health Check (Margin Accounts Only):\*\* The \`isAccountUnhealthy()\` function ensures the margin account remains solvent. If not, the transaction reverts. ## Interfaces for Asset Managers To interact with the \`flashAction()\` function, developers must implement the following interfaces: \`\`\` // Struct with information to pass to and from the actionTarget. struct ActionData { // Array of the contract addresses of the assets. address\[\] assets; // Array of the IDs of the assets. uint256\[\] assetIds; // Array with the amounts of the assets. uint256\[\] assetAmounts; // Array with the types of the assets. uint256\[\] assetTypes; } interface IActionBase { /\*\* \* @notice Calls an external target contract with arbitrary calldata. \* @param actionTargetData A bytes object containing the encoded input for the actionTarget. \* @return resultData An ActionData struct with the final balances of this actionTarget contract. \*/ function executeAction(bytes calldata actionTargetData) external returns (ActionData memory); } \`\`\` ### Requirements for Asset Managers An Asset Manager should implement the following steps to function correctly: 1. \*\*Call \`flashAction()\` on the Account:\*\* \* The Asset Manager must call the \`flashAction()\` function on the Arcadia Account. \* The input to \`flashAction()\` includes: \* The address of the \`actionTarget\` contract. \* Encoded \`actionData\`, which must be formatted as follows: \`\`\` ( ActionData memory withdrawData, ActionData memory transferFromOwnerData, IPermit2.PermitBatchTransferFrom memory permit, bytes memory signature, bytes memory actionTargetData ) = abi.decode(actionData, (ActionData, ActionData, IPermit2.PermitBatchTransferFrom, bytes, bytes)); \`\`\` 2. \*\*Implement \`executeAction()\` in the ActionTarget Contract:\*\* \* The \`actionTarget\` contract must include an \`executeAction()\` function that: \* Accepts \`actionTargetData\` as input. \* Executes all the required logic to perform the desired operation or strategy. \* Returns an \`ActionData\` struct that contains the addresses and amounts of assets to be deposited back into the Arcadia Account. 3. \*\*Handle the Returned Data:\*\* \* The \`ActionData\` struct returned by \`executeAction()\` is used to call \`\_deposit()\` and finalize the process by returning the assets to the Arcadia Account. # Liquidators Developer guide: how to build liquidation bots for Arcadia — monitoring unhealthy accounts, participating in Dutch auctions, and settlement. ## Overview This document serves as a guide for actors looking to build liquidation bots for Arcadia Finance. Liquidators play a crucial role in maintaining the solvency of the system by participating in auctions when an Arcadia Account falls below its required margin. Arcadia uses a three-step liquidation mechanism, ensuring fairness and efficiency in the liquidation process. ## Liquidation Process ### Step 1: Initiating Liquidation The liquidation of an Account is triggered in the \*\*Liquidator\*\* contract when an account fails to meet its margin requirement. Any user can act as an \*\*initiator\*\* and trigger liquidation. The initiator receives an \*\*initiator fee\*\* as an incentive for starting the liquidation process. Once liquidation is initiated, an \*\*auction is launched\*\*, allowing other users (liquidators) to bid on the account's assets. ### Step 2: Bidding on an Ongoing Auction Once an auction is live, liquidators can \*\*submit bids\*\* to purchase a portion of the account's assets. Arcadia supports \*\*partial liquidations\*\*, meaning that a liquidator does not have to buy all the assets at once, but can choose a portion of the assets to acquire. The auction mechanism ensures that assets are sold at fair market prices, protecting both the account owner and the liquidators. ### Step 3: Ending the Auction The auction can only be \*\*finalized\*\* once the account is restored to a \*\*healthy state\*\* (i.e., the remaining assets sufficiently cover the outstanding liabilities). A separate \*\*end-liquidation reward\*\* is distributed to the user who successfully triggers the auction's completion. This mechanism ensures that liquidators remain incentivized to follow through until the auction is resolved. ## Technical Implementation of the Liquidation Steps ### Step 1: Initiating Liquidation To start the liquidation process, a liquidation initiator should call the \[\`liquidateAccount()\`\](https://github.com/arcadia-finance/lending-v2/blob/main/src/Liquidator.sol#L256) function in \`Liquidator.sol\`. The liquidation will only be initiated if the account does not meet the margin requirements. Specifically, the \*\*liquidation value\*\* must be smaller than the \*\*used margin\*\*, where: \* \`usedMargin = openDebt + minimumMargin\_\` To get the \*\*liquidation value\*\*, you can call \`getLiquidationValue()\` on the Account. Additionally, you can easily check if an account is liquidatable by calling \`isAccountLiquidatable()\` on the Account. Additionally, to determine the \*\*initiator weight\*\* and \*\*termination weight\*\*, you can fetch the liquidation parameters from the creditor. These values are used to compute the initiator and terminator fees based on the open debt. For more details on reward calculations, refer to the \[\`\_calculateRewards()\`\](https://github.com/arcadia-finance/lending-v2/blob/main/src/LendingPool.sol#L1162) function in \`LendingPool.sol\`. ### Step 2: Bidding on an Ongoing Auction Once an auction is live, liquidators can participate by calling the \[\`bid()\`\](https://github.com/arcadia-finance/lending-v2/blob/main/src/Liquidator.sol#L375) function in \`Liquidator.sol\`. This function allows liquidators to purchase a portion of the liquidated assets at the current auction price. #### How to Place a Bid \* A liquidator calls \`bid()\` with the desired amount of assets to purchase. \* The contract calculates the \*\*current auction price\*\* based on the exponential decay model. \* If the bid is valid, the liquidator receives the purchased assets, and the bid amount is used to cover the account’s outstanding liabilities. \* The bidding continues until either the full liquidation amount is covered, the auction reaches the cutoff time, or a user manually ends the auction if the account is brought back to a healthy state. #### Key Considerations for Bidding \* \*\*Partial liquidations\*\* are supported, meaning liquidators can bid on only a portion of assets instead of the entire liquidated position. \* Once the \*\*cutoff time\*\* is reached, any remaining assets are transferred to the protocol owner for manual liquidation. ### Step 3: Ending the Auction To finalize the auction, an actor must call the \[\`endAuction()\`\](https://github.com/arcadia-finance/lending-v2/blob/main/src/Liquidator.sol#L532) function in \`Liquidator.sol\`. This function ensures that the account is returned to a \*\*healthy state\*\* before the auction is officially closed. #### Conditions for Ending the Auction \* The auction can only be ended if: \* The \*\*collateral value\*\* is greater than or equal to the \*\*used margin\*\*. \* These values can be retrieved from the account contract: \`\`\` account.getCollateralValue(); account.getUsedMargin(); \`\`\` #### Reward for Ending the Auction \* A \*\*termination reward\*\* is distributed to the actor who successfully ends the auction. \* To calculate the \*\*termination fee\*\*, refer to the same \[\`\_calculateRewards()\`\](https://github.com/arcadia-finance/lending-v2/blob/main/src/LendingPool.sol#L1162) function in \`LendingPool.sol\` as outlined in Step 1. By executing \`endAuction()\`, the liquidator ensures that the account has recovered, any unsold assets are handled properly, and the liquidation process is successfully completed. # Creditors Developer guide: how to integrate as a Creditor with Arcadia Protocol — implementing the creditor interface, setting risk parameters, and managing debt. ## Overview Arcadia enables the integration of custom creditors with its Margin Accounts system, actively encouraging teams to build new financial products and protocols on top of Arcadia Accounts. These could include perpetuals, options, lending platforms, or other innovative solutions that leverage the infrastructure provided by Arcadia. By leveraging Arcadia Margin Accounts, creditors can build their own logic tailored to their application while adhering to the interface required by Arcadia Accounts. This guide outlines the requirements and best practices for developing a creditor for Arcadia Accounts. \*Note: This guide is based on\* \[\*AccountV1.sol\*\](https://github.com/arcadia-finance/accounts-v2/blob/main/src/accounts/AccountV1.sol) \*from Arcadia Finance. While this document provides a detailed explanation of the integration process, note that other versions of Arcadia Margin Accounts may differ slightly in their implementation.\* ## Minimum logic required for a Creditor 1. \*\*Open Margin Accounts:\*\* Enable accounts to borrow funds from the creditor. 2. \*\*Close Margin Accounts:\*\* Ensure liabilities are zero before an account can close its creditor relationship. 3. \*\*Debt Tracking:\*\* Allow accounts to query their open positions with the creditor. 4. \*\*Liquidation Mechanism:\*\* Provide functionality to initiate liquidation when the margin requirement is not met. 5. \*\*Flash Action Callback:\*\* Implement callbacks for flash actions initiated by the creditor. ## Workflow ### 1. Opening a Margin Account To open a margin account, the creditor must implement the \`openMarginAccount()\` function, which will be called by an Arcadia Account when initiating a new creditor: \`\`\` function openMarginAccount(uint256 accountVersion) external returns (bool success, address numeraire, address liquidator\_, uint256 minimumMargin\_); \`\`\` \* \*\*Parameters:\*\* \* \`accountVersion\`: The version of the Arcadia Account attempting to open a margin account. \* \*\*Returns:\*\* \* \`success\`: Indicates whether the account satisfies the creditor's requirements. \* \`numeraire\`: The asset that will serve as the borrowed asset. \* \`liquidator\_\`: The address responsible for liquidating the account. \* \`minimumMargin\_\`: The minimum collateral required to open a position. \*\*Behavior:\*\* \* The creditor should validate that the provided \`accountVersion\` is supported. \* Return the required parameters for the Arcadia Account to proceed. \*\*\* ### 2. Closing a Margin Account When an account wants to close its relationship with the creditor, the \`closeMarginAccount()\` function is called: \`\`\` function closeMarginAccount(address account) external; \`\`\` \* \*\*Parameters:\*\* \* \`account\`: The address of the Arcadia Account. \*\*Behavior:\*\* \* Ensure that the liabilities (open positions) are zero before allowing the account to close. \* If the open debt is non-zero, the transaction should revert. \*\*\* ### 3. Querying Open Positions The creditor must provide a way to query the debt of an account: \`\`\` function getOpenPosition(address account) external view returns (uint256 openPosition); \`\`\` \* \*\*Parameters:\*\* \* \`account\`: The address of the Arcadia Account. \* \*\*Returns:\*\* \* \`openPosition\`: The outstanding debt of the account. \*\*Behavior:\*\* \* Return the current open position (debt) the account has with the creditor. \*\*\* ### 4. Starting Liquidation Liquidation is initiated by an initiator in the Account itself, in which the \`startLiquidation\` function in the creditor is called when the margin requirement is not met: \`\`\` function startLiquidation(address initiator, uint256 minimumMargin\_) external returns (uint256 startDebt); \`\`\` \* \*\*Parameters:\*\* \* \`initiator\`: The address initiating the liquidation. \* \`minimumMargin\_\`: The minimum margin required for the account. \* \*\*Returns:\*\* \* \`startDebt\`: The outstanding debt at the time of liquidation initiation. \*\*Behavior:\*\* \* Verify that the liquidation conditions are met. \* Begin the liquidation process and return the debt amount. \*\*\* ### 5. Flash Action Callback The creditor must implement a callback function to handle flash actions, if needed: \`\`\` function flashActionCallback(bytes calldata callbackData) external; \`\`\` \* \*\*Parameters:\*\* \* \`callbackData\`: Data containing the actions to be executed during the flash action. \*\*Behavior:\*\* \* Execute the required logic for the flash action. \* For example, a creditor could use this function to reimburse the debt of a previous creditor and take over the account’s debt. ## Interface for Creditors The following interface outlines the required functions for a creditor interacting with Arcadia Accounts: See \[ICreditor\](https://github.com/arcadia-finance/accounts-v2/blob/main/src/interfaces/ICreditor.sol). \`\`\` /\*\* \* @title Creditor implementation. \* @notice This contract contains the minimum functionality a Creditor needs to implement for Arcadia Accounts. \*/ interface ICreditor { function openMarginAccount(uint256 accountVersion) external returns (bool, address, address, uint256); function closeMarginAccount(address account) external; function getOpenPosition(address account) external view returns (uint256); function riskManager() external view returns (address riskManager); function flashActionCallback(bytes calldata callbackData) external; function startLiquidation(address initiator, uint256 minimumMargin) external returns (uint256); } \`\`\` # For AI Agents Integration guide for AI agents interacting with Arcadia Protocol: chain deployments, key contract addresses, common read operations, account queries, and programmatic docs access via llms.txt. This page provides a structured reference for AI agents, bots, and automated systems that need to interact with Arcadia Protocol programmatically. ## Chain Deployments | Chain | Chain ID | Block Explorer | | -------- | -------- | ---------------------------------------------------------- | | Base | 8453 | \[basescan.org\](https://basescan.org) | | Optimism | 10 | \[optimistic.etherscan.io\](https://optimistic.etherscan.io) | | Unichain | 130 | \[uniscan.xyz\](https://uniscan.xyz) | The core protocol contracts (Factory, Registry, Liquidator) share the same addresses across chains. ## Key Contract Addresses These are the most commonly needed addresses for programmatic interaction. For the full list, see \[Contract Addresses\](https://docs.arcadia.finance/developers/contract-addresses). | Contract | Address | Purpose | | ----------------- | -------------------------------------------- | ------------------------------------------------------- | | Factory | \`0xDa14Fdd72345c4d2511357214c5B89A919768e59\` | Creates and manages Arcadia Accounts (ERC721) | | Registry | \`0xd0690557600eb8Be8391D1d97346e2aab5300d5f\` | Asset/oracle module coordination, pricing orchestration | | Liquidator | \`0xA4B0b9fD1d91fA2De44F6ABFd59cC14bA1E1a7Af\` | Dutch auctions for unhealthy account liquidation | | LendingPool WETH | \`0x803ea69c7e87D1d6C86adeB40CB636cC0E6B98E2\` | WETH lending pool | | LendingPool USDC | \`0x3ec4a293Fb906DD2Cd440c20dECB250DeF141dF1\` | USDC lending pool | | LendingPool cbBTC | \`0xa37e9b4369dc20940009030bfbc2088f09645e3b\` | cbBTC lending pool | ## Common Tokens (Base) | Token | Address | Decimals | | ----- | -------------------------------------------- | -------- | | WETH | \`0x4200000000000000000000000000000000000006\` | 18 | | USDC | \`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\` | 6 | | cbBTC | \`0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf\` | 8 | | AERO | \`0x940181a94A35A4569E4529A3CDfB74e38FD98631\` | 18 | | AAA | \`0xaaa843fb2916c0B57454270418E121C626402AAa\` | 18 | | stAAA | \`0xDeA1531d8a1505785eb517C7A28526443df223F3\` | 18 | ## Common Read Operations ### Get total number of accounts \`\`\`solidity Factory(0xDa14...8e59).allAccountsLength() → uint256 \`\`\` ### Get account address by index \`\`\`solidity Factory(0xDa14...8e59).allAccounts(uint256 index) → address \`\`\` ### Get account owner \`\`\`solidity Factory(0xDa14...8e59).ownerOf(uint256 accountId) → address \`\`\` ### Check if an account is liquidatable \`\`\`solidity AccountV1(accountAddress).isAccountLiquidatable() → bool \`\`\` ### Get account health (liquidation value vs used margin) \`\`\`solidity AccountV1(accountAddress).getLiquidationValue() → uint256 AccountV1(accountAddress).getUsedMargin() → uint256 \`\`\` A healthy account has \`liquidationValue > usedMargin\`. ### Get account assets \`\`\`solidity AccountV1(accountAddress).generateAssetData() → (address\[\] assets, uint256\[\] assetIds, uint256\[\] assetAmounts) \`\`\` ### Get asset value in a numeraire \`\`\`solidity Registry(0xd069...d5f).getTotalValue(address numeraire, address creditor, address\[\] assets, uint256\[\] assetIds, uint256\[\] assetAmounts) → uint256 \`\`\` ## Arcadia API The Arcadia REST API provides off-chain data for accounts, pools, and asset prices. Base URL: \`https://api.arcadia.finance/v1/api\` | Endpoint | Description | | ------------------------------------------ | ------------------------- | | \`GET /pools?chain\_id=8453\` | List all lending pools | | \`GET /assets?chain\_id=8453\` | List all supported assets | | \`GET /price?chain\_id=8453&asset= \` | Get asset price | | \`GET /accounts?chain\_id=8453\` | List all accounts | No API key is required. ## Programmatic Docs Access The full documentation is available in machine-readable format: \* \*\*Structured summary\*\*: \[docs.arcadia.finance/llms.txt\](https://docs.arcadia.finance/llms.txt) \* \*\*Full content\*\*: \[docs.arcadia.finance/llms-full.txt\](https://docs.arcadia.finance/llms-full.txt) ## MCP Server The \[Arcadia MCP Server\](https://docs.arcadia.finance/developers/integrations/mcp-server) lets AI agents interact with the protocol through the Model Context Protocol. It provides tools to read account data, pool stats, and strategies, and to build unsigned transactions for deposits, borrowing, liquidity management, and more. See the \[MCP Server\](https://docs.arcadia.finance/developers/integrations/mcp-server) page for setup instructions and the full tool reference. ## Source Code | Repository | Description | | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | | \[accounts-v2\](https://github.com/arcadia-finance/accounts-v2) | Account contracts, Registry, Asset Modules, Oracle Modules | | \[lending-v2\](https://github.com/arcadia-finance/lending-v2) | Lending Pools, Tranches, Liquidator | | \[asset-managers\](https://github.com/arcadia-finance/asset-managers) | Compounders, Rebalancers, Yield Claimers, CoW Swapper, Merkl Operators | | \[mcp-server\](https://github.com/arcadia-finance/mcp-server) | MCP Server for AI agent integration | | \[whitepapers\](https://github.com/arcadia-finance/whitepapers/blob/main/main.pdf) | Protocol whitepaper | # MCP Server Use the Arcadia MCP Server to let AI agents manage liquidity positions, borrow, deposit, and interact with the Arcadia Protocol via Claude, Cursor, or any MCP-compatible client. The \[Arcadia MCP Server\](https://github.com/arcadia-finance/mcp-server) enables AI agents to interact with the Arcadia Protocol through the \[Model Context Protocol\](https://modelcontextprotocol.io/). It supports reading protocol data and building unsigned transactions for LP management, borrowing, deposits, and more. Supported networks: \*\*Base\*\* (8453) and \*\*Unichain\*\* (130). ## Setup ### Remote (recommended) No installation required. Point your MCP client to the hosted server: \`\`\` https://mcp.arcadia.finance/mcp \`\`\` \*\*Claude Code:\*\* \`\`\`bash claude mcp add arcadia-finance --transport http https://mcp.arcadia.finance/mcp \`\`\` \*\*Claude Desktop / Cursor / Windsurf:\*\* \`\`\`json { "mcpServers": { "arcadia-finance": { "url": "https://mcp.arcadia.finance/mcp" } } } \`\`\` ### Local (via npx) Running locally allows you to provide your own RPC endpoints and use the dev signing tool. \*\*Claude Code:\*\* \`\`\`bash claude mcp add arcadia-finance -- npx -y @arcadia-finance/mcp-server \`\`\` \*\*Claude Desktop / Cursor / Windsurf:\*\* \`\`\`json { "mcpServers": { "arcadia-finance": { "command": "npx", "args": \["-y", "@arcadia-finance/mcp-server"\], "env": { "RPC\_URL\_BASE": "https://base-mainnet.g.alchemy.com/v2/" } } } } \`\`\` ### Environment Variables | Variable | Required | Description | | ------------------ | -------- | ------------------------------------------------------ | | \`RPC\_URL\_BASE\` | No | Base RPC endpoint (falls back to public RPC) | | \`RPC\_URL\_UNICHAIN\` | No | Unichain RPC endpoint (falls back to public RPC) | | \`PK\` | No | Private key for the \`dev.send\` tool (development only) | ## Available Tools ### Read Tools | Tool | Description | | ------------------------------ | ----------------------------------------------------------------- | | \`read\_account\_info\` | Health factor, collateral, debt, positions, liquidation price | | \`read\_account\_history\` | Historical account value tracking | | \`read\_account\_pnl\` | Yield and P\\&L data | | \`read\_assets\` | Supported collateral with addresses, types, decimals, USD pricing | | \`read\_wallet\_balances\` | ERC20 and ETH balances for any address | | \`read\_wallet\_allowance\` | Check token approvals before deposits | | \`read\_points\` | Wallet points balance or leaderboard | | \`read\_pools\` | TVL, APY, utilization, liquidity, historical APY trends | | \`read\_strategy\_list\` | LP strategies with APY, underlying assets, pool info | | \`read\_strategy\_recommendation\` | Rebalancing suggestions for an account | | \`read\_guides\` | Documentation on automation, strategy selection, templates | ### Write Tools All write tools return unsigned transactions (\`{ to, data, value, chainId }\`). They do not sign or broadcast. | Tool | Description | | -------------------------------- | ----------------------------------------------- | | \`write\_wallet\_approve\` | Grant token spending permissions | | \`write\_account\_create\` | Deploy a new Arcadia account | | \`write\_account\_deposit\` | Deposit assets into an account | | \`write\_account\_withdraw\` | Withdraw assets from an account | | \`write\_account\_borrow\` | Borrow from a lending pool | | \`write\_account\_repay\` | Repay debt | | \`write\_account\_add\_liquidity\` | Flash-action: deposit + swap + mint LP position | | \`write\_account\_remove\_liquidity\` | Remove liquidity from a position | | \`write\_account\_close\` | Atomically burn position + swap + repay | | \`write\_account\_swap\` | Token swap within an account | | \`write\_account\_deleverage\` | Sell collateral to repay debt atomically | | \`write\_account\_stake\` | Stake LP positions for rewards | | \`write\_asset\_manager\_set\` | Enable an asset manager on an account | | \`write\_asset\_manager\_configure\` | Configure rebalancing/compounding parameters | ### Development Tools | Tool | Description | | ---------- | ---------------------------------------------------------------------------------------------------- | | \`dev.send\` | Sign and broadcast a transaction using a local private key (requires \`PK\` env var, development only) | ## Transaction Signing The MCP server returns unsigned transactions only. To execute them in production, pass the transaction object to your signing infrastructure: \* \*\*MPC wallets\*\*: Fireblocks, Dfns, Turnkey \* \*\*Smart accounts\*\*: Safe, Biconomy \* \*\*Embedded wallets\*\*: Privy, Dynamic \* \*\*Client-side\*\*: viem or ethers \`\`\`typescript const hash = await walletClient.sendTransaction(tx); \`\`\` For local development and testing, use the \`dev.send\` tool with the \`PK\` environment variable. ## Skills The MCP server repository includes \[skills\](https://github.com/arcadia-finance/mcp-server/tree/main/skills) for Claude Code that provide domain knowledge about Arcadia workflows, concentrated liquidity management, asset manager patterns, and more. Install them by symlinking into your skills directory: \`\`\`bash ln -s /path/to/mcp-server/skills/ ~/.claude/skills/ \`\`\` Once installed, Claude Code can reference these skills when helping you interact with the protocol. # Deep Dives Technical deep dives into Arcadia Protocol internals: mathematical derivations, trust models, fee structures, and implementation details for Asset Managers, pricing logic, delta neutral strategies, an In-depth technical articles covering the inner workings of the Arcadia Protocol. These complement the higher-level documentation with mathematical derivations, detailed trust model analysis, fee breakdowns, and implementation specifics. ## Asset Managers \* \[Compounders: Deep Dive\](https://docs.arcadia.finance/deep-dives/compounders) — How the immutable, stateless, permissionless Compounder works: pool balance verification, fee rebalancing math, slippage protection, and sandwich attack prevention. \* \[Rebalancers: Deep Dive\](https://docs.arcadia.finance/deep-dives/rebalancers) — How the Rebalancer automates concentrated liquidity position management: trust assumptions, the rebalance() function, Lmax calculation, swap routing, and initiator fees. \* \[CoW Swapper: Deep Dive\](https://docs.arcadia.finance/deep-dives/cow-swapper) — How the CoW Swapper enables trustless, MEV-protected ERC20-to-ERC20 swaps via CoW Protocol batch auctions, with Order Hooks for custom constraints. ## Protocol Internals \* \[Composable Pricing Logic\](https://docs.arcadia.finance/deep-dives/composable-pricing-logic) — How Arcadia values complex composed assets on-chain using recursive decomposition through the Registry and Asset Module architecture. ## Strategies \* \[Delta Neutral Strategies\](https://docs.arcadia.finance/deep-dives/delta-neutral-strategies) — The Greeks (Delta, Gamma), True Delta Neutral (leveraged stable pools), Pseudo Delta Neutral (2x leveraged volatile pools), with full Uniswap V2 mathematical derivations. ## Ecosystem \* \[Arcadia and Uniswap v4\](https://docs.arcadia.finance/deep-dives/arcadia-and-uniswap-v4) — What Uniswap v4 hooks mean for traders, LPs, and protocols, and how Arcadia serves as an intelligent Liquidity Management Layer. # Delta Neutral Strategies The Greeks (Delta, Gamma), delta/gamma neutral portfolios, True Delta Neutral (leveraged stable pools), Pseudo Delta Neutral (2x leveraged volatile pools), with full mathematical derivations of Uniswa \*Source:\* \[\*Arcadia Finance Blog\*\](https://arcadiafinance.notion.site/Delta-Neutral-strategies-1f7f4240c3264bec82608a85b58329a1) Up till now we used a strategy that is both delta neutral and gamma neutral, where we leverage stable pools, by borrowing the same asset. Since these strategies got saturated during the last weeks, yields declined and we worked on a new type of delta neutral strategy with higher returns. In this article we introduce the new strategy: \*\*The Pseudo delta neutral strategy!\*\* This strategy uses a 2x leveraged volatile pool, a big difference however is that this strategy is not Gamma neutral. Practically this means that the strategy has to be rebalanced more often, and that very big market moves still have an impact on the portfolio value. At the end of this article we will discuss in depth how both the old and new delta neutral strategy work, but first we will give a short refresher what Delta, Gamma and Delta Neutral Portfolios actually mean. ## 1. The Greeks The Greeks are variables that are used to assess risks of financial instruments/portfolios. Each greek variable expresses how the value of the financial instrument/portfolio is influenced by a small change of a certain underlying parameter. It is a measure how sensitive a portfolio is to said underlying parameter. The value of a Greek is not static but changes over time, or with big market movements. Investors aiming to keep a certain Greek value of their portfolio fixed need to periodically rebalance their portfolio. ### 1.1 Delta Delta expresses the rate of change between a financial instrument/portfolio and an underlying asset price. If a portfolio has a positive delta of +0.2 with the price of Ethereum, then when the Ethereum price increases with 1%, the value of the portfolio will increase with 0.2%. Mathematically, the Delta ($$\\Delta$$) can be expressed as the first-order partial derivative of the portfolio value ($$V$$) with respect to the price of an underlying asset ($$S$$). $$ \\Delta = \\frac{\\partial V}{\\partial S} $$ ### 1.2 Gamma Gamma expresses the rate of change between the Delta of a financial instrument/portfolio and the underlying asset price. Gamma measures how sensitive delta itself is to changes in the price of the underlying asset. It gives a measure how hard a portfolio will be influenced by big market movements, or how often a portfolio has to be rebalanced to keep its delta fixed. Mathematically, Gamma ($$\\Gamma$$) can be expressed as the first-order partial derivative of the Delta value with respect to the price of an underlying asset ($$S$$), hence it equals to the second-order partial derivative of the portfolio value. $$ \\Gamma = \\frac{\\partial \\Delta}{\\partial S} = \\frac{\\partial^2 V}{\\partial S^2} $$ ## 2. Portfolios Investors can use the Greeks to quantify or mitigate certain risks when building portfolios. Two popular strategies are delta-neutral portfolios and gamma-neutral portfolios. ### 2.1 Delta neutral portfolios With a Delta neutral portfolio, the overall delta of the portfolio is 0. This means that the total value of the portfolio does not change due to small increases/decreases in the price of an underlying asset. Important to note is that this is only valid for small changes in price. ### 2.2 Gamma neutral portfolios With Gamma neutral portfolios, typically both the delta and the gamma of the portfolio are 0. Since the gamma is 0, the delta itself is very insensitive to price movement, hence even with significant changes of the price of the underlying asset, the portfolio value remains constant. In general you can say that every Gamma neutral portfolio is also Delta neutral. But the opposite is not necessarily true, not every Delta neutral portfolio is Gamma neutral. ## 3. Arcadia's Delta-neutral Strategies ### 3.1 True Delta Neutral: Leveraged Stable pools For this strategy we use two pegged assets in an LP-pool and borrow an asset that is either equal to one of the two assets, or to a third asset that is also pegged to the two other assets. Examples are: \* cbETH - WETH pool with WETH debt \* DAI - USDC with USDC debt \* cbETH - wstETH pool with WETH debt In these strategies all assets and debt are either USDC based, or WETH based. Hence the portfolio value is completely independent from the WETH/USD price. Since the portfolio value $$V$$ is not a function of the WETH/USD price $$S$$, its partial derivatives with respect to $$S$$ are zero. $$ \\Delta = \\frac{\\partial V}{\\partial S} = 0 $$ $$ \\Gamma = \\frac{\\partial^2 V}{\\partial S^2} = 0 $$ This strategy is truly delta neutral, since the portfolio is both Delta neutral and Gamma neutral. If we plot the normalised\\\* portfolio value $$V$$ (vertical axis) in function of the normalised\\\* WETH/USD price $$s$$ (horizontal axis) we see that V is independent of $$s$$. \\\* Since we normalise the axis, 1 on the vertical axis corresponds to the initial portfolio value and 1 on the horizontal axis corresponds to the initial price. ### 3.2 Pseudo delta neutral: 2x Leveraged symmetric Volatile pools This strategy uses a symmetric volatile LP position as underlying asset, and one of the two underlying assets is borrowed. Intuitively it can be shown why this portfolio is delta neutral with an example. Lets use a WETH/USDC pool, the initial WETH/USD price equals $3000 and we borrow WETH: \* We start with 3000 USDC and borrow 1 WETH which we both deposit in a WETH/USDC pool. \* We now have $6000 worth of assets and $3000 debt \* Our portfolio value is $3000 \* Our leverage is 2x \* If the WETH/USD increases with $1, both the WETH in our LP position as our WETH debt will increase with $1 \* We now have $6001 worth of assets and $3001 debt \* Our portfolio value is still $3000 \* Our portfolio is delta neutral! Unfortunately when the underlying price changes, the LP position will no longer be perfectly symmetric (Impermanent loss!!). The bigger the underlying price changes from the initial price, the less balanced our LP position is and the less delta neutral. Our position is not gamma neutral. We can also show this graphically. The value of a generic LP position with relation to the underlying price of the assets is quite complex and non-linear (depending on the AMM bonding curve, available liquidity, liquidity ranges...). Luckily the relation for a Uniswap V2 pool ($$k = x \\cdot y$$) is still quite simple and we can plot the normalised portfolio value $$V(s)$$ with respect to the normalised underlying price $$s$$ (see for derivation in the appendix below). We see that for a "normal LP position" (without debt) both delta (first derivative V') and gamma (second derivative V'') are non-zero at the initial point (1, 1). If we now use our 2x Leveraged strategy (see for derivation in the Appendix below), we see that Delta (V') is indeed 0 at the initial price, but Gamma (V'') is non-zero. \* Portfolio is initially Delta neutral \* Portfolio is not Gamma neutral For Uniswap V3 (and other CLAMMs) the general principle holds but we have another degree of freedom, the liquidity ranges. \* We can use asymmetric positions, and for each asymmetric position there is exactly one amount of leverage such that the initial position is delta neutral. For symmetric positions delta is again 0 when we use 2x leverage. \* In general the smaller the liquidity range, the bigger the impermanent loss and hence the bigger Gamma is (which is bad for our Delta neutral strategy). ## Appendix ### 1. Derivation portfolio value Uniswap V2 A Uniswap V2 position consists of two tokens: let's call the amount of the token0 $$x$$ and the amount of token1 $$y$$. The total value of the LP-position equals (note that the amounts of x and y depend on the relative prices of both tokens): $$ v(p\\\_x, p\\\_y) = x(p\\\_x, p\\\_y) \\cdot p\\\_x + y(p\\\_x, p\\\_y) \\cdot p\\\_y $$ If we define the portfolio value in units of token0, then the previous equation becomes: $$ v(s) = x(s) + y(s) \\cdot s $$ With $$s$$ defined as the price of token1 in units of token0: $$ s := \\frac{p\\\_y}{p\\\_x} $$ And the initial value of the position is then equal to: $$ V\\\_0 = X\\\_0 + S\\\_0 \\cdot Y\\\_0 $$ For a Uniswap V2 pool in equilibrium with external markets, the value of the reserves of token0 should equal the value of reserves of token1. If this would not be true, arbitrageurs could make a profit until the pool is in equilibrium: $$ x \\cdot p\\\_x = y \\cdot p\\\_y \\implies \\frac{x}{y} = \\frac{p\\\_y}{p\\\_x} = s $$ $$ \\implies x = y \\cdot s \\text{ And } X\\\_0 = Y\\\_0 \\cdot S\\\_0 $$ So for a LP position of a pool in equilibrium, the value equals: $$ v(s) = 2 \\cdot x(s) \\text{ And } V\\\_0 = 2 \\cdot X\\\_0 $$ For Uniswap V2 pools, the relation between $$x$$ and $$y$$ is defined via the bonding curve: $$ k = x \\cdot y = X\\\_0 \\cdot Y\\\_0 $$ Which we can rewrite as: $$ x \\cdot \\frac{x}{s} = X\\\_0 \\cdot \\frac{X\\\_0}{S\\\_0} \\implies x = X\\\_0 \\sqrt{\\frac{s}{S\\\_0}} $$ Now we can finally rewrite our LP value as only a function of $$s$$: $$ v(s) = 2 \\cdot X\\\_0 \\sqrt{\\frac{s}{S\\\_0}} = V\\\_0 \\sqrt{\\frac{s}{S\\\_0}} $$ If we define the normalised portfolio value in function of the normalised underlying price s as: $$ v\\\_n := \\frac{v}{V\\\_0} \\text{ And } s\\\_n := \\frac{s}{S\\\_0} $$ Then we find our relation: $$ v\\\_n(s\\\_n) = \\sqrt{s\\\_n} $$ ### 2. Derivation portfolio value 2x Leveraged symmetric Volatile pools In this strategy we start with the full portfolio value in token0, and we borrow an equal value in token1, we again deposit the initial token0 and borrowed token1 in a Uniswap V2 pool. The total portfolio value in units of token0 is then given as: $$ v(s) = x(s) + y(s) \\cdot s - Y\\\_0 \\cdot s $$ And the initial value of the portfolio, denominated in token0, is equal to: $$ V\\\_0 = X\\\_0 + S\\\_0 \\cdot Y\\\_0 - S\\\_0 \\cdot Y\\\_0 = X\\\_0 $$ For a pool in equilibrium, the previous defined relationship still holds ($$x = y \\cdot s$$): $$ \\implies v(s) = 2 \\cdot x(s) - \\frac{X\\\_0}{S\\\_0} \\cdot s $$ And also the bonding curve for Uniswap V2 AMMs is still valid ($$x = X\\\_0 \\sqrt{\\frac{s}{S\\\_0}}$$) $$ \\implies v(s) = 2 \\cdot X\\\_0 \\sqrt{\\frac{s}{S\\\_0}} - \\frac{X\\\_0}{S\\\_0} s = 2 \\cdot V\\\_0 \\sqrt{\\frac{s}{S\\\_0}} - V\\\_0\\frac{s}{S\\\_0} $$ Which gives after normalisation: $$ v\\\_n(s\\\_n) = 2 \\sqrt{s\\\_n} - s\\\_n $$ # Compounders: Deep Dive How the Compounder Asset Manager works: immutable, stateless, permissionless fee compounding for concentrated liquidity positions. Covers pool balance verification, fee thresholds, fee rebalancing mat \*Source:\* \[\*Arcadia Finance Blog\*\](https://arcadiafinance.notion.site/Compounders-eee496c7b53c471d947bb53ae450d6e5) In this post we will outline how the compounders work and what the trust assumptions are. Compounders are a specific implementation of an Arcadia Asset Manager, hence before we dive deeper into how the compounders work, let's start with explaining what Asset Managers are and how they can be used. ## Asset Managers An Asset Manager of an Arcadia Account is a privileged role that can, as the name implies, manage the assets of an Account. Their main purpose is to enable a wide range of automation for the owner of the Arcadia Account, without the owner having to give up self-custody of their assets. Each Arcadia Account may have one or more Asset Managers, and only the owner of an Account can add or remove Asset Managers. Asset Managers can perform the following actions: \* Deposit assets. \* Withdraw assets. \* Transfer funds from the Owner. \* Execute flash actions (optimistically execute arbitrary logic with the withdrawn/transferred assets). Any Ethereum address, whether a smart contract or an externally owned account, can be set as an Asset Manager. This opens up a wide range of solutions for users with varying trust assumptions. We can roughly define three models in this context: permissionless, permissioned, and custodial. 1. \*\*Non-Custodial Permissionless\*\*: Asset Managers are immutable, trustless smart contracts that can only perform a single action and do not require any additional user input. An example of this are the Compounders that will be described in more detail in this article. 2. \*\*Non-Custodial Permissioned\*\*: Asset Managers can be smart contracts that restrict the actions they can perform to a single purpose, but do require user input. An example would be an Asset Manager to rebalance Liquidity Positions. While the contract can only change the range of a position and not, say, withdraw assets, it might require a permissioned role that only triggers a rebalance when it makes sense. 3. \*\*Custodial\*\*: Asset Managers can be EOAs that run strategies as a service for users. While there might be off-chain agreements regarding what these managers can and cannot do, these are not enforced on-chain, and the Asset Managers essentially have full power over the Account. Some examples how asset management can be automated with Arcadia Accounts and Asset Managers are: \* Compounding fees \* Rebalancing portfolios \* Managing Liquidity ranges \* Stop losses ## Compounders Uniswap V3 (and similar CLAMMs like Slipstream) do not natively compound the yield earned by liquidity providers. Automatically compounding the yield for these protocols is an effective way to boost returns, leading to an exponential rather than a linear increase in the portfolio's value. The code of the Arcadia Compounders can be found here: The compounder embodies the essence of true DeFi: \* It is \*\*immutable\*\*. \* It is \*\*100% permissionless\*\*, with the compounder having no special privileges or admin roles. Anyone can initiate a compound, as long as all the contract-defined conditions are met. \* It is \*\*stateless\*\*, the contract has no storage variables (except a reentrancy lock that is reset at the end of each transaction), but still operates for any liquidity positions in an Arcadia Account. \* The contract relies on \*\*economic incentives\*\*, with the initiator of the compound earning a small reward when compounding the fees of a position. We kept the logic for the Compounder as simple as possible, it only has a single function \`compoundFees()\`. The function only takes two variables as input, the Id of the Liquidity Position and the Arcadia Account that owns the Liquidity Position. That's it, all the logic regarding how to rebalance the fees, how to swap fees etc. is done on-chain. The asset manager will execute a number of actions and checks, we will go into detail how each of these steps is done, and why they are necessary: ### Verify that the pool is balanced Before we compound the fees, it is important to check that the liquidity pool of our position is balanced. If this was not the case, an attacker could execute something similar to a sandwich attack: \* Bring the pool out of balance (this could be done with a flash loan). \* Call our compounder, which now adds the yield in an unbalanced pool. \* Bring the pool back into balance. Since the total liquidity of the pool is bigger after the yield is added, the profit from bringing the pool in balance is bigger than the cost to bring the pool out of balance. To check if a pool is balanced, we need to compare the current price of the pool (which can be manipulated) with the expected price, based on the trusted price feeds of both underlying assets. Luckily all that pricing logic is already implemented in the Arcadia Registry! The compounder will fetch the USD-price for token0 ($$P\\\_{0 \\rightarrow usd}$$) and token1 ($$P\\\_{1 \\rightarrow usd}$$) and check that: $$ P\\\_{pool} = \\frac{P\\\_{0 \\rightarrow usd}}{P\\\_{1 \\rightarrow usd}} $$ ### Collect the fees earned by the position This step is straightforward, an amount of $$fee\\\_0$$ and $$fee\\\_1$$ is collected by the compounder. The initiator will take a share of the fees collected, as a reward for executing the transaction. For the current Compounders, the reward for the initiator is 1% of the fees collected. ### Verify that the fee value is bigger than the threshold required to trigger a compound For too small values, rounding errors might give issues and we don't want to spam the sequencer with negligible value transactions. Hence we check if the total value of the fees exceeds a certain Threshold, $$T\\\_{min}$$, ($5 for the current Compounders). This extra check is almost for free anyway, since we already have the USD-prices of the underlying assets from step 1! $$ fee\\\_0 \\cdot P\\\_{0 \\rightarrow usd} + fee\\\_1 \\cdot P\\\_{1 \\rightarrow usd} \\geq T\\\_{min} $$ ### Rebalance the fee amounts so that the maximum amount of liquidity can be added When adding liquidity to a Uniswap V3 position, token0 and token1 (the underlying tokens) have to be added in a certain ratio depending on the lower and upper tick of the liquidity position and on the current price of the pool. The amounts of $$fee\\\_0$$ and $$fee\\\_1$$, do under most circumstances not match the required ratio, directly adding the collected fees as liquidity will result in some leftover for either token0 or token1. In order to maximise the amount of liquidity that can be added, the compounder will first rebalance the fee amounts to match the ratio required by Uniswap V3. For positions out of range this is straightforward: \* If the current tick is above the upper tick, all $$fee\\\_0$$ has to be swapped to token1. \* If the current tick is below the lower tick, all $$fee\\\_1$$ has to be swapped to token0. For positions in range, we first need to calculate if we need to swap token0 to token1 or opposite, and next we need to know exactly how much to swap. To do this we first calculate the ratio of how much of the total value of a liquidity position has to be provided in token1, based on the upper tick, the lower tick and the current pool price. We call this the \*\*Target ratio\*\*, since this ratio maximises how much fees we can add as liquidity: $$ R\\\_{target} := \\frac{value\\\_1}{ value\\\_0 + value\\\_1} $$ If we price all values in token1: $$ R\\\_{target} = \\frac{amount\\\_1}{ amount\\\_0 \\cdot P\\\_{0 \\rightarrow 1} + amount\\\_1} $$ For a Uniswap V3 liquidity position, all three unknowns ($$amount\\\_0$$, $$amount\\\_1$$ and $$P\\\_{0 \\rightarrow 1}$$) can be expressed in terms of sqrtRatios of the current Pool price ($$sqrtPrice$$), the lower tick ($$sqrtPriceLower$$), and the upper tick ($$sqrtPriceUpper$$), which are all known variables on-chain. For $$P\\\_{0 \\rightarrow 1}$$: $$ P\\\_{0 \\rightarrow 1} = sqrtPrice^2 $$ For $$amount\\\_0$$: $$ amount\\\_0 = liquidity \\cdot \\frac{sqrtRatioUpper - sqrtPrice}{sqrtRatioUpper \\cdot sqrtPrice} $$ For $$amount\\\_1$$: $$ amount\\\_1 = liquidity \\cdot (sqrtPrice - sqrtRatioLower) $$ Rewriting our ratio in these terms finally gives us: $$ R\\\_{target} = \\frac{sqrtPrice - sqrtRatioLower}{2 \\cdot sqrtPrice - sqrtRatioLower - \\frac{sqrtPrice^2}{sqrtRatioUpper}} $$ Next we calculate the current ratio of the value of fee1 compared with the total value of the fees: $$ R\\\_{current} := \\frac{fee\\\_1 }{fee\\\_0 \\cdot P\\\_{0 \\rightarrow 1} + fee\\\_1} = \\frac{fee\\\_1 }{fee\\\_0 \\cdot sqrtPrice^2 + fee\\\_1} $$ If we want to compound as much fees as possible, both ratios should be equal (so that there are no leftover token0 and token1 after increasing liquidity). If $$R\\\_{target} \\neq R\\\_{fees}$$, we need to swap token0 and token1 to bring $$R\\\_{fees}$$ in balance. The amount of token1 that needs to be swapped equals: $$ \\Delta amount\\\_1 = (R\\\_{target} - R\\\_{current}) \\cdot (fee\\\_0 \\cdot sqrtPrice^2 + fee\\\_1) $$ A positive $$\\Delta amount\\\_1$$ means we have to swap token0 for token1, a negative we have to swap token1 for token0. The calculations above assume zero slippage (and fees) for the swap. In reality all swaps do have fees and slippage. To protect the owner of the Liquidity Positions we use swaps with a fixed amountOut instead of a fixed amountIn. This results in the initiator getting less rewards instead of the owner getting less liquidity. ### Verify that the slippage of the rebalance is within a defined tolerance We have seen at the end of the previous step that slippage does not result in the owner getting less liquidity, but in the initiator getting less rewards. Still there is another problem with slippage, since we swap in the pool of the Liquidity Position itself, a lot of slippage might result in the pool no longer being in balance! Therefore we limit the max slippage so that the pool is still balanced after the swap. ### Increase the liquidity of the current position With all checks passing and the fee amounts balanced, we can finally add the fees to the Liquidity position. ### Transfer a fee to the keeper that initiated the compound Lastly, the reward is transferred to the initiator (1% of collected fees minus slippage and other costs related to the swap). # Rebalancers: Deep Dive How the Rebalancer Asset Manager works: why CLPs need rebalancing, trust assumptions (permissioned but non-custodial), the rebalance() function, pool balance verification, liquidity burn, theoretical \*Source:\* \[\*Arcadia Finance Blog\*\](https://arcadiafinance.notion.site/Rebalancers-15804482afa7801a9c77ca1d2a932040) The Rebalancer serves a single purpose: to automate the rebalancing of concentrated liquidity positions (CLPs) when the relative prices of their underlying assets change. In this post we will outline what Rebalancers are, what the trust assumptions are and how the Rebalancers work. ## Why you need Rebalancers DEXs like Uniswap V3, Uniswap V4, Slipstream, use concentrated liquidity. As a Liquidity Provider you only supply liquidity between a lower and an upper price. If the price moves outside of this range, you will no longer be earning fees as LP. Hence in order to continue earning fees as Liquidity provider, these CLPs have to be managed and rebalanced so that the amount of fees earned is maximised, while costs (like swap fees, Impermanent Loss (IL) etc.) are minimised. Finding the optimal strategy that determines when to rebalance, and which new lower and upper price to use, is a complex problem to solve, and it depends on multiple factors: \* Type of liquidity pool (stable pool, correlated assets, volatile assets...) \* Market conditions (bullish, bearish, flat) \* Objectives of the position owner \* Chain conditions e.g. gas price Some simple rebalance strategies can be: \* Rebalance when out of range back to a 50/50 position \* Trailing strategies: only rebalance when out of range in one direction \* Rebalance after fixed time periods But they can (and should) be much more complex: \* Non-symmetric positions \* Use variable ranges depending on volatility \* Increase ranges to avoid IL \* Multi CLP strategies with different liquidity distributions (gaussian, triangle...) The Rebalancer is made in such a way that it works with any rebalance strategy. The main logic is strategy agnostic: it takes as input an old position, the new upper price and the new lower price. Optionally, Arcadia Account Owners can impose strategy specific restrictions (such as min/max ranges, cooldown periods etc.) via separate hooks contracts. ## Trust Assumptions The Rebalancer is of the Non-Custodial Permissioned type. It is a smart contract that can only perform a single atomic action (rebalancing CLPs), it never holds assets and can never be used to withdraw assets from an Account. But it does require input from a permissioned (whitelisted) user (further called the Initiator). The initiator has to call the Rebalancer contract and has to determine: \* When to rebalance \* The range of the new Liquidity Position A malicious initiator can still only rebalance via the Rebalancer, while it is a trusted role, they can never steal funds or Liquidity from the Account Owner. The worst a malicious/incompetent Rebalancer can do, is trigger Rebalances at bad moments and move liquidity to non-optimal ranges, resulting in value lost due to swap fees, slippage and opportunity cost. But they can never "rug" the assets of an Account. Since Initiators can be revoked/replaced at any time by the Account Owner, they are incentivised to rebalance optimally, to keep earning fees for their services. The Rebalancer is permissioned, but that does not mean it is centralised. Each Account Owner can choose if they enable the Rebalancer at all. And if they do, they can choose who they set as initiator. Different initiators can for instance run different rebalance strategies, or ask different fee amounts for their services. ## Rebalancer Implementation The code of the Arcadia Rebalancer can be found here: We kept the logic for the Rebalancer as simple as possible, it has a single function to rebalance the position: \`\`\`solidity rebalance( address account, address positionManager, uint256 oldId, int24 tickLower, int24 tickUpper, bytes calldata swapData ) \`\`\` Which accepts the following inputs (to be provided by the Initiator): \* The account for which a CLP has to be rebalanced \* Information about the old position: positionManager and oldId. The Rebalancer works for different CLAMMs such as Uniswap V3, Slipstream (both staked and unstaked) \* Information about the new position: tickLower and tickUpper \* Optionally swapData: the initiator can specify custom swap data (to limit slippage). If not provided, the Rebalancer will use the underlying Pool of the CLP to rebalance. The Rebalancer will execute a number of checks and actions: ### Verifications before the rebalance The following checks are performed before the rebalance: \* The Arcadia Account exists \* The Initiator is whitelisted by the Account Owner \* Optionally: any strategy specific constraints (such as cooldown periods, range limitations...) are checked on the Strategy Hook contract. \* Verify that the pool is balanced (see next paragraph). ### Verify that the pool is balanced Before we rebalance, it is important to check that the liquidity pool of our position is balanced. If this was not the case, a malicious Initiator could execute something similar to a sandwich attack: \* Bring the pool out of balance (this could be done with a flash loan). \* Call the Rebalancer, which now creates a new position in an unbalanced pool. \* Bring the pool back into balance. If the total active liquidity of the pool is bigger after the rebalance, the profit from bringing the pool in balance is bigger than the cost to bring the pool out of balance. Note that the Account Owner must have approved this malicious Initiator before this is possible! To check if a pool is balanced, we need to compare the current price of the pool (which can be manipulated) with the expected price, based on the trusted price feeds of both underlying assets. Luckily all that pricing logic is already implemented in the Arcadia Registry! The Rebalancer will fetch the USD-price for token0 ($$P\\\_{0 \\rightarrow usd}$$) and token1 ($$P\\\_{1 \\rightarrow usd}$$) and check that: $$ P\\\_{pool} = \\frac{P\\\_{0 \\rightarrow usd}}{P\\\_{1 \\rightarrow usd}} $$ ### Burn the old Liquidity position This step is straightforward, the liquidity position is decomposed in its underlying assets, and any pending fees (or rewards for staked positions) are claimed. After burning the old position, the Rebalancer will hold a certain $$balance\\\_0$$ and $$balance\\\_1$$ of the underlying assets. ### Calculate the theoretical Maximum of liquidity that can be added After the new position is minted, the actual minted liquidity is compared with the theoretical Maximum and should be within acceptable bounds. When adding liquidity to a Uniswap V3 position, token0 and token1 (the underlying tokens) have to be added in a certain ratio depending on the lower and upper tick of the liquidity position and on the current price of the pool. The amounts of $$balance\\\_0$$ and $$balance\\\_1$$, do under most circumstances not match the required ratio, directly adding the balances as liquidity will result in some leftover for either token0 or token1. To calculate the theoretical Maximum amount of liquidity, $$L\\\_{max}$$, we first rebalance token0 and token1 such that after minting the liquidity position there are no leftovers in either token0 or token1. In order to do this, an amount of token0 has to be swapped into token1 (or opposite). In the theoretical maximum we assume we can swap without slippage (the current price of the pool, $$P\\\_{0 \\rightarrow 1}$$, remains constant), but we take into account swapping fees. We can calculate the optimal swap amounts $$\\Delta amount\\\_{0}$$ and $$\\Delta amount\\\_{1}$$ analytically in the no slippage case. #### Derivation of optimal swap amounts In the no slippage case (constant pool price), the relation between $$amount\\\_{in}$$ and its corresponding $$amount\\\_{out}$$ is given as: $$ amount\\\_{out} = (1-fee) \\cdot amount\\\_{in} \\cdot P\\\_{in \\rightarrow out} \\quad (1) $$ For new positions that are out of range the optimal swap amounts are straightforward: \* If the current tick is above the upper tick, all $$balance\\\_0$$ has to be swapped to token1. \* If the current tick is below the lower tick, all $$balance\\\_1$$ has to be swapped to token0. For positions in range, we first calculate the Target ratio: $$ R\\\_{target} = \\frac{sqrtPrice - sqrtRatioLower}{2 \\cdot sqrtPrice - sqrtRatioLower - \\frac{sqrtPrice^2}{sqrtRatioUpper}} \\quad (2) $$ And the current ratio: $$ R\\\_{current} := \\frac{balance\\\_1 }{balance\\\_0 \\cdot sqrtPrice^2 + balance\\\_1} \\quad (3) $$ If we want to mint as much liquidity as possible, both ratios should be equal after the swap: $$ R\\\_{target} = \\frac{balance\\\_1 + \\Delta amount\\\_{1}}{(balance\\\_0+ \\Delta amount\\\_{0}) \\cdot sqrtPrice^2 + (balance\\\_1+ \\Delta amount\\\_{1})} \\quad (4) $$ Combining equations (1), (3) and (4): If $$R\\\_{target} > R\\\_{current}$$, we need to swap token0 for token1: $$ \\Delta amount\\\_{0} = -\\frac{\\Delta amount\\\_{1}} {(1-fee) \\cdot sqrtPrice^2} $$ $$ \\Delta amount\\\_1 = \\frac{(R\\\_{target} - R\\\_{current}) \\cdot (balance\\\_0 \\cdot sqrtPrice^2 + balance\\\_1)}{1 + R\\\_{target} \\frac{fee}{1-fee}} $$ If $$R\\\_{target} < R\\\_{current}$$, we swap token1 for token0: $$ \\Delta amount\\\_{0} = \\frac{(1-fee) \\cdot \\Delta amount\\\_{1}} {sqrtPrice^2} $$ $$ \\Delta amount\\\_1 = - \\frac{(R\\\_{current} - R\\\_{target}) \\cdot (balance\\\_0 \\cdot sqrtPrice^2 + balance\\\_1)}{1 - R\\\_{target} \\cdot fee} $$ Given the balances after the swap and the required upper and lower price of the range we can calculate the minted liquidity $$L\\\_{max}$$ via \`getLiquidityForAmounts()\`. This theoretical maximum will be used in a later check after the position is minted, to enforce that the amount of liquidity added is close to the theoretical maximum. It protects the Account Owner to loss of liquidity due to any of the following attack vectors: \* Excessive slippage during the swap. \* Initiator who steals funds during a custom swap. \* Minting of the new position with unbalanced underlying amounts, resulting in leftovers of either token0 or token1. ### Rebalance the underlying assets To execute the actual rebalance on-chain, there are two options: swap through the pool itself or the initiator can provide a custom router and custom swap data. The second option is mainly for big positions, or for pools with limited liquidity, where doing the rebalance through the underlying pool might result in excessive slippage (resulting in reverting rebalances, not in funds lost!). \*\*Swaps through the underlying pool:\*\* If no custom swap data is provided, the swap will be done through the underlying pool itself. For actual swaps, the no slippage hypothesis no longer holds, since the current price of the pool changes after the swap. A recursive approach is used to approximate the solution, using the analytical no-slippage solution as the initial approximation. \*\*Swaps with custom router:\*\* Initiators can provide custom swap data as input, specifying the router contract, the amountIn, and the calldata required by the router. This allows optimizing the routing and minimising swapping fees and slippage. ### Mint the new Liquidity Position The new position will be minted in the same pool (and be staked if the old position was staked). ### Verifications after the rebalance The following checks are performed after the rebalance: \* The amount of liquidity minted should be very close to the calculated $$L\\\_{max}$$. \* The pool should still be balanced after the swap. \* Optionally: any strategy specific constraints are checked on the Strategy Hook contract. ### Transfer a fee to the initiator The reward is calculated as a fixed percentage of the amountIn of the token that had to be swapped. Taking a fee as a percentage of the amount swapped is a deliberate choice. It works well for very different rebalance strategies: \* Rebalancing very often, but the amounts that need to be swapped to rebalance the position are limited each time: many small fee amounts for the initiator. \* Rebalancing as little as possible, but requiring big amounts to be swapped: limited number of big fee amounts for the initiator. > An Arcadia Account can never end up in an unhealthy position at the end of a transaction. This includes the rebalancer. Make sure your Account remains in a healthy state, otherwise it won't be rebalanced. ### Overview fees & costs involved with rebalancing \* \*\*Initiator fee\*\*: The initiator of the rebalance (who triggers it) receives a 0.05% fee on the amount swapped. \* \*\*Swap fee\*\*: The swap fee is at most the fee of the LP pool itself (e.g., a 0.01% pool means a max swap fee of 0.01%). \* \*\*Slippage & leftovers\*\*: Slippage and leftovers are capped at 99% of the optimal rebalance (i.e., assuming infinite liquidity and no slippage). Leftovers aren't an actual cost. \* \*\*Impermanent loss\*\* (IL): Rebalancing locks in any impermanent loss, making it permanent. However, IL itself isn't a direct cost. To minimize swap fees and slippage we use optimizers for routing like Odos. # Composable Pricing Logic How Arcadia values complex composed assets on-chain using recursive decomposition. The Registry coordinates pricing by breaking composed tokens into underlying assets via Asset Modules, each implement \*Source:\* \[\*Arcadia Finance Blog\*\](https://arcadiafinance.notion.site/Composable-pricing-logic-f7c35dd3308243b484d852b6aff984e3) Borrowing against Staked vAMM USDC/AERO? Possible with Arcadia Finance! But how do we value such complex and composed assets? Spoiler alert, we purposely use Reentrance! Let's dive in! With Arcadia Finance, we have built infrastructure and tooling to manage and collateralise active on-chain assets (composed tokens). In order to use these active assets as collateral, we must know their value on-chain, 24/7. Unfortunately, directly using e.g. Chainlink oracles for these assets is not feasible. There are already 684,243 Liquidity Positions for Uniswap V3 on mainnet alone, these cannot all have their own price feed. Instead, Arcadia relies on the composability of DeFi and uses a recursive process to break down each composed asset in its underlying assets. Before we go into detail how this is done, a brief 101 on what composability actually is. ## Composability ### Composed protocols Composability in DeFi refers to the ability of different financial protocols to integrate seamlessly and interact atomically with one another. Developers can create new financial products by combining existing protocols, without needing any permissions or modifications of the underlying protocols. It is for this reason that DeFi protocols are sometimes referred to as financial lego blocks. Take as example a lending protocol (e.g. Aave) and a Decentralised exchange (e.g. Uniswap). For both, a WETH - USDC market exists (to borrow one against the other, or to swap one into the other). We can combine both and create a new protocol, which is composed of both underlying protocols, where users can take leveraged positions (e.g. DeFi Saver). ### Composed assets Similarly, tokens (ERC20, ERC721, ERC4626...) can be composed of other tokens. When you deposit two ERC20 tokens in a Uniswap V2 Liquidity pool, you receive LP-tokens (ERC20) in return, representing the total share of liquidity of the pool you own. These can be further deposited in for instance staking contracts, to incentivise Liquidity Providers with additional staking rewards. The staked position is non-fungible (when you stake two equal amounts of LP tokens at different times, a different amount of staking rewards will be earned) and can be represented with an ERC721 token. The resulting staked position could in turn be used by third protocols and so forth (money legos right...). ## Arcadia's Approach: Simplifying DeFi All interactions with DeFi protocols can be simplified as the conversion of one set of tokens into another set of tokens. We can use this to abstract any DeFi protocol as a deterministic transformation: $$f()$$, that converts "Token(s) In" into "Token(s) Out". Hence for composed assets, we can use the inverse of this transformation: $$f^{-1}()$$, to calculate what the underlying "Token(s) In" are, for a given "Token Out". In Arcadia we use this process recursively to break down an asset in its underlying assets, which, in turn, can be further broken down into their underlying assets and so on. The recursion stops when the underlying asset cannot be further broken down. \*\*Example: a staked Aerodrome WETH-USDC pool:\*\* The staked position has as underlying assets the Liquidity position and the AERO rewards (a Primary Asset). The Liquidity position is further composed of both WETH and USDC (two primary assets). ## Arcadia Registry and Asset Modules The Arcadia Protocol consists of a main coordinating smart contract (The Arcadia Registry) and multiple append-only Modules. The Arcadia Registry coordinates the recursion to value assets. It knows for each asset which Asset Module to use. Each Asset Module is a separate smart contract, with the pricing logic for a specific Asset type (e.g. a Uniswap V3 Liquidity Position, A-tokens...). To value a certain amount of a composed asset, the Asset Module has to: 1. Decompose the asset in its underlying assets (the inverse transformation $$f^{-1}()$$ as previously defined). 2. Calculate the values of the corresponding underlying asset amounts. 3. Sum the values of its underlying assets. The Asset Module luckily does not have to implement the pricing logic for each Underlying Asset, it can just ask the Arcadia Registry what the values are for each of the Underlying Assets — long live Reentrance! This goes on until the underlying asset is not composed of any other assets (also referred to as Primary Assets), and we use an on-chain Oracle to determine its value. While this recursive process may look complex, only one function per Asset Module (no matter what type of asset) has to be implemented: the conversion $$f^{-1}()$$ of an amount of the composed token into the amounts of its underlying tokens. All other steps are orchestrated by the Registry, and had to be implemented just once! ### Benefits \* No need to duplicate logic (and introduce bugs) when an asset is an underlying asset for multiple composed assets. \* Multiple layers of composability add no extra work/complexity. If we can value Uniswap V3, Aave pools and USDC, we can immediately value aUSDC-USDC liquidity pools. \* Scales with assets that have a lot of valid combinations of underlying assets (e.g. per two ERC20 tokens there are 4 valid Uniswap V3 pools) since we do not have to add all individual pools. ### Downsides \* \*\*Gas usage\*\*: Asset modules have to adhere to a fixed standard, additional overhead in many cases. Only deployable on L2s (post Dencun). Sometimes the same logic/calculations are done redundantly. \* \*\*Layering risks\*\*: Every additional underlying asset increases the potential of bugs and rounding errors will multiply with every additional layer. Each Creditor can set a maximum to the number of recursive calls made. To summarise, when we want to add assets of a new protocol, we have to develop a new Asset Module. To value the assets, we just have to implement a single function: the conversion of an amount of the composed token into the amounts of its underlying tokens. In reality Asset Modules do more than pricing assets, they also do some risk management e.g. ensuring that LPs are not over-exposed to certain assets or protocols. # Arcadia and Uniswap v4 What Uniswap v4 brings (hooks, customizable pools, gas savings), impact on traders, LPs, and protocols. How Arcadia positions itself as an intelligent Liquidity Management Layer / aggregator for LPs a \*Source:\* \[\*Arcadia Finance Blog\*\](https://arcadiafinance.notion.site/Arcadia-and-Uniswap-v4-1b404482afa780a78deedc5cdde38b0c) ### What is Uniswap v4 Uniswap v4 is the next iteration of the Uniswap Protocol, the leading EVM-based Decentralized Exchange (DEX). Next to serious gas savings, the main difference compared to previous versions is that v4 is a customizable platform. When dev teams want to iterate or modify the Uniswap protocol, they no longer need to fork and modify the Uniswap code base, coming with all its security risks. Instead they can add custom logic on top of v4, or even replace certain parts of the code base. They do this through modular plugins better known as "hooks". Hooks can be built for creating pools, swapping, adding liquidity and/or removing liquidity in any combination. Some examples are: new order types for traders, dynamic fees that react on market conditions, new ways to incentivise liquidity, built-in oracles, different bonding curves, lifecycle management, built-in compliance... In short the possibilities are endless. ### V4 for Traders Focusing on the traders (swappers) first, v4 will result in overall better execution prices. Different hooks will implement different fee and liquidity dynamics, or have custom bonding curves, optimised for certain token pairs and market conditions. For each market condition and token pair, there will be a combination of optimal v4 pools to swap through. This also means there will be an explosion in the number of pools for each token pair, possibly 100+ pools for the same pair on the same chain (for comparison, in Uniswap v2 there is just a single pool per token pair, or in Uniswap v3 there are only 1 to 3 pools per pair). The beauty of the current state of DeFi is that you as a swapper shouldn't need to know which pools to choose! DEX aggregators like 1inch, Odos, Paraswap... have made it their whole business model to optimize the routing of swaps as efficiently as possible. The new v4 pools offer extra options, resulting in better prices. ### V4 for Liquidity Providers For Liquidity Providers the story is similar, v4 will result in higher yields. Certain hooks will optimize to make providing liquidity in certain market conditions for certain token pairs as capital efficient as possible. Some might give LPs extra liquidity incentives, capture and distribute some MEV etc. So again for each token pair in each market condition there will be interesting high yield opportunities for Liquidity Providers. And likewise, even for the same token pairs there will be 100+ different pools. Again the question arises, how should LPs know which pools to choose and how should they manage and move liquidity, given changing market conditions or changes in portfolio objectives? \*\*This is where Arcadia plays a crucial role. Arcadia is an intelligent Liquidity Management Layer for DEX ecosystems.\*\* Arcadia can be thought of as an aggregator across DEXs for Liquidity Providers, just like Odos is an aggregator across DEXs for traders. There are some differences (swaps are atomic, providing liquidity not etc.), but the aggregator analogy is still a good mental model. As abstraction layer above the DEXs, Arcadia helps Liquidity providers to: \* Choose between all the different options based on objective onchain data. \* Provide optimised and curated LP strategies for given token pairs and market conditions. \* Move liquidity in/out/between different v4 pools. \* Automate management of liquidity (auto-compounding, auto-rebalancing, stop-losses...). \* Depending on the underlying assets, let users borrow against liquidity positions. \* In the future: offer recommendations how to hedge given positions. With Arcadia, Liquidity Providers can enjoy the higher yields Uniswap v4 will bring, without having to worry about the additional complexities. ### V4 for Protocols and Tokens Also for protocols, Uniswap v4 will bring novel ways they can incentivise liquidity for their token, or manage protocol owned liquidity. But just like with the traders and LPs, the fact there will be dozens of pools will bring some additional challenges. What if the protocols for instance want to incentivise liquidity on Uniswap v4, without having to pick 'winners' (define per hook how much incentives they get)? With the Arcadia liquidity management layer, protocols will be able to give incentives per unit of liquidity on Uniswap v4, regardless in which hook it ends up. # CoW Swapper: Deep Dive How the CoW Swapper enables trustless, MEV-protected ERC20-to-ERC20 swaps within Arcadia Accounts via CoW Protocol batch auctions. Covers the full flow (order signing, auction, settlement via flash ac \*Source:\* \[\*Arcadia Finance Blog\*\](https://arcadiafinance.notion.site/CoW-Swapper-30d04482afa7803392e8c53d26af1cde) In this post we will outline what the CowSwapper does, what the trust assumptions are, and how it works under the hood. The CowSwapper enables trustless, MEV-protected ERC20-to-ERC20 swaps, while assets remain deployed as collateral inside an Arcadia Account. It can be used for compounding staked positions, auto-repaying debt, stop losses and much more! ## Why you need the CowSwapper Let's first quickly go over the existing Arcadia automations: the \[Compounder\](https://docs.arcadia.finance/protocol/asset-managers/compounders) and \[Rebalancer\](https://docs.arcadia.finance/protocol/asset-managers/rebalancers). Both are for managing DEX liquidity positions and the names are self-explanatory: the Compounder adds fees collected in the underlying tokens of the pool to the position, while the Rebalancer changes the range of the liquidity position. They are triggered by an external initiator, but can be trustless. The smart contracts enforce that the pool is not manipulated, that swaps are executed without extracting assets or excessive slippage, and that a minimum amount of liquidity is minted after the compound or rebalance. Both the Rebalancer and Compounder can do trustless swaps, since they rely on information from the pool itself. They are however limited to the two tokens of the DEX pool; the same mechanism cannot be generalised to swap between any two ERC20 tokens. For many use cases we need to swap to and from third tokens as well. Staking rewards are often paid in a third token (e.g. OP, ARB, AERO). Taking profit might mean swapping yield into a stablecoin. Repaying debt requires converting into the borrowed asset. For these third-token swaps we still want the same guarantees: trustless execution, minimal slippage, and protection against MEV. One approach would be to rely on price oracles to calculate minimum output amounts on-chain. But this only works for token pairs where oracles are already configured — it does not generalise to any-to-any token swaps. The solution is an integration with CoW Protocol. The initiator still triggers the swap, but the actual execution is delegated to CoW Protocol's batch auction. Solvers compete to offer the best price, and the winning solver settles the trade. This guarantees competitive rates while providing MEV protection, since CoW Protocol settles trades off-chain in batches rather than exposing them to the public mempool. Additionally, CoW Protocol allows users to execute arbitrary logic before or after the swap. This means that swaps can happen within Arcadia Flash Actions: assets can be swapped while they continue to serve as collateral. Nothing needs to be withdrawn by the Account Owner first, no debt needs to be repaid first. One token leaves and the second token enters in a single transaction, and the Account's health is never at risk. ## Use Cases Combining CoW Protocol swaps with Arcadia Flash Actions unlocks a number of features: \* \*\*Compounding staked positions\*\*: Staking rewards (paid in a third token like OP, ARB, or AERO) are automatically swapped back into the pool's underlying tokens and compounded into the liquidity position. The CowSwapper handles the third-token swap, the existing Compounder handles the rest. \* \*\*Take profit in any token of choice\*\*: Account Owners can automatically take a portion of their earned yield and swap it into any token they prefer (e.g. USDC) rather than compounding everything back into the pool. \* \*\*General ERC20-to-ERC20 swaps\*\*: Any ERC20 token held in an Arcadia Account can be swapped to any other ERC20 token via CoW Protocol, enabling flexible portfolio management without ever leaving the Account. \* \*\*Repay debt with yield\*\*: For leveraged positions, earned yield can be automatically swapped into the debt token and used to repay the loan, gradually deleveraging the position over time. \* \*\*Stop losses\*\*: Automatically swap a position's assets when certain price conditions are met, protecting against downside risk. ## How it works ### 0. Setup Only the Account Owner can configure the CoW Swapper. They have to set which address to whitelist as Initiator, a \`maxSwapFee\` cap on what the Initiator can charge (can be 0), and which OrderHook contract to use for additional per-account restrictions. ### 1. Signing the order When the Initiator (or the Account Owner themselves) decides a swap should be done (e.g. to compound claimed staking rewards), they start by constructing and signing a valid CoW swap order. This order is then submitted to CoW's order book. ### 2. CoW Auction The CoW Protocol runs a \['Fair Combinatorial Auction'\](https://arxiv.org/abs/2408.12225), where solvers compete to fill the order within a set amount of time. The solver that can quote the best price wins the auction and can fill the order. ### 3. Settlement The winning solver executes the order on-chain. The solver triggers the transaction via CoW's Flash Loan Router, which initiates a flash action on the Arcadia Account, pulling tokenIn out to the CowSwapper. First, the CowSwapper logic is triggered. The CowSwapper reconstructs the order based on the input data, computes its hash, and stores the hash in transient storage. Next, a user-defined OrderHook is called. Via this hook the user can enforce additional, highly customisable constraints (more on this in the next section). Lastly, the actual swap is settled via CoW's Settlement contract. The settlement contract executes the swap and does a number of checks: \* Check that the order has not expired \* Check that the order has not been previously filled \* Check that the actual execution price was equal to or better than what was specified in the order \* Check the order's signature: for the CowSwapper we use \[EIP-1271\](https://eips.ethereum.org/EIPS/eip-1271#specification) signatures. The contract checks two things: the hash matches what was just reconstructed from the order parameters, and the signature over that hash came from the Initiator or Account Owner. The hash construction is the core of the trust model. Every field in the order — tokenOut, amountOut, deadline, fee — feeds into the hash that gets verified on-chain. If a solver modified any parameter between the Initiator's submission and settlement, the on-chain reconstruction produces a different hash, the signature check fails, and the transaction reverts. The Initiator commits to specific terms upfront. Those exact terms are what gets executed. ## Order Hooks Account Owners who want more control can use custom Order Hooks. Some examples of what a custom hook can do: \*\*Oracle check.\*\* Verify the solver's output is within acceptable range of an on-chain price, as a second layer of protection on top of solver competition. \*\*Token filters.\*\* Whitelist or blacklist specific assets. Stops the Initiator from swapping into tokens the owner hasn't approved. \*\*Rate limits.\*\* Cap swap frequency or maximum size per time window, useful for strategies that should execute gradually rather than all at once. ## Trust Assumptions ### Initiators Initiators can decide when to swap tokens, the tokenIn and tokenOut, the amountIn and the minimum amountOut. The Account Owner can easily restrict the tokenIn and tokenOut via the Order Hook: \* Whitelist/blacklist, or fix tokenIn and/or tokenOut \* Set minimum cooldown periods For the minimum amountOut, the decentralised batch auction provides a safety net. Even with a very low minimum amountOut, the batch auction should guarantee a competitive actual price. Account Owners can additionally use third-party oracles to set a minimum value via a custom Order Hook. ### Solvers Solvers cannot modify anything in the order. If they change any field of the order, or skip certain steps such as the flash loan or hook calls, the on-chain calculated hash will not match the signature. If the auction mechanism fails or solvers collude, the worst case is that the minimum amountOut specified by the Initiator is what gets quoted. ## Overview fees & costs The Initiator can charge a fee: a percentage of the tokenOut received, where the percentage is set per order but always capped by the \`maxSwapFee\` configured by the Account Owner. CoW Protocol charges the user gas costs indirectly by factoring them into the price quoted for the swap. # Resources Arcadia Finance resources: brand assets, contact information, and community links. # Brand Assets Arcadia Finance brand assets: logos, colors, and guidelines for using Arcadia branding. ## Guidelines {% embed url="" %} ## Assets !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-4ad3cc98d804626a3f151e91bdc08b9c070edd70%2FIcon%20Circle-Dark%20Green.png?alt=media) !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-12a9c3182e9538bacfdb9f430f0fa09f5f87e352%2FIcon%20Square-Dark%20Green.png?alt=media) !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-dec9f4010f3c5a8f9a4da86ece827c857f09ec1c%2FLogo-Dark%20Green.png?alt=media) !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-1c53699b2a6367fb8a4b81622ab8b07b3a07a03c%2FLogo-White.png?alt=media) !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-fe5b43d8b4e10a5bc565f5769ba53367d1c30d40%2FWordmark-Dark%20Green.png?alt=media) !\[\](https://1842996165-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCZEtaA6yEHQp1bLQVU4p%2Fuploads%2Fgit-blob-4180567c3b9439a490cc01984ba3630f6aaf4c4f%2FWordmark-White.png?alt=media) \[Download Logo Pack\](https://github.com/arcadia-finance/docs/blob/main/resources/assets/Arcadia%20Logo%20Pack.zip) \[Download Creative Assets\](https://github.com/arcadia-finance/docs/blob/main/resources/assets/Arcadia%20Creative%20Assets.zip) # Contact and Support Contact Arcadia Finance: Discord, Twitter/X, and support channels for questions and strategy discussions. ## Community \[Discord\](https://discord.gg/PXcr8SEeTH) \[Twitter / X\](https://twitter.com/ArcadiaFi) \[Blog\](https://arcadiafinance.medium.com/) ## Ecosystem \[Website and App\](https://arcadia.finance/) ## Developers \[Github\](https://github.com/arcadia-finance) ---