DeFi protocols now commonly distribute "points" to active users before their governance token launches. Ethena's sats, EigenLayer restaking points, Pendle LP points, EtherFi loyalty points — each of these balances converts directly to tokens at TGE (Token Generation Event). An AI agent that farms these points continuously, optimising capital allocation daily, can accumulate significant pre-launch token positions without ever touching a manual interface.
This guide covers the mechanics of protocol points, the capital stacking strategies that maximise efficiency, and the Python automation code for a daily optimiser using Purple Flea's points farming API.
Points vs Airdrops
Traditional airdrops are retroactive and opaque. You interact with a protocol hoping it will eventually launch a token and include you in the distribution. There is no way to know your expected allocation in advance. The criteria are only revealed after the snapshot.
Protocol points programmes are prospective and transparent. The protocol publishes its points formula publicly — deposit X USDC to earn Y sats per day. You can calculate your expected allocation in real time and adjust your strategy to maximise it. More like a savings account that pays out in tokens than a lottery.
This transparency makes points farming far more suitable for algorithmic agents than traditional airdrop hunting. The agent can continuously compute the optimal allocation of capital across protocols based on current points-per-dollar rates and projected TGE timelines.
Current Top Opportunities
These protocols represent the largest active points farming opportunities as of March 2026:
| Protocol | Points Unit | How to Earn | Est. Monthly Distribution |
|---|---|---|---|
| Ethena | sats | Deposit stablecoins, hold USDe or sENA, trade with USDe on partner protocols | ~$50M/month in ENA value |
| EigenLayer | Restaking pts | Restake LSTs (stETH, rETH) or ETH into EigenLayer AVSs | Ongoing; EIGEN market cap $1.2B at launch |
| Pendle Finance | Pendle pts | Provide liquidity to Pendle yield pools, trade PT/YT, hold vePENDLE | Proportional to liquidity provided |
| EtherFi | Loyalty pts | Stake ETH via EtherFi to receive eETH, deploy eETH in DeFi | Season-based; ETHFI launched at $3B FDV |
| Symbiotic | Restaking pts | Deposit collateral into Symbiotic vaults, participate in AVS validation | Pre-TGE; SYMB token expected |
The Capital Stacking Strategy
The most efficient points farmers do not choose a single protocol — they layer multiple points streams on top of the same capital. Here is a canonical ETH stacking path that generates three simultaneous yield sources:
The result: one unit of ETH simultaneously earns native staking APY, EigenLayer restaking points, and Pendle LP points. Each additional layer compounds the return on the same initial capital. Purple Flea's API identifies these multi-layer paths automatically and executes the full stack via a single POST /v1/points/optimize call with stack_mode: true.
Capital efficiency note: Stacking comes with liquidity trade-offs. Deeply nested positions — stETH inside EigenLayer inside Pendle — can have exit queues of days to weeks during periods of high withdrawal demand. The API models exit liquidity risk and warns before executing any stack that would exceed your configured illiquid capital limit.
Python Agent: Daily Points Optimiser
This agent runs on a daily schedule. It fetches the current points opportunity rankings, compares rates against existing allocations, and reallocates capital to higher-efficiency protocols when a 20% improvement threshold is exceeded:
import requests, os from datetime import datetime PF_BASE = "https://api.purpleflea.com" HEADERS = {"Authorization": f"Bearer {os.environ['PF_API_KEY']}"} REALLOC_THRESHOLD = 1.2 # reallocate only if 20%+ better REALLOC_AMOUNT_USD = 1000 # amount to shift per reallocation def get_current_allocation(protocol_name): portfolio = requests.get( f"{PF_BASE}/v1/points/portfolio", headers=HEADERS ).json() for p in portfolio.get("positions", []): if p["protocol"] == protocol_name: return p return {"rate": 0, "allocated_usd": 0} def optimize_points_daily(): print(f"[{datetime.utcnow().isoformat()}Z] Daily points optimisation run") # Get ranked opportunities by points per $1 per day opps = requests.get( f"{PF_BASE}/v1/points/opportunities", headers=HEADERS ).json() ranked = sorted( opps, key=lambda x: x["points_per_usd_per_day"], reverse=True ) reallocations = 0 for protocol in ranked[:3]: # evaluate top 3 current = get_current_allocation(protocol["name"]) rate_ratio = ( protocol["points_per_usd_per_day"] / current["rate"] if current["rate"] > 0 else 999 ) if rate_ratio >= REALLOC_THRESHOLD: result = requests.post( f"{PF_BASE}/v1/points/optimize", json={ "target_protocol": protocol["name"], "budget_usd": REALLOC_AMOUNT_USD, "risk_level": "medium", "stack_mode": True }, headers=HEADERS ).json() print(f" ⇄ Reallocated ${REALLOC_AMOUNT_USD} → {protocol['name']} (+{(rate_ratio-1)*100:.0f}% pts rate)") reallocations += 1 else: print(f" ✓ {protocol['name']}: rate within threshold — no change") # Print TGE allocation estimate estimate = requests.get( f"{PF_BASE}/v1/points/estimate", headers=HEADERS ).json() print(f"\nTGE estimate: {estimate['total_tokens']:,.0f} tokens (~${estimate['estimated_usd']:,.0f})") print(f"Reallocations made: {reallocations}") if __name__ == "__main__": optimize_points_daily()
Exit Strategy at TGE
Most protocol TGEs follow a similar structure: 20–30% of tokens are immediately liquid at launch (the "cliff"), with the remainder vesting linearly over 12–48 months. For large allocations, consider these exit strategies:
- Immediate cliff sell: Sell the liquid portion at launch. Token prices are typically highest in the first 24–72 hours before retail hype fades. Setting limit sell orders in advance prevents emotion-driven decision-making.
- Delta-neutral hedge: Open a short position on the token's perpetual future (via Purple Flea's trading API) sized to your total expected allocation. This locks in the TGE price regardless of market movement during the claim and vesting period.
- Reinvest into protocol: Some protocols offer enhanced points multipliers for holders who LP their TGE tokens. The API monitors these opportunities and can automate the reinvestment decision.
Vesting risk: If a protocol's token price falls significantly during the vesting period, locked tokens can end up worth far less than estimated at TGE. Agents managing large vested positions should use partial hedges on vesting tranches as they unlock.
Risk Factors to Model
Points farming carries distinct risks that a well-configured agent should handle explicitly:
- Protocol TGE risk: Some protocols raise significant funding, build large communities, and still never launch a token. Points balances in these protocols expire worthless. Weight opportunities by the credibility of the TGE commitment — VC-backed protocols with public timelines carry lower TGE risk.
- Points dilution: As more capital enters a protocol, each point becomes a smaller fraction of the total. The API tracks total points outstanding and projects your share at current growth rates. Entering early before a viral farming trend is more capital-efficient than entering after.
- Rule changes: Protocols occasionally change their points formulas — adding multipliers, capping maximums, or changing what activities qualify. The API notifies your agent within 24 hours of any rule change affecting a protocol in your portfolio.
- Smart contract risk: Deposited capital interacts with smart contracts. Use only audited protocols from the API's curated list and set maximum capital exposure per protocol appropriate to its audit status and track record.
Getting Started
Connect your wallets via Purple Flea's points farming API and run the daily optimiser script. The API tracks balances across all 40+ supported protocols automatically and returns ranked opportunities with the efficiency metrics your agent needs to make reallocation decisions.
Full product page: See purpleflea.com/agent-points-farming for the complete API reference, stacking strategy diagram, and MCP tool definitions for Claude-powered agents.