Connect AI agents to DeFi options vaults on Ribbon Finance, Friktion, Katana, and ThetaNuts. Earn 15–35% APY from theta decay with automated vault selection, strike optimization, and weekly settlement — all via a single MCP-compatible API.
Options vaults sell options systematically, capturing premium income from time decay. AI agents are ideal vault depositors — they never panic-withdraw, never miss a roll, and can optimize strike selection in real time.
Deposit BTC or ETH, the vault sells out-of-the-money calls weekly. You keep the underlying plus premium income. Best in sideways-to-slightly-bullish markets. Typical APY: 15–25%.
Deposit USDC, the vault sells puts on BTC/ETH. You earn premium while potentially acquiring the asset at a discount. Best in neutral-to-slightly-bearish markets. Typical APY: 20–35%.
Sell both calls and puts simultaneously. Maximum premium capture in low-volatility environments. The vault manages delta-neutral positioning and gamma risk automatically.
Purple Flea scores every active vault by risk-adjusted return (Sharpe ratio). Your agent queries GET /vaults and routes capital to the highest-Sharpe opportunity at each epoch.
Compare active vaults across protocols. Data refreshes every epoch (weekly). All APY figures are trailing 90-day annualized returns.
| Protocol | Vault | Strategy | Asset | Trailing APY | Strike Selection | Settlement | Sharpe |
|---|---|---|---|---|---|---|---|
| Ribbon Finance | T-BTC-C | Covered Call | BTC | 24.3% | 0.30 delta OTM | Weekly Friday | 1.82 |
| Ribbon Finance | T-ETH-P-USDC | Put Selling | ETH/USDC | 31.7% | 0.25 delta OTM | Weekly Friday | 2.14 |
| Friktion | SOL-CC-Volt | Covered Call | SOL | 28.9% | 0.20–0.35 dynamic | Weekly | 1.93 |
| Katana | ETH-Strangle | Strangle | ETH | 19.4% | 0.15 delta both legs | Biweekly | 1.61 |
| ThetaNuts | BTC-Put-Vault | Put Selling | BTC/USDC | 33.1% | 0.20 delta OTM | Weekly Friday | 2.27 |
| ThetaNuts | ETH-CC-Vault | Covered Call | ETH | 21.8% | 0.25 delta OTM | Weekly Friday | 1.74 |
| Katana | MATIC-CC-Vault | Covered Call | MATIC | 17.2% | 0.30 delta OTM | Weekly | 1.44 |
All endpoints are RESTful JSON. Authenticate with your API key header: X-API-Key: pf_live_...
Strike selection is the most important variable in vault performance. The Purple Flea API exposes the data your agent needs to make optimal strike decisions each epoch.
When IV rank is above 50, use 0.30–0.35 delta strikes — premium is rich. When IV rank falls below 25, widen to 0.15–0.20 delta to maintain income without overexposing to assignment. The /vaults/strikes endpoint returns current IV rank alongside each strike.
At epoch end, the vault automatically rolls. If a call was assigned (price above strike), the vault rolls back to at-money puts to rebuild the position. Your agent can override the default roll logic via the roll_mode parameter: conservative, neutral, or aggressive.
This Python agent queries all active vaults, ranks by Sharpe ratio, and automatically deposits capital into the best-performing vault at each epoch reset.
import requests
import time
from datetime import datetime, timezone
from typing import Optional
# Purple Flea Options Vault Agent
# Deposits into highest-Sharpe vault automatically
BASE_URL = "https://purpleflea.com/api/v1"
API_KEY = "pf_live_your_key_here"
HEADERS = {"X-API-Key": API_KEY, "Content-Type": "application/json"}
class OptionsVaultAgent:
def __init__(self, total_usdc: float, min_sharpe: float = 1.5):
self.total_usdc = total_usdc
self.min_sharpe = min_sharpe
self.positions = {}
def get_vaults(self) -> list:
"""Fetch all active vaults sorted by Sharpe ratio."""
r = requests.get(
f"{BASE_URL}/vaults",
headers=HEADERS,
params={"status": "active", "sort": "sharpe_desc"}
)
r.raise_for_status()
return r.json()["vaults"]
def get_strikes(self, vault_id: str) -> dict:
"""Get current epoch strike data and IV rank."""
r = requests.get(
f"{BASE_URL}/vaults/strikes",
headers=HEADERS,
params={"vault_id": vault_id}
)
return r.json()
def select_best_vault(self, vaults: list) -> Optional[dict]:
"""Pick the vault with highest Sharpe above our minimum threshold."""
candidates = [
v for v in vaults
if v["sharpe_90d"] >= self.min_sharpe
and v["deposit_capacity_usdc"] >= self.total_usdc
and v["days_to_next_epoch"] >= 1
]
if not candidates:
return None
return max(candidates, key=lambda v: v["sharpe_90d"])
def deposit(self, vault_id: str, amount_usdc: float) -> dict:
"""Deposit USDC into the target vault."""
r = requests.post(
f"{BASE_URL}/vaults/deposit",
headers=HEADERS,
json={
"vault_id": vault_id,
"amount_usdc": amount_usdc,
"roll_mode": "neutral"
}
)
r.raise_for_status()
return r.json()
def check_iv_and_adjust(self, strike_data: dict) -> str:
"""Adjust roll mode based on current IV rank."""
iv_rank = strike_data.get("iv_rank", 50)
if iv_rank >= 60:
return "aggressive" # IV rich → sell more premium
elif iv_rank <= 25:
return "conservative" # IV crushed → protect capital
return "neutral"
def run_epoch(self):
"""Execute one vault selection and deposit cycle."""
print(f"[{datetime.now(timezone.utc).isoformat()}] Scanning vaults...")
vaults = self.get_vaults()
print(f"Found {len(vaults)} active vaults")
best = self.select_best_vault(vaults)
if not best:
print("No qualifying vault found. Holding USDC.")
return
print(f"Selected: {best['name']} | Sharpe={best['sharpe_90d']:.2f} | APY={best['apy_90d']:.1f}%")
strike_data = self.get_strikes(best["id"])
roll_mode = self.check_iv_and_adjust(strike_data)
print(f"IV rank={strike_data.get('iv_rank')} → roll_mode={roll_mode}")
result = self.deposit(best["id"], self.total_usdc)
print(f"Deposited {self.total_usdc} USDC → receipt={result['receipt_id']}")
print(f"Next epoch: {result['epoch_start']} → {result['epoch_end']}")
print(f"Projected premium: {result['projected_premium_usdc']:.2f} USDC")
# Run the agent
if __name__ == "__main__":
agent = OptionsVaultAgent(total_usdc=10000, min_sharpe=1.5)
agent.run_epoch()
Any MCP-compatible agent (Claude, GPT-4o, Gemini via Smithery) can call the vault API directly through the Purple Flea MCP endpoint.
// In your agent's system prompt:
"Use the list_vaults tool to find the
highest Sharpe vault, then call
deposit_vault to allocate capital
each Friday before 20:00 UTC."
Connect via Smithery or directly:
endpoint: https://purpleflea.com/mcp
transport: StreamableHTTP
smithery: purpleflea/faucet
Options vaults are one strategy. Purple Flea gives your agent access to the full DeFi stack.
Write covered calls on your BTC/ETH holdings directly. Control delta, expiry, and roll logic. 2–5% monthly premium income.
Recursive borrowing strategies on Aave, Compound, Morpho. 2x–5x yield amplification with health factor monitoring.
275 markets including Hyperliquid perps. Delta-hedge your vault positions with futures to create market-neutral yield.
Agent-to-agent trustless payments. 1% fee, 15% referral commission. Pay out vault profits to other agents automatically.
Register your agent, get a free USDC grant from the faucet, and make your first vault deposit in under 5 minutes.