Skip to content
BLOKZ.dev

Rate-Chasers: Why DeFi Yield Agents Win Where Trading Bots Lose

Autonomous agents run ~19% of on-chain activity and beat Aave and Morpho at stablecoin yield — yet lose to humans at trading by 5 to 1. The split isn't about model quality. Yield-chasing is a constrained optimization against a kinked rate curve; trading needs alpha agents don't have.

7 min read intermediate

Two facts about autonomous agents in DeFi sit awkwardly next to each other. By DWF Ventures’ April 2026 accounting, agents and automation now drive roughly 19% of all on-chain activity and over 76% of stablecoin transfer volume, with more than 17,000 agents launched since 2025. In yield optimization they are winning: Giza’s ARMA agent generated over 9.75% APY on USDC — net of rebalancing gas and a 10% performance fee — beating what you’d have earned parking the same dollars in Aave or Morpho directly.

And yet, put those same agents in a trading ring and they get taken apart. In Trade XYZ’s human-versus-agent competition — $10,000 accounts, no leverage cap — the top humans beat the top agents by more than 5×. In nof1’s model bake-off (Grok-4, GPT-5, DeepSeek, and friends), only the top 3 of 7 models had positive expected value per trade; most lost on more trades than they won.

Same agents, same chains, opposite verdicts. The tempting explanation is that the models just aren’t smart enough yet — that another turn of the scaling crank fixes trading. That’s the wrong frame. The split is structural, and it’s an engineering story about what kind of problem each task actually is.

Yield optimization is a constrained optimization. Trading isn’t.

Stablecoin yield optimization is the friendliest possible problem for a machine. The objective is scalar and observable — net APY, denominated in the same asset you started with. The action space is small and discrete: a handful of audited lending pools you can move between. Every rate you’re optimizing against is queryable on-chain right now, and the feedback loop closes in minutes. There is no counterparty trying to model your model. It is, almost exactly, a textbook constrained optimization: maximize realized yield subject to gas and risk constraints.

Trading is none of those things. The objective (risk-adjusted return) is only knowable in hindsight; the action space is continuous and unbounded; the environment is adversarial and reflexive — the moment a strategy works, other participants arbitrage it away. Winning requires alpha: a predictive edge over the market’s own aggregate forecast. LLMs are trained to model the consensus of their corpus, which is close to the opposite of holding a contrarian, correct view about the next hour of price action. (We’ve seen the flip side of this in on-chain prediction markets, where agents price probabilities reasonably but bleed edge to better-calibrated humans, and in DX Terminal Pro’s production trading run, where reliability came from the operating layer, not the model’s market calls.)

So the interesting engineering question isn’t “why do agents lose at trading” — it’s “what makes the winning task tractable, and where are its hidden edges.” That mechanism is the rebalancing decision, and it’s sharper than it looks.

What ARMA actually does

ARMA (“Autonomous Revenue Management Agent”) is a self-custodial agent that continuously rebalances stablecoins across Base lending markets — Aave, Compound, Morpho, Moonwell, Seamless, Fluid, Euler — chasing the best risk-adjusted rate. It runs on ERC-7579 smart accounts with session keys: you keep your keys, and the agent gets a scoped, revocable permission to interact with a pre-approved set of protocols and nothing else. (This is the same blast-radius-minimizing custody pattern we dissected in Agent Keys and the Blast Radius Problem — the agent can move your funds between whitelisted pools but can’t sweep them to an attacker.)

By Giza’s own numbers, ARMA has spawned 25,000+ personalized agent instances that have optimized $35M+ in user capital across 102,000+ transactions. The load-bearing piece of its logic is a cost-benefit gate: it only rebalances “when the yield payoff justifies the transaction costs.” That sentence is the whole ballgame, and it hides two pieces of math that decide whether the strategy prints or bleeds.

The first force: your own deposit moves the rate

Lending rates are not fixed quotes — they’re functions of utilization. Aave V3’s variable borrow rate follows a kinked curve: below an optimal utilization U*, the rate climbs gently along slope1; above it, steeply along slope2, to choke off the last of the liquidity. Suppliers then earn a fraction of what borrowers pay:

borrowRate(U) = U ≤ U* ?  base + (U / U*)·slope1
                       :  base + slope1 + ((U − U*) / (1 − U*))·slope2

supplyRate(U) = U · borrowRate(U) · (1 − reserveFactor)

These aren’t textbook constants. Reading the Aave V3 USDC reserve on Base straight off the chain (Blockscout eth_call into the Pool and its rate-strategy contract) gives U* = 90%, slope1 = 4.5%, slope2 = 10%, base = 0, reserveFactor = 10%. Plug in the live state — $176.0M supplied, $147.8M borrowed, 84.0% utilization — and the formula reproduces the on-chain rates exactly: 3.17% supply, 4.20% borrow. The model is the market.

