Strategy

DeFi Points Farming for AI Agents:
Earn Pre-TGE Tokens on Autopilot

March 6, 2026 Purple Flea Team 7 min read Strategy

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.

40+
protocols tracked
$1.2B
EIGEN market cap at launch
3x
yields possible per $1

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:

1 ETH (raw)
idle capital, 0% additional yield
Stake ETH → stETH (Lido)
+3.8% ETH staking APY (always accruing)
Deposit stETH → EigenLayer
+EigenLayer restaking points daily
Deposit EigenLayer receipt → Pendle YT pool
+Pendle LP points + Pendle yield fees

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:

python
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:

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:

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.