DeFi lending protocols can turn profitable in seconds when your AI agent over-leverages positions, getting liquidated at the worst possible moment. The LENDING_LTV_LIMIT policy in WAIaaS acts as your automated risk manager, preventing catastrophic position sizing before your bot even submits the transaction.
Why LTV Limits Matter for Automated Trading
In traditional finance, loan-to-value ratios determine how much you can borrow against collateral. In DeFi, that same concept governs whether you make money or get rekt. When ETH drops 15% in an hour, protocols like Aave liquidate overleveraged positions to protect lenders. Your trading bot might see a great arbitrage opportunity, but if it's already at 80% LTV and tries to borrow more, liquidation becomes inevitable.
Manual traders can watch the markets and adjust. Your AI agent executes 24/7 across multiple protocols simultaneously. Without automated risk controls, it will eventually find creative ways to lose money at 3 AM on a Sunday.
How LENDING_LTV_LIMIT Works
The LENDING_LTV_LIMIT policy calculates loan-to-value ratios before any lending transaction executes. It blocks positions that would exceed your risk threshold, regardless of what the underlying protocol allows.
Here's how to configure it:
curl -X POST http://localhost:3100/v1/policies \
-H 'Content-Type: application/json' \
-H 'X-Master-Password: <password>' \
-d '{
"walletId": "<wallet-uuid>",
"type": "LENDING_LTV_LIMIT",
"rules": {
"max_ltv_ratio": 0.65,
"protocol_overrides": {
"aave-v3": {"max_ltv_ratio": 0.60},
"kamino": {"max_ltv_ratio": 0.70}
},
"asset_specific_limits": {
"WETH": {"max_ltv_ratio": 0.70},
"WBTC": {"max_ltv_ratio": 0.65},
"USDC": {"max_ltv_ratio": 0.80}
}
}
}'
This configuration prevents borrowing beyond 65% LTV globally, with tighter limits on Aave (60%) and more conservative limits for volatile assets.
Real-World Trading Bot Scenario
Your arbitrage bot spots a price discrepancy: SOL is trading 2% higher on a centralized exchange than on Jupiter. The profitable play is to borrow USDC on Kamino, swap for SOL on Jupiter, sell on the CEX, then repay the loan.
Without LTV protection, here's what could happen:
- Bot borrows $10,000 USDC against $12,000 SOL collateral (83% LTV)
- SOL price drops 8% during execution
- Position becomes underwater at 90% LTV
- Liquidation triggers, bot loses $1,200+ in a "profitable" trade
With LENDING_LTV_LIMIT at 65%, the policy engine blocks the initial borrow. Your bot can't create the risky position in the first place.
Multi-Protocol Risk Management
WAIaaS integrates with 15 DeFi protocols, including major lending platforms like Aave and Kamino. The LTV policy works across all of them:
# Execute lending action with built-in LTV check
curl -X POST http://127.0.0.1:3100/v1/actions/aave-v3/borrow \
-H "Content-Type: application/json" \
-H "Authorization: Bearer wai_sess_<token>" \
-d '{
"asset": "USDC",
"amount": "5000",
"interestRateMode": "variable"
}'
If this borrow would push your LTV above the policy limit, the transaction fails before hitting the blockchain. No gas wasted, no partial execution, no liquidation risk.
Advanced LTV Configurations
Different assets and protocols have different risk profiles. Your policy can reflect that:
{
"max_ltv_ratio": 0.65,
"protocol_overrides": {
"aave-v3": {"max_ltv_ratio": 0.60},
"kamino": {"max_ltv_ratio": 0.70}
},
"asset_specific_limits": {
"WETH": {"max_ltv_ratio": 0.70},
"WBTC": {"max_ltv_ratio": 0.65},
"SOL": {"max_ltv_ratio": 0.60},
"USDC": {"max_ltv_ratio": 0.85}
},
"time_based_limits": {
"high_volatility_hours": {
"hours": [9, 10, 11, 16, 17, 18],
"timezone": "UTC",
"max_ltv_ratio": 0.50
}
}
}
This configuration:
- Sets conservative limits during US/EU market open/close
- Allows higher leverage for stable assets like USDC
- Reduces risk on volatile assets like SOL
- Uses protocol-specific limits based on liquidation efficiency
Integration with Trading Infrastructure
LENDING_LTV_LIMIT works alongside other WAIaaS risk policies. Combine it with SPENDING_LIMIT for position sizing and PERP_MAX_LEVERAGE for derivatives:
# Create comprehensive risk policy suite
curl -X POST http://localhost:3100/v1/policies \
-H 'Content-Type: application/json' \
-H 'X-Master-Password: <password>' \
-d '{
"walletId": "<wallet-uuid>",
"type": "LENDING_LTV_LIMIT",
"rules": {"max_ltv_ratio": 0.65}
}'
curl -X POST http://localhost:3100/v1/policies \
-H 'Content-Type: application/json' \
-H 'X-Master-Password: <password>' \
-d '{
"walletId": "<wallet-uuid>",
"type": "PERP_MAX_LEVERAGE",
"rules": {"max_leverage": 3.0}
}'
Monitoring and Alerts
WAIaaS provides real-time position monitoring through the DeFi positions API:
# Check current LTV across all positions
curl http://127.0.0.1:3100/v1/defi/positions \
-H "Authorization: Bearer wai_sess_<token>"
Response includes current LTV ratios and liquidation thresholds:
{
"positions": [
{
"protocol": "aave-v3",
"type": "lending",
"collateral_usd": 15000,
"debt_usd": 9000,
"ltv_ratio": 0.60,
"liquidation_threshold": 0.83,
"health_factor": 2.1
}
]
}
Your monitoring system can track these metrics and adjust strategy parameters in real-time.
Quick Start: Add LTV Protection to Your Bot
- Install WAIaaS CLI:
npm install -g @waiaas/cli
waiaas init --auto-provision
waiaas start
- Create a trading wallet:
waiaas wallet create --name "trading-bot" --chain ethereum --env mainnet
- Set up LTV policy:
curl -X POST http://localhost:3100/v1/policies \
-H 'Content-Type: application/json' \
-H 'X-Master-Password: <your-password>' \
-d '{
"walletId": "<wallet-uuid>",
"type": "LENDING_LTV_LIMIT",
"rules": {"max_ltv_ratio": 0.65}
}'
- Create bot session:
waiaas session create --wallet-id <wallet-uuid>
- Test with your existing bot code — just point your DeFi calls to WAIaaS instead of directly to protocols.
The LTV policy activates immediately. Your bot gets the same DeFi access with automatic risk management.
What's Next
LTV protection is one piece of comprehensive trading bot risk management. Explore PERP_MAX_LEVERAGE for derivatives trading and SPENDING_LIMIT for overall position sizing. Check out the full documentation at WAIaaS GitHub or get started at waiaas.ai.
Top comments (0)