Here’s the catch the headline APY hides. When you supply capital C into a pool, you raise its available liquidity, which lowers utilization, which lowers the rate everyone — including you — now earns. Your marginal dollar earns the post-deposit rate, not the rate that lured you in. The size of that self-inflicted haircut scales with C relative to the pool’s depth:

  • Drop $1M into the real $176M Aave pool and utilization barely twitches: 3.17% → ~3.13%, a ~4 bps haircut. Negligible.
  • Drop the same $1M into a $10M pool and you’ve moved the rate hard — the quoted yield can collapse below the rate you left behind, turning a “better” pool into a worse one the instant you arrive.

This is why ARMA spawns a personalized agent per wallet rather than pooling everyone into one giant position: a $2B aggregate deposit would compete away its own edge in every market it touched. It’s also why yield optimization is genuinely hard and not just a max() over a rate table — the rate table changes when you act on it.

The calculator below runs exactly this decision on the live Base curve. Slide your capital and the destination pool’s depth, and watch the realized-APY dot slide down the kinked curve away from the quoted rate. When it drops below the dashed “current” line, moving makes you poorer.

⬢ loading artifact…
The Rebalancer's Break-Even — drag capital, gas, and pool sliders · watch the realized-APY dot slide down the curve · keyboard: tab to a slider, arrow keys to adjust · data as of · Aave V3 USDC on Base via Blockscout ↗ open artifact ↗

The second force: gas versus the spread, over time

Suppose the realized edge survives — the post-impact rate still beats where your capital sits. Moving still costs gas: a withdraw on the source pool and a supply on the destination (sometimes a swap too). The move only pays if the extra yield, accrued over your holding horizon, clears that fixed cost:

extra yield over T years  =  (realizedRate − currentRate) · C · T
break-even holding time   =  gasCost / ((realizedRate − currentRate) · C)

The break-even time falls with both your capital and the spread, and rises with gas. This single inequality explains why autonomous rate-chasing is an L2-native strategy. Take a small $2,000 position capturing a ~60 bps edge — about $12/year, or 3¢/day:

  • On Base (~$0.05 a rebalance), gas repays in about a day and a half. Rebalance away.
  • On Ethereum L1 (~$8 a rebalance), break-even is ~240 days. The strategy is dead on arrival; the gas eats the alpha before it accrues.

Scale the position to $250k and L1 gas repays in a couple of days again — which is the other half of the story. Rate-chasing has economies of scale: large capital amortizes gas trivially but suffers rate impact, while small capital dodges rate impact but chokes on gas. The agent’s job is to find the band where both constraints clear simultaneously, continuously, as rates drift. That is a tractable optimization with fast, measurable feedback — precisely the regime where machines beat humans, who can’t sit and re-solve it every block.

Where the win gets fragile

Calling agents “winners” at yield deserves the usual skepticism this blog runs on:

  • Subsidized headlines. ARMA’s flashier “~15% APY” figures lean on $GIZA token incentives that top up wallets when raw lending returns fall short. The honest, incentive-free number is closer to the ~9.75% net figure — still a real win over passive lending, but not the sticker.
  • Correlated rates kill the spread. The whole edge is rate dispersion across pools. When stablecoin demand moves in lockstep across Aave, Morpho, and Moonwell, the dispersion compresses and there’s nothing left to chase — only gas to spend chasing it.
  • Reflexivity. Every yield agent reads the same on-chain rates and computes the same argmax. When thousands of them pile into the highest-quoted pool at once, the aggregate rate impact erases the very spread they detected — a slow-motion crowding that the single-agent break-even math doesn’t see.
  • A widened attack surface. Optimizing across seven protocols means trusting seven sets of contracts, oracles, and rate models. The agent’s safety is bounded by its session-key scope, but the capital’s safety is bounded by the weakest pool it’s allowed to enter.

Takeaways

  • The agent yield-vs-trading split is structural, not a model-quality gap: yield optimization is a constrained optimization with a scalar, observable objective and a small action space; trading demands predictive alpha against an adversarial, reflexive market.
  • The rebalancing decision turns on two forces the marketing skips — rate impact (your own deposit slides the realized rate down a kinked curve) and the gas/spread break-even over a holding horizon. Get either wrong and a “higher-yield” pool makes you poorer.
  • Rate-chasing is L2-native by construction: the break-even inequality only closes when gas is cents, which is why these agents live on Base and not Ethereum L1.
  • Don’t read a green APY as a solved problem. Token subsidies, rate correlation, and agent crowding all erode the edge that the clean optimization promises — and the real numbers (a live $176M pool that yields 3.17% and barely moves) are less dramatic than the dashboards.

Written by Blokz Development Co. — an engineering agency building agentic systems and blockchain infrastructure. This publication is written and maintained in the open, with AI routines doing much of the heavy lifting.

Content licensed CC BY 4.0 · View source on GitHub ↗

Related articles

Type to search the archive.