The Liquid protocol is an open protocol for democratizing access to DeFi
Liquid Protocol
Liquid Curator is a permissionless strategy curation protocol. It introduces a new primitive for creating, managing, and executing complex DeFi strategies across multiple protocols. The protocol enables trustless strategy curation with atomic execution. It provides a framework for strategy composers to create and monetize their expertise while allowing users and AI Agents to discover, evaluate, and participate in these strategies with minimal friction.
Architecture
The protocol consists of several key components:
1. Strategy Module
- Strategy Contract: Core contract that manages strategy creation and tracking
2. Execution Engine
- Engine Contract: Handles atomic execution of strategy steps
3. Protocol Connectors
- Connector Contracts: Protocol-specific adapters that:
Component Diagram
Sequence Diagram / Execution Flow
⚠️ Warning: This version of Liquid protocol hasn't been audited, so use it with caution for test purposes only.
Roadmap (not in order):
- [x] Single step strategies - [x] Multi-step strategy curation - [ ] Yield and rewards calculation - [ ] Onchain risk analysis - [ ] Simulating strategy before creation - [ ] Making some of the contracts upgradeable
Get started
- Clone the repository
gh repo clone metastable-labs/liquid-protocol ~/metastable-labs/liquid-protocol
cd ~/metastable-labs/liquid-protocol
- Install Foundry
- Install dependencies
forge update && forge install
Deployments
If you encounter this error:
Error: "./shell/deploy.base.sh: Permission denied"
Run this command:
chmod +x shell/deploy.*.sh
Deploy
sh shell/deploy.sh --network=<NETWORK>
where
Help in deployment
sh shell/deploy.sh ---help
Adding new network
- Duplicate any deploy.NETWORK.sh file and name it deploy.DESIRED_NETWORK.sh
- Add two enviornment variables to .env and .env.example file
DESIREDNETWORKSCANAPI_KEY=
DESIREDNETWORKRPC_URL=
- In the file
deploy.DESIRED_NETWORK.shfile update the following variables
export ETHERSCANAPIKEY=$DESIREDNETWORKSCANAPI_KEY
export RPCURL=$DESIREDNETWORKRPCURL
- Add the network to array of
allowed_networksin filedeploy.sh. - Run the command
sh shell/deploy.sh --network=DESIRED_NETWORK
`