Skip to content

Fee Model

Date: 2026-07-11
Authority: docs/00-product-constitution.md + XEL LOCKED-MODEL
Plane: XEL-152 / XEL-168

Product decision 2026-07-11 (mav): performance skim = 5% (500 bps).

This freezes how Open Yield charges vs Superform / Yearn / Beefy / Giza / OpenRouter.


ProtocolWhat they chargeWhenNotes
SuperformPerformance + some management / vault skimsRealized yield / vault eventsFees often shared with strategists; modest protocol-kept $
YearnClassic ~2% mgmt + ~20% performance (vault-dependent)On yieldEstablished, heavy performance cut
BeefyPerformance + small withdrawal feeHarvest / exitWithdrawal fee is common but we reject it
Giza / agent optimizersPerformance on yieldOn yieldAgent-focused, often less open
OpenRouter~5.5% on credit top-upsWhen buying creditsNot a yield model — flat tax on spend

Lesson: DeFi yield protocols earn mainly when users earn. Credit-platform % markups (OpenRouter) are a different business.


RailRateWhen chargedPurposeOnchain?
A. Yield performance skim5% of gross harvested yield (protocol_yield_skim_bps = 500)Every harvest / waterfallMain protocol revenueYes
B. Data / API (optional)x402 pay-per-call (market rate, e.g. ~$0.001–0.002 class if we host discovery)When agent hits paid discovery/data endpointsCover data + spamVia x402, not a hidden yield tax
Rejected feeWhy
Fee on deposits / tips / top-upsConstitution + XEL locked model
Fee on principal withdrawal“Always withdraw”; no Beefy-style exit tax
Management fee on idle AUM as primary revenuePrefer earn-when-user-earns
5.5% on credit purchases as core modelOpenRouter-style; not yield-aligned
Second Auto Pay % on residual (0.5–1%)Double-charges after yield skim; Auto Pay is a feature of residual, not a new fee stack
Ad-hoc 5–8% marketing rateMVP locked at 500 bps (5%); change only by explicit product decision
gross_yield (venue claim)
→ protocol_skim (~5%) // Open Yield revenue — ONCHAIN
→ survival bills (storage, etc.)
→ residual → compound and/or Auto Pay (no extra protocol % by default)

Gas, bridge venue costs, and card processor fees are pass-through costs, not protocol performance fees. Disclose them in plans.


3. Why not the “hybrid $0.001 + 5–8%” as written

Section titled “3. Why not the “hybrid $0.001 + 5–8%” as written”
Proposal pieceVerdict
$0.001 per API callOK as x402 data pricing if we host paid discovery — not a substitute for yield skim
5–8% bandMVP locked at 5% (500 bps); raise only with product decision unless policy overrides protocol_yield_skim_bps
Hybrid as main storyFine if framed as: (1) yield skim onchain + (2) optional x402 for data — not two competing “performance” fees

Open Yield product default is 500 bps (5%). Align XEL DEFAULT_PROTOCOL_YIELD_SKIM_BPS / policy config to 500 for Open Yield characters.


AspectSuperform / Yearn / BeefyOpen Yield MVP
Main revenuePerformance on yield~5% harvest skim
Flat / usageRare (or withdraw fee)Optional x402 on data APIs only
Withdraw principalSometimes small fee (Beefy)$0 protocol fee
DepositUsually full valueFull value always
Agent cost to queryMediumVery low if discovery free or $0.001-class x402
Token fee-shareOften ($UP, etc.)Not required for MVP
TransparencyHighGross + net APY + feeBps in every position API

ActionCost to agent/character
Deposit USDC0 protocol fee
previewRoute / public venuesFree or x402 dust
Stake / unstakeGas (sponsored path) only
Harvest~5% of that harvest’s yield (onchain)
Withdraw principal0 protocol fee
Auto Pay send0 extra protocol % (uses post-skim residual)

Agents can poll often; we don’t need OpenRouter-style markup on every thought.


IdeaWhen to consider
Lower skim to 5–8% for growthExplicit product decision + update constitution
Fee share to $TOKEN buybackAfter product-market fit
Tiny Auto Pay routing feeOnly if x402 facilitator costs demand it — disclose separately
Management fee on staked AUMGenerally avoid; conflicts with pure performance alignment

  • Harvest path always applies protocol_yield_skim_bps
  • top_up / withdraw unit tests: zero protocol skim
  • API: feeBps, grossApyBps, netApyBps always paired
  • UI: never “fee-free yield” if skim > 0
  • x402 discovery (if paid): separate line item, not mixed into yield skim
  • No withdrawal fee parameter in product API

Open Yield is free to fund and free to exit; it takes about 5% of yield when your capital earns, and may charge tiny x402 fees only for optional paid data calls.


  • Constitution: docs/00-product-constitution.md
  • Superform revenue: docs/08-superform-github-sdk-revenue.md
  • Steal list: docs/07-superform-steal-list.md
  • Agent API harvest response: docs/02-agent-api.md