Skip to content

Diegolden-com/usdc-fees-hook

Repository files navigation

USDC Fixed-Fee Hook: Gas Cost Hedging for DeFi Swaps

Author: Diego Jiménez | DeFi Operations @ Odisea Labs | CFA L1


Overview

A Uniswap v4 hook that enables fixed-price swaps denominated in USDC, abstracting away gas cost volatility for institutional and retail users. Instead of paying unpredictable gas fees in ETH, users pay a flat fee (e.g., $2.99 on Mainnet, $0.99 on L2) regardless of network congestion.

The hook implements an individual savings/borrowing mechanism where users accumulate credits during low-gas periods and draw down during high-gas periods, effectively hedging their own gas cost exposure over time.


Deployment Status

Live on Unichain Sepolia Testnet 🟢

  • Hook Contract: 0xA24fEe104Fe00987AfC2714469159Cd3D8b840c0
  • USDC Address: 0x31d0220469e10c4E71834a79b1f276d740d3768F
  • Verified: Yes ✅
  • Explorer: View on Uniscan

Problem Statement

Commodity-Denominated Fees Are Hard to Forecast

In traditional finance, commodity costs (e.g., oil storage as % of barrels) are hedged using forward contracts to reduce variability for financial planning departments.

In DeFi:

  • Gas fees are denominated in ETH (a volatile commodity)
  • Network congestion causes fees to spike 10-100x during peak times
  • Institutional treasury departments cannot forecast costs accurately
  • CFOs require predictable operating expenses for budgeting

Example scenario:

Low congestion:  Swap costs $0.50 in gas
High congestion: Same swap costs $30-50 in gas

Enterprises need fixed, predictable costs to justify DeFi integration.


Solution

Fixed-Fee Swaps with Individual Gas Hedging

Pricing:

  • Mainnet (L1): $2.99 USDC per swap
  • L2 (Base/Arbitrum/Unichain): $0.99 USDC per swap

Mechanism:

  1. Users pay a fixed USDC fee for every swap
  2. During low-gas periods: Surplus accumulates as "credits" in their account
  3. During high-gas periods: Credits are drawn down to subsidize excess costs
  4. Over time, users hedge their own gas exposure through temporal diversification

Combined with ERC-4337 Paymaster:

  • Users sign transactions without needing ETH
  • Paymaster executes transactions using pooled funds
  • Users experience "zero gas" UX while maintaining cost predictability

How It Works

Architecture Components

┌─────────────────────────────────────────────────────┐
│                      User                           │
│  Pays: Fixed $2.99 USDC (L1) or $0.99 (L2)          │
└──────────────────┬──────────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────────────┐
│              USDC Fixed-Fee Hook                    │
│  • Tracks individual user balances                  │
│  • Accumulates credits (low gas periods)            │
│  • Draws down credits (high gas periods)            │
│  • Enforces credit limits based on lifetime contrib │
└──────────────────┬──────────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────────────┐
│         ERC-4337 Paymaster                          │
│  • Executes transactions on behalf of user          │
│  • Pays gas in ETH from pooled treasury             │
│  • Settles costs via hook accounting system         │
└─────────────────────────────────────────────────────┘

User Balance Model (Individual Savings)

mapping(address => int256) public userBalance;  // Can go negative (borrowing)
mapping(address => uint256) public lifetimeContribution;

Credit limit = lifetimeContribution * 50%  // Can borrow up to 50% of lifetime contributions (fees paid in USDC)

Example flow:

Swap # Gas Cost Fixed Fee Surplus/Deficit User Balance
1 $0.50 $2.99 +$2.49 +$2.49
2 $1.00 $2.99 +$1.99 +$4.48
3 $8.00 $2.99 -$5.01 -$0.53
4 $0.75 $2.99 +$2.24 +$1.71

Average cost over 4 swaps: $2.99

Why Individual vs Mutualized Pool?

Individual model advantages:

  • ✅ No free-rider problem: Users only use what they've saved
  • ✅ No bank-run risk: Your balance is yours
  • ✅ Simpler governance: No pool management needed
  • ✅ Better regulatory posture: Not pooling customer funds
  • ✅ Fair attribution: Direct relationship between contribution and benefit

With credit limits:

  • New users can borrow (up to 50% of lifetime contributions)
  • Long-term users earn higher credit lines
  • System remains solvent by design

Technical Implementation

Hook Permissions Required

