← Protocols
Beefy
01Description

Multi-chain yield optimizer running auto-compounding vaults across 20+ EVM chains. Wraps LP tokens, single-asset deposits, and CLM (concentrated liquidity manager) positions into auto-harvesting `mooTokens`.

02Best for
  • 01auto-compounded LP yield
  • 02multi-chain vault aggregation
  • 03single-tx zap into farms
  • 04concentrated-liquidity rebalancing (CLM)
03Install
  • pnpm add viem
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_BEEFY_APIClientBeefy public API base URL: https://api.beefy.finance. Use /vaults, /apy, /tvl endpoints (no key needed).
05Prompt snippet
Integrate Beefy auto-compounding vaults. Discover vaults via `GET https://api.beefy.finance/vaults` (returns `id`, `earnContractAddress`, `tokenAddress`, `chain`, `status`). To deposit: approve `tokenAddress` to the vault, then call `IBeefyVault(earnContractAddress).deposit(uint256 amount)` or `depositAll()` — you receive `mooTokens` (non-rebasing, share price rises). To exit: `withdraw(uint256 shares)` or `withdrawAll()`. For one-click entry from any token, use the `BeefyZapRouter` (per-chain address) which swaps and deposits atomically. Read live APY from `GET https://api.beefy.finance/apy/breakdown` (separates vault APR, trading fee APR, and compounding boost). For CLM (Cowcentrated Liquidity Manager) vaults, the underlying is a managed Uni v3 / Aerodrome / PancakeSwap v3 position, not an LP token — withdrawals return both pool tokens.
06Gotchas
  • Vaults are PER-CHAIN: the same vault `id` does not exist on every chain; always join `id` with `chain` when persisting to your DB.
  • `mooToken` price-per-share (`balance() / totalSupply()`) only grows on `harvest()` calls — if the harvester pauses, displayed APY decays. Check `lastHarvest` timestamp in the API.
  • CLM vaults rebalance positions and can realize impermanent loss on rebalances; APY shown is net of historical IL but not future IL.
  • LP-token vaults expose users to the underlying AMM pair's IL — wrapping in Beefy does not eliminate IL, only auto-compounds the trading fees and reward emissions.
  • Vault `status` can be `active`, `paused`, or `eol` (end-of-life). Filter your UI to `active` and warn users on `eol` vaults that auto-harvest has stopped.
  • Withdrawal can incur a small (typically 0.0%–0.1%) withdrawal fee that goes to the strategy treasury — surface this in your UI before users sign.
  • Beefy charges a performance fee on harvested rewards (typically 9.5%) deducted before compounding — APY shown is post-fee.
07Alternatives