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
amount
of 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
amount
of 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_KEY
oragent.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
amount
of 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_lend
andlulo_withdraw
methods require a Flexlend API key (agent.FLEXLEND_API_KEY
oragent.flexland_api_key
). Thelend_asset
method 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_asset
is specific to USDC,lulo_lend
andlulo_withdraw
can 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