beforeSwap: true           // Collect fixed USDC fee
afterSwap: true            // Calculate gas subsidy/charge
beforeSwapReturnDelta: false    // NO modification of swap amounts (using transferFrom)
afterSwapReturnDelta: false     // NO accounting only, no delta modification

Core Logic (Simplified)

function _afterSwap(...) internal override returns (bytes4, int128) {
    // Estimate actual gas cost in USDC using Pool TWAP
    uint256 actualGasCostUSDC = estimateGasCostTWAP();

    int256 delta = int256(TARGET_FEE) - int256(actualGasCostUSDC);

    if (delta > 0) {
        // Surplus: User accumulates credits
        userBalance[user] += delta;
        lifetimeContribution[user] += delta;
    } else {
        // Deficit: User draws down credits
        int256 deficit = -delta;
        uint256 creditLimit = lifetimeContribution[user] / 2;
        require(userBalance[user] >= -int256(creditLimit), "Credit limit exceeded");
        userBalance[user] += delta;
    }

    return (BaseHook.afterSwap.selector, 0);
}

Advantages

For Users

  • Predictable costs: Budget exactly for DeFi operations
  • No ETH needed: Paymaster handles gas, users only pay USDC
  • Self-hedging: Temporal diversification of gas exposure
  • Stablecoin denomination: No ETH price exposure

For Institutions

  • CFO-friendly: Fixed line item in OpEx budget
  • Compliance: Easier to audit and report
  • Planning: Can forecast DeFi costs quarterly/annually
  • Risk management: Eliminates gas spike surprises

For the Protocol

  • Sustainable economics: Fee covers average gas + margin
  • No adverse selection: Individual balances prevent gaming
  • Scalable: Works for 10 users or 10,000 users
  • Capital efficient: No need for massive reserve pools

Use Cases

1. Institutional Treasury Management

Scenario: Hedge fund executes 500 swaps/month

Current Swaps:

  • Gas costs: $25,000 - $75,000/month (highly variable)
  • Budget uncertainty prevents allocation

With Fixed-Fee Hook:

  • Gas costs: $1,495/month (500 × $2.99) on Mainnet
  • Predictable, can allocate larger size

2. Retail DeFi Subscription

Scenario: User swaps weekly for DCA strategy

Traditional DeFi:

  • Some weeks pay $2, some weeks pay $40
  • Frustration during high-gas periods

With Fixed-Fee Hook:

  • Always pays $0.99 (on L2)
  • Builds credits during normal weeks
  • Uses credits during congestion

3. Cross-Border Remittances

Scenario: Monthly stablecoin transfers

Traditional DeFi:

  • Unpredictable fees hurt low-income users
  • Gas spikes make small transfers uneconomical

With Fixed-Fee Hook:

  • Fixed $0.99 per transfer
  • Budgetable for remittance services

Next Steps

Phase 1: MVP Development

  • Design individual savings/borrowing model
  • Implement hook with credit accounting
  • Gas price estimation via Pool TWAP
  • ERC-4337 Paymaster contract
  • UserOperation validation logic
  • Testing on testnet
  • Frontend wallet integration (Privy)

Phase 2: Multi-Chain Deployment

  • Deploy on Base (low gas, high throughput)
  • Deploy on Arbitrum (established liquidity)
  • Deploy on Unichain (native integration)
  • Mainnet deployment (institutional focus)

Phase 3: Treasury Optimization

  • Deploy idle USDC to yield-bearing protocols
    • AAVE for lending (3% APY on USDC)
    • Circuit breakers for liquidity management
  • Dynamic rebalancing based on utilization
  • Risk management framework (max deployed %, withdraw limits)

Phase 4: Advanced Features

  • Tiered pricing (volume discounts)
  • Corporate subscription plans
  • Analytics dashboard for users
  • Governance token for fee-sharing or voting on pricing

Appendix

A. AAVE Yield Integration - Break-Even Analysis

Deploying idle treasury USDC to AAVE for yield generation.

Assumptions:

  • USDC APY on AAVE: 5%
  • Gas costs for supply/withdraw operations
  • Need to maintain minimum liquid balance for withdrawals

Break-Even Treasury Sizes

Chain Supply Gas Withdraw Gas Total Gas Cost Min Balance (30d) Min Balance (7d) Min Balance (1d)
Mainnet $15 $22 $37 $8,880 $38,000 $266,400
Base $0.01 $0.02 $0.03 $7 $31 $216
Arbitrum $0.01 $0.03 $0.04 $10 $41 $288
Unichain $0.01 $0.02 $0.03 $7 $31 $216

