Documentation for Arrakis V2 Core Smart Contracts
The core contracts allow anyone to:
  • create an ArrakisV2 vault instance that manages holdings of a given token pair and issues ERC20 shares to depositor(s) of the token pair
  • dispatch and collect vault's token pair holdings to/from Uniswap V3 Liquidity Positions via a settable manager account (or smart contract)
  • configure and control important vault setup parameters (manager, restrictedMint, pools, swap routers) via the vault owner role
The Arrakis V2 Core contracts are thus neutral concentrated liquidity management infrastructure which anyone can deploy, configure and use freely- no added fees or haircut. While vaults don't have any hardcoded protocol fees, the manager role may still optionally set a fee parameter to take some proportion (or all) of the fees earned by the vault's Uniswap LP positions. Anyone can build "Active Liquidity Management" products on Arrakis V2 infrastructure and implement their own custom fee models.


The ERC20 vault smart contract at the heart of this LP management system. A vault collects assets in a given token pair and delegates a manager smart contract to deploy vault capital in and out of an arbitrary collection of Uniswap V3 LP Positions for that token pair. Utilize the ERC20 tokenization of the position to aggregate liquidity from multiple shareholders, or create a "private" vault exclusively for a single depositor (see restrictedMint property).


Factory contract for deploying ArrakisV2 vault instances. Deploy vaults for any token pair and configure the owner, manager, and other initial parameters when calling deployVault.


Helper contract that resolves payloads for ArrakisV2 vault functions.


Helper contract for querying common information about ArrakisV2 vaults.