Use Lulo
The Use Lulo tool, part of AgentiPy, allows users to interact with the Lulo Finance lending and borrowing protocol on Solana. It provides methods to lend assets (specifically USDC in one method, and any SPL token in another) to earn yield, and to withdraw previously lent assets. This tool interacts directly with the Lulo API (which seems to be also referred to as Flexlend).
Functionality
This tool is implemented in the LuloManager class.
Key Methods:
lend_asset(agent: SolanaAgentKit, amount: float) -> str:Lends a specified
amountof USDC to Lulo. This method seems to use a Lulo Blink (Solana Action) URL:https://blink.lulo.fi/actions.It constructs a payload with the agent's wallet address and makes a POST request.
The response contains a serialized transaction which is then signed by the agent's wallet and sent to the Solana network.
Returns the transaction signature.
lulo_lend(agent: SolanaAgentKit, mint_address: Pubkey, amount: float) -> str:Lends a specified
amountof an SPL token (identified bymint_address) to Lulo.This method uses the Flexlend API endpoint (
https://api.flexlend.fi/api/v1/deposit) and requires a Flexlend API key (agent.FLEXLEND_API_KEYoragent.flexland_api_key- note the typo in the script for the latter).The payload includes the owner's address, mint address, and deposit amount.
Similar to
lend_asset, it processes the transaction returned by the API.Returns the transaction signature.
lulo_withdraw(agent: SolanaAgentKit, mint_address: Pubkey, amount: float) -> str:Withdraws a specified
amountof a previously lent SPL token (identified bymint_address) from Lulo.Uses the Flexlend API endpoint (
https://api.flexlend.fi/api/v1/withdraw) and requires a Flexlend API key.Parameters and transaction handling are similar to
lulo_lend.Returns the transaction signature.
Important Considerations:
Direct API Interaction & On-Chain: This tool interacts directly with Lulo/Flexlend APIs to get transaction details, which are then signed by the agent's wallet and submitted to the Solana blockchain. These are on-chain financial transactions.
API Key: The
lulo_lendandlulo_withdrawmethods require a Flexlend API key (agent.FLEXLEND_API_KEYoragent.flexland_api_key). Thelend_assetmethod for USDC might use a more open "blink" endpoint that may not require a user-specific API key.Financial Risks: Lending assets to DeFi protocols involves risks, including smart contract vulnerabilities and impermanent loss (if the protocol also involves liquidity provision aspects).
Token Support: While
lend_assetis specific to USDC,lulo_lendandlulo_withdrawcan be used for other SPL tokens supported by Lulo/Flexlend.
Source Code
You can find the source code for this tool on GitHub: https://github.com/niceberginc/agentipy/blob/main/agentipy/tools/use_lulo.py
Last updated