Interpretation:

  • Mainnet: Only profitable if treasury > $50k and rebalancing weekly
  • L2s: Profitable at almost any scale due to negligible gas costs

Strategy:

  • L1: Keep 100% liquid until treasury > $500k
  • L2: Deploy 70% to AAVE once treasury > $10k, keep 30% liquid

B. Gas Cost Assumptions by Chain

Fixed fee pricing is based on average gas consumption across typical swap scenarios.

Contract Gas Usage Estimates

Operation Gas Used Notes
beforeSwap hook 50,000 USDC transfer + accounting
afterSwap hook 80,000 Gas calculation + balance update + TWAP calculation
Base swap (Uniswap v4) 100,000 Core routing logic
Total per swap 230,000 Approximate

Gas Prices by Chain (2025 Averages)

Chain Avg Gas Price Low Congestion High Congestion Avg Cost per Swap
Mainnet 30 gwei 15 gwei ($0.50) 150 gwei ($5.00) $1.50
Base 0.005 gwei 0.002 gwei ($0.001) 0.02 gwei ($0.01) $0.002
Arbitrum 0.01 gwei 0.005 gwei ($0.002) 0.05 gwei ($0.02) $0.004
Unichain 0.003 gwei 0.001 gwei ($0.0005) 0.01 gwei ($0.005) $0.001

ETH Price Assumption: $3,000

Fixed Fee Pricing Strategy

Chain Avg Gas Cost Fixed Fee Margin Margin %
Mainnet $1.50 $2.99 $1.49 99%
Base $0.002 $0.99 $0.988 49,400%
Arbitrum $0.004 $0.99 $0.986 24,650%
Unichain $0.001 $0.99 $0.989 98,900%

Notes:

  • L1 pricing includes buffer for gas spikes (150 gwei scenarios)
  • L2 pricing optimized for user acquisition (high margin but competitive)
  • Revenue from margins can fund:
    • Protocol development
    • Insurance pool for extreme gas events
    • Yield generation (reducing effective user costs)

C. Risk Management Parameters

Per-User Limits

Parameter Mainnet L2s Rationale
Max negative balance $50 $20 Prevent single user from depleting treasury
Credit limit formula 50% of lifetime contribution 50% of lifetime contribution Ensures users have "skin in the game"
Max subsidy per swap $20 $5 Circuit breaker for extreme events

Protocol-Wide Limits

Parameter Mainnet L2s Rationale
Min liquid treasury 30% 20% Always maintain withdrawal capacity
Max deployed to AAVE 70% 80% Reduce smart contract risk
Emergency mode threshold Treasury < 10% of 30d avg Treasury < 10% of 30d avg Reduce subsidies during stress

D. Economic Sustainability Model

Revenue Sources

  1. Spread margin: Fixed fee - Average gas cost
  2. Yield on treasury: AAVE/Compound interest (Phase 3)
  3. Subscription tiers: Premium users pay monthly flat fee for unlimited swaps (Phase 4)

Cost Structure

  1. Gas subsidies: High congestion periods
  2. Oracle costs: $0 (using internal TWAP)
  3. Infrastructure: Paymaster execution costs (if used)
  4. Development: Ongoing maintenance and upgrades

Profitability Scenarios (Monthly)

Mainnet (1000 swaps/month):

Revenue:  1000 × $2.99 = $2,990
Costs:    1000 × $1.50 = $1,500 (avg gas)
          Oracle: $0
          Dev: $0 (amortized)
Profit:   $1,390/month (46% margin)

Base (10,000 swaps/month):

Revenue:  10,000 × $0.99 = $9,900
Costs:    10,000 × $0.002 = $20 (avg gas)
          Oracle: $0
          Dev: $0 (amortized)
Profit:   $9,875/month (99.7% margin)

Additional yield (if $100k treasury @ 5% APY):
          $100,000 × 0.05 / 12 = $417/month
Total:    $10,292/month

License

MIT


Contact

For questions, partnerships, or enterprise integration:

  • Email: diego@odisea.xyz
  • Twitter: @Diegolden-com
  • GitHub: github.com/Diegolden-com/usdc-fees-hook

Disclaimer: This is a design document. Smart contracts have not been audited. Use at your own risk. Gas cost estimates are approximations and may vary based on network conditions, ETH price, and contract optimizations.

About

Define a fixed price for swaps in USDC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors