- Introduction
- Local Development
- Smart Contracts Documentation
- Scripts
- Security
- Known limitations
- License
Euler Earn is an open source protocol for permissionless risk curation on top of ERC4626 vaults(strategies). Although it is initially designed to be integrated with Euler V2 vaults, technically it supports any other vault as long as it is ERC4626 compliant.
The Euler Earn in itself is an ERC4626 vault, and any risk curator can deploy one through the factory. Each vault has one loan asset and can allocate deposits to multiple strategies. Euler Earn vaults are noncustodial and immutable instances, and offer users an easy way to provide liquidity and passively earn yield.
For more details, please refer to the whitepaper and the low-level spec.
Euler Earn comes with a comprehensive set of tests written in Solidity, which can be executed using Foundry.
To install Foundry:
curl -L https://foundry.paradigm.xyz | bashThis will download foundryup. To start Foundry, run:
foundryupTo clone the repo:
git clone https://github.com/euler-xyz/euler-earnforge buildTo run the unit-tests and the e2e test:
FOUNDRY_PROFILE=test forge testTo run the fuzz tests:
FOUNDRY_PROFILE=fuzz forge testTo run the invariants tests:
FOUNDRY_PROFILE=invariant forge testTo run foundry coverage:
FOUNDRY_PROFILE=coverage forge coverage --report summaryTo run echidna based fuzzing:
echidna test/echidna/CryticERC4626TestsHarness.t.sol --contract CryticERC4626TestsHarness --config test/echidna/config/echidna.config.yamlTo run symbolic tests using Halmos:
halmos --match-contract EulerEarnSymbolicTest --storage-layout=generic --test-parallel --solver-parallel --solver-timeout-assertion 0To know more about the invariants suite overview and architecture, please read the Enigma overview and internal docs.
To run echidna property mode:
make echidnaTo run echidna assertion mode:
make echidna-assertTo run medusa:
make medusaforge fmtforge doc --serve --port 4000You can find foundry scripts inside the /script dir to interact with Euler Earn protocol. For more details, please check the scripts usage document.
This software is experimental and is provided "as is" and "as available".
No warranties are provided and no liability will be accepted for any loss incurred through the use of this codebase.
Always include thorough tests when using Euler Earn protocol to ensure it interacts correctly with your code.
All audits are stored in the audits' directory.
Refer to this doc for a list of known limitations and security considerations.
Licensed under the GNU General Public License v2.0.

