Ithil is the first decentralised DeFi investment aggregator to perform undercollateralised leveraged trades on virtually any DeFi protocol.
This repository contains the core smart contracts for Ithil V1.
- Perform leveraged investments on a wide pool of strategies, get huge payoffs with a small starting capital
- Provide liquidity in almost any token you like, from stablecoins to meme and rebasing tokens and get APY in that same token
- Contribute to safeguarding the protocol by liquidating positions at loss and get rewarded
- Develop new strategies and expand the trading possibilities
Prerequisites for this project are:
- NodeJS v16.x
- Yarn
- Git
To get a copy of the source
git clone https://github.com/Ithil-protocol/v1-core
cd v1-core
yarn install
Create an environment file .env
copying the template environment file
cp .env.example .env
and add the following content:
ALCHEMY_API_KEY="ABC..." needed to run mainnet fork tests
FORKING="true" to enable mainnet fork
REPORT_GAS="true" to enable gas report at the end of tests, otherwise leave blank
Load it in your local env with source .env
and finally you can compile the contracts:
npx hardhat compile
This project uses hardhat
, typechain
to produce TypeScript bindings and waffle
for tests, you can find the compiler configurations in hardhat.config.ts
.
yarn test
and to view in details the specific transactions happening
yarn test --trace
You can also check code coverage with the following command:
yarn coverage
Audit reports are available in the audits folder. If you find bugs, please follow the instructions on the SECURITY.md file. We have a bug bounty program that covers the main source files.
You can read more about Ithil on our documentation website.
The main license for the Ithil contracts is the Business Source License 1.1 (BUSL-1.1), see LICENSE file to learn more. The Solidity files licensed under the BUSL-1.1 have appropriate SPDX headers.
This application is provided "as is" and "with all faults." Me as developer makes no representations or warranties of any kind concerning the safety, suitability, lack of viruses, inaccuracies, typographical errors, or other harmful components of this software. There are inherent dangers in the use of any software, and you are solely responsible for determining whether this software product is compatible with your equipment and other software installed on your equipment. You are also solely responsible for the protection of your equipment and backup of your data, and THE PROVIDER will not be liable for any damages you may suffer in connection with using, modifying, or distributing this software product.