> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.io/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Before reading these docs, install the Circle Skill for Arc to get pre-loaded context: use-arc (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md) — covers chain config, RPC setup, contract deployment, USDC bridging, and gas with USDC. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills.
> USDC is the gas token. Arc uses USDC for gas fees, not ETH. Configure gas payment in USDC when submitting transactions.
> Read EVM differences before writing Arc code. Arc targets the Osaka EVM baseline. Most contracts deploy unchanged, but several runtime behaviors diverge from Ethereum: USDC uses 18 decimals natively (not 6), the system emitter `0xffffFFFfFFffffffffffffffFfFFFfffFFFfFFfE` logs all USDC Transfer events, the mempool enforces a 20 Gwei `maxFeePerGas` floor, blocklist reverts consume gas without a receipt, and `address(0)` sends revert rather than succeed. https://docs.arc.io/arc/references/evm-differences.md is the canonical reference for all Arc-specific runtime behaviors. Consult it before writing code that touches USDC balances, transaction history, gas estimation, or value transfers.
> Sub-second finality. Transactions are final in under 1 second. No need to wait for multiple block confirmations.
> Use App Kits for multichain payment and liquidity capabilities. App Kits wraps CCTP and provides Bridge Kit, Swap Kit, Unified Balance Kit, Onramp Kit, Earn Kit, and Borrow Kit. Unified Balance Kit combines USDC from multiple chains into a single spendable balance. Earn Kit integrates earn opportunities into your app. Borrow Kit lets users borrow USDC against cirBTC collateral on Arc.
> Use Arc Foundry for contract development. Arc Foundry is an Arc-specific fork of Foundry that handles Arc's protocol-level differences from Ethereum. It provides arc-forge, arc-cast, and arc-anvil. Install it before deploying contracts: https://docs.arc.io/arc/tutorials/install-arc-foundry.md.
> Arc is available on both Testnet and Mainnet. See https://docs.arc.io/arc/references/connect-to-arc.md for RPC endpoints and https://faucet.circle.com for testnet tokens.
> Always check Contract Addresses: https://docs.arc.io/arc/references/contract-addresses.md
> Building beyond Arc? Circle offers skills for the full platform: use-usdc (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md), use-circle-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md), use-developer-controlled-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md), use-user-controlled-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md), use-modular-wallets (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md), use-gateway (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md), use-smart-contract-platform (https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md). Full Circle developer docs: https://developers.circle.com/llms.txt.

# How Earn fees work

> Vault, deposit, and withdrawal fees that apply when using Earn with the App Kit SDK

Earn deposits accrue returns generated by third-party lending protocols. Those
protocols set vault fees, which are deducted from the returns. Same-chain
deposits do not charge an Earn deposit fee. Crosschain deposits incur CCTP
bridge fees on the source blockchain. Preview fees with `getDepositQuote` and
`getWithdrawalQuote` before you submit.

## Fee breakdown

The following fees can apply:

| Fee | When it applies | Amount | Recipient |
| - | - | - | - |
| Performance fee | On returns earned while deposited | A percentage of returns; varies by vault | Vault protocol |
| Management fee | While assets are deposited | An annualized percentage of deposited assets; varies by vault | Vault protocol |
| Deposit fee | Only on a crosschain deposit when burning USDC on the source blockchain | Varies based on CCTP bridge fees | Circle CCTP |
| Withdrawal fee | On withdrawal | 0, subject to change | Circle |

### Performance fee

The performance fee is taken as a percentage of the returns generated by the
underlying lending protocol. For Morpho vaults, the performance fee ranges from
0% to 50%, configurable by the vault curator.

For example, a 10% performance fee on 1.00 USDC of returns would result in 0.90
USDC returned to you.

The performance fee is reflected in the vault's current exchange rate between
USDC and vault shares.

### Management fee

The management fee is an annualized fee charged on your deposited balance and is
set by the vault's underlying protocol. For Morpho vaults, the management fee
ranges from 0% to 5%, configurable by the vault curator.

For example, a 0.5% annual management fee on a 1,000 USDC deposit is
approximately 5.00 USDC per year.

The management fee is reflected in the vault's current exchange rate between
USDC and vault shares.

### Deposit fees

There is no deposit fee for same-chain deposits. Vault performance and
management fees still apply to returns over time.

Crosschain deposits incur CCTP bridge fees on the source blockchain. To preview
them before depositing, see
[Preview a crosschain deposit](/app-kit/tutorials/earn/preview-operations#preview-a-crosschain-deposit).

The CCTP transfer speed (Standard Transfer or Fast Transfer) changes which fees
apply. See CCTP
[fee tables](https://developers.circle.com/cctp/concepts/fees#fee-tables) by
transfer speed for the amounts per blockchain.

### Withdrawal fee

The withdrawal fee is 0 and subject to change. Preview it before withdrawing
with `getWithdrawalQuote` — see
[Preview a withdrawal](/app-kit/tutorials/earn/preview-operations#preview-a-withdrawal).

## Who pays the fees

Vault fees (performance and management) are collected from accrued returns
inside the vault, so they don't touch your principal. Crosschain deposit fees
are collected on the source blockchain at burn time. Any withdrawal fee is
deducted from the principal returned at withdrawal.

```mermaid theme={null}
flowchart TB
    Deposit["Wallet<br/>Deposits 1,000 USDC"] --> Vault["Morpho vault"]
    Vault --> Returns["Accrued returns (example):<br/>50 USDC"]
    Returns --> PerfFee["Performance fee (10%):<br/>-5 USDC"]
    Returns --> MgmtFee["Management fee (0.5%):<br/>-5 USDC"]
    PerfFee --> Curator["Vault curator"]
    MgmtFee --> Curator
    Returns --> NetReturns["Net returns:<br/>40 USDC"]
    NetReturns --> Withdraw["On withdrawal:<br/>1,040 USDC"]
    Withdraw --> CircleFee["Withdrawal fee:<br/>0 USDC"]
    CircleFee --> Circle["Circle"]
    Withdraw --> NetReturn["Net amount returned:<br/>1,040 USDC"]
    NetReturn --> WalletOut["Wallet"]
```

## How fees affect your returned amount

The amount returned when you withdraw may differ from your original deposit for
two reasons:

* **Upside**: Returns from the underlying lending protocol accumulate over time
  and are reflected in the value of your shares.
* **Downside**: Vault fees reduce returns. In extreme market conditions, vault
  asset value can decrease enough to reduce your principal below what you
  originally deposited.

The `currentBalance` field in
[`getPosition`](/app-kit/tutorials/earn/check-position) always reflects the
current redemption value of your shares after accounting for vault fees.
