/v2-core

Primary LanguageTypeScriptOtherNOASSERTION

V2 Core

Arrakis Vaults Version 2, Core Smart Contracts.

Read the full developer documentation

About

Arrakis V2 Core enables 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, pools, swap routers, mint restrictions) via the vault owner account (or smart contract)

ArrakisV2.sol

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).

ArrakisV2Factory.sol

The entry-point for deploying ArrakisV2 vault instances. Deploy vaults for any token pair and configure the owner, manager, and other initial parameters when calling deployVault

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. Anyone can build "Active Liquidity Management" products on Arrakis V2 infrastructure for both private and public use-cases, and implement their own custom fee fee models and manager systems. 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.

Setup

Create .env file and add ALCHEMY_ID (for all relevant environment variables, see .env.example)

Repo uses yarn for package management. Don't have yarn? see here

Test

install dependencies:

yarn

compile contracts:

yarn compile

run tests:

yarn test

Audits

Two security audits were performed on the smart contracts in this repository. The auditors were WatchPug and Statemind and the comprehensive audit reports can be found in the audit/ directory.

Licensing

The primary license for Arrakis V2 Core is the Business Source License 1.1 (BUSL-1.1), see LICENSE. However, some files are dual licensed under MIT or GPL-2.0-or-later. The respective license of each smart contract is defined by its SPDX header.