Transparent Automated Liquidity Omnichain Strategies (TALOS) is a peer-to-peer system that was built to reduce the current huge barrier of entry for adoption of concentrated liquidity and elevate the current user experience, specifically for Uniswap V3.
If you’re interested in contributing please see our contribution guidelines! This includes instructions on how to compile and run tests locally.
A more detailed description of the project can be found in the documentation.
Talos positions are split into two main Types:
- Vanilla: Represent a share of one or more UNI V3 NFT positions.
- Staked: Represent a share of one or more UNI V3 NFT positions that are all staked in our Uniswap V3 Staker.
Strategy Templates encompass rebalancing and reranging strategies that work with both Types of positions without requiring any modifications.
New Strategy Templates can easily be created by solidity developers. There are multiple audited examples with guides of some possible operations.
The first Strategy Template holds a single UNI V3 NFT that anyone can create for any pool. When the price deviates a predefined number of ticks from the center of the position, anyone can call rebalance for the pool to set it at 50/50 again. There is an associated fee to these tasks – if the cost of constantly balancing the position is too large, it either won't happen or the pool or gas depositors may incur losses.
All contracts are held within the ./src
folder.
Note that helper contracts used by tests are held in the ./test/utils
subfolder within the contracts folder. Any new test helper contracts should be added there and all foundry tests are in the ./test
folder.
src
├── base
│ └── TalosBaseStrategy.sol
├── boost-aggregator
│ └── BoostAggregator.sol
├── factories
│ ├── BoostAggregatorFactory.sol
│ ├── OptimizerFactory.sol
│ ├── TalosBaseStrategyFactory.sol
│ ├── TalosManagerFactory.sol
│ ├── TalosStrategyStakedFactory.sol
│ └── TalosStrategyVanillaFactory.sol
├── interfaces
│ ├── AutomationCompatibleInterface.sol
│ ├── IBoostAggregatorFactory.sol
│ ├── IBoostAggregator.sol
│ ├── IOptimizerFactory.sol
│ ├── ITalosBaseStrategyFactory.sol
│ ├── ITalosBaseStrategy.sol
│ ├── ITalosManagerFactory.sol
│ ├── ITalosManager.sol
│ ├── ITalosOptimizer.sol
│ ├── ITalosStrategyStakedFactory.sol
│ ├── ITalosStrategyStaked.sol
│ └── ITalosStrategyVanillaFactory.sol
├── libraries
│ ├── PoolActions.sol
│ └── PoolVariables.sol
├── strategies
│ └── TalosStrategySimple.sol
├── TalosManager.sol
├── TalosOptimizer.sol
├── TalosStrategyStaked.sol
└── TalosStrategyVanilla.sol
test
├── BoostAggregatorTest.t.sol
├── factories
│ ├── BoostAggregatorFactoryTest.t.sol
│ ├── ComputeBoostAggregator.t.sol
│ └── OptimizerFactoryTest.t.sol
├── mocks
│ ├── MockBoostAggregatorFactory.sol
│ └── MockOptimizerFactory.sol
├── TalosOptimizerTest.t.sol
├── TalosStrategyStakedTest.t.sol
├── TalosStrategyVanillaTest.t.sol
├── TalosTestor.t.sol
└── utils
├── libraries
│ ├── PoolActions.sol
│ └── PoolVariables.sol
└── UniswapV3Assistant.t.sol
To utilize the contracts in you can install the code in your repo with forge:
forge install https://github.com/Maia-DAO/talos
To run tests, first clone the repository, then setup .env following the .env.example file. After that, run the following command to install dependencies, compile and run tests:
forge test
MIT Copyright