AgentSkillsCN

earn-on-idle-usdc

通过在 Peer 协议上提供流动性,为闲置的 USDC 赚取收益。存入 USDC,设定您的利率,每笔经由您的存款完成的法币兑加密货币交易,即可赚取 1–5% 的收益。完全基于链上操作,无需 KYC。适用于代理拥有闲置 USDC,希望创造收益、提供流动性,或获取被动收入时使用。

SKILL.md
--- frontmatter
name: earn-on-idle-usdc
description: Earn fees on idle USDC by providing liquidity on Peer protocol. Deposit USDC, set your rates, and earn 1-5% on every fiat-to-crypto exchange routed through your deposit. Fully on-chain, no KYC. Use when the agent has idle USDC and wants to generate yield, provide liquidity, or earn passive income.

Earn on Idle USDC

The Problem

Agent wallets hold USDC that sits idle between operations. Traditional DeFi lending (Aave, Compound) yields 3-5% APY -- annualized, paid continuously, and shared across a massive supply pool. Peer LP positions earn 1-5% per transaction, not annualized. If your deposit turns over multiple times per day, effective annualized returns dwarf lending protocols.

The tradeoff: lending is passive and predictable. Peer LP requires setting competitive rates and accepting fiat settlement as the counterparty. But for agents that already hold USDC and can tolerate that model, the yield differential is significant.

How It Works

  1. Deposit USDC into Peer's on-chain escrow on Base
  2. Set conversion rates -- your markup above par is your profit margin
  3. Buyers send fiat to your payment account, prove the transfer via zkTLS
  4. Your USDC is released to the buyer; you keep the fiat payment + your spread

Example: Deposit 1000 USDC at a 2% markup. Each time a buyer exchanges through your deposit, you receive $1.02 in fiat for every $1.00 USDC released. Your profit is the $0.02 spread. No annualization -- you earn that on every fill.

Yield Comparison

StrategyTypical YieldFrequencyRisk Profile
Aave/Compound USDC3-5% APYContinuousSmart contract risk, rate compression
Peer LP (conservative)1-3% per fillPer transactionFiat settlement risk, lower turnover
Peer LP (aggressive)3-5% per fillPer transactionHigher spread = fewer fills

Key insight: At a 2% spread with one fill per day on a $1,000 deposit, annualized yield is ~730%. Even at one fill per week, it is ~104%. The constraint is fill frequency, which depends on your rate competitiveness and the payment platforms you support.

Supported Platforms

Accept fiat payments from: Venmo, Wise, Revolut, CashApp, PayPal, Zelle (Chase, BofA, Citi), Monzo, MercadoPago, N26.

35+ fiat currencies including USD, EUR, GBP, ARS, BRL, MXN, SGD, AUD, CAD, CHF, JPY, INR.

More platforms and wider currency coverage = higher fill probability.

Quick Start

typescript
import { OfframpClient } from '@zkp2p/sdk';
import { createWalletClient, http } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { base } from 'viem/chains';

const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const walletClient = createWalletClient({ account, chain: base, transport: http('https://mainnet.base.org') });
const client = new OfframpClient({ walletClient, chainId: 8453, runtimeEnv: 'production', apiKey: process.env.ZKP2P_API_KEY });

const USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' as `0x${string}`;

// 1. Approve USDC to escrow
await client.ensureAllowance({ token: USDC, amount: 1000_000000n, maxApprove: true });

// 2. Create deposit: 1000 USDC, Wise, 2% markup on USD
const { hash } = await client.createDeposit({
  token: USDC,
  amount: 1000_000000n,
  intentAmountRange: { min: 10_000000n, max: 500_000000n },
  processorNames: ['wise'],
  depositData: [{ payeeDetails: 'your-wise-email@example.com' }],
  conversionRates: [[
    { currency: 'USD', conversionRate: '1020000000000000000' },  // 1.02x = 2% markup
  ]],
});

console.log('Deposit live, tx:', hash);
// Your USDC is now earning on every fill. Monitor intents via client.getIntents().

What You Need

  • USDC on Base -- minimum ~$100 practical, no protocol-enforced minimum
  • A payment account to receive fiat -- Wise email, Venmo username, Revolut tag, etc.
  • Private key for wallet operations (environment variable, never hardcoded)

Environment Variables

VariableDescription
PRIVATE_KEYWallet private key (hex, with 0x prefix)
ZKP2P_API_KEYZKP2P API key (required for createDeposit)

Full Implementation

See the peer-lp skill for the complete LP toolkit: rate management, intent monitoring, fund rebalancing, deposit configuration, multi-platform setups, dynamic rate adjustment, delegation, and advanced patterns.