Skip to main content
Digital wallets holding stablecoin balances can use RebelFi to automatically generate yield on idle funds while maintaining full custody and instant liquidity for user withdrawals.

The Opportunity

Most digital wallets hold significant stablecoin balances that sit idle:
  • User deposits awaiting transactions
  • Float between deposit and withdrawal
  • Treasury reserves and operational buffers
With RebelFi, these idle balances can earn yield while remaining instantly available for withdrawals.

Business Models

  • Spread Capture
  • Premium Feature
  • Loyalty Program
Model: Keep a portion of yield as revenue
  • Deploy funds earning ~6-8% APY
  • Pay users 4-5% APY
  • Capture 2-3% spread as profit
Example Economics:
  • $10M in user deposits
  • Earn 7% = $700k/year
  • Pay users 5% = $500k/year
  • Wallet profit: $200k/year

Implementation Pattern

Architecture for Wallets

User Deposits (USDC/USDT)

Wallet Omnibus Account (Your Custody)

RebelFi Monitoring & Optimization

Yield Protocols (Earning 6-8% APY)

Yield Distribution to Users

Technical Integration

1

Omnibus Wallet Setup

Configure a master wallet for all user deposits:
// Add omnibus wallet to RebelFi
const wallet = await rebelfi.wallets.create({
  address: omnibusWallet.address,
  blockchain: 'solana',
  label: 'User Deposits Omnibus',
  custody: 'fireblocks'
});

// Enable monitoring with buffer
await rebelfi.wallets.enableMonitoring(wallet.id, {
  enableYield: true,
  bufferAmount: '100000.00', // $100k for withdrawals
  token: 'USDC'
});
2

Auto-Deploy Excess Funds

RebelFi automatically deploys funds above the buffer:
// Runs automatically, but can also be triggered manually
async function handleUserDeposit(userId, amount) {
  // Credit user balance in your database
  await db.userBalances.credit(userId, amount);

  // RebelFi automatically detects balance increase
  // and creates supply operation for funds above buffer

  // Optional: Track allocation
  const allocations = await rebelfi.allocations.list();
  console.log('Total deployed:', allocations.portfolioSummary.totalDeployed);
}
3

Handle Withdrawals

Maintain instant liquidity with buffer management:
async function handleUserWithdrawal(userId, amount) {
  // Check buffer availability
  const wallet = await rebelfi.wallets.get(omnibusWalletId);

  if (wallet.availableBalance >= amount) {
    // Sufficient buffer - process withdrawal immediately
    await processWithdrawal(userId, amount);
  } else {
    // Need to unwind allocation
    const shortfall = amount - wallet.availableBalance;

    // Create disburse operation
    await rebelfi.operations.createDisburse({
      managedWalletId: wallet.id,
      amount: shortfall,
      asset: 'USDC'
    });

    // Wait for operation to complete
    await waitForLiquidity(wallet.id, amount);

    // Process withdrawal
    await processWithdrawal(userId, amount);
  }
}
4

Distribute Yield

Credit users with their portion of yield:
// Run daily or weekly
async function distributeYield() {
  const allocations = await rebelfi.allocations.list();

  // Calculate total yield earned
  const totalYield = allocations.reduce((sum, alloc) =>
    sum + parseFloat(alloc.yieldEarned), 0
  );

  // Get all user balances
  const users = await db.userBalances.getAll();
  const totalUserBalance = users.reduce((sum, u) => sum + u.balance, 0);

  // Distribute yield proportionally
  for (const user of users) {
    const userShare = (user.balance / totalUserBalance) * totalYield * 0.70; // 70% to users, 30% to wallet
    await db.userBalances.credit(user.id, userShare, 'yield');
  }
}

User Experience Options

Option 1: Automatic Yield (Transparent)

All balances automatically earn yield:
// User sees growing balance in real-time
{
  "balance": "1,043.27 USDC",
  "yieldEarned": "+43.27 USDC (4.5% APY)",
  "lastUpdated": "2 minutes ago"
}
Pros: Simplest UX, no user action required Cons: Can’t offer tiered yield based on commitment

Option 2: Savings Account (Explicit)

Users opt into a “Savings” account for yield:
// User has two account types
{
  "checking": {
    "balance": "500.00 USDC",
    "yield": "0%"
  },
  "savings": {
    "balance": "2,500.00 USDC",
    "yield": "5.2% APY",
    "earned": "+108.00 USDC"
  }
}
Pros: Clear value proposition, upsell opportunity Cons: Requires user action, split liquidity

Option 3: Tiered Yield (Gamified)

Different yield rates based on balance or commitment:
{
  "balance": "10,000 USDC",
  "tier": "Gold",
  "currentAPY": "6.0%",
  "nextTier": {
    "name": "Platinum",
    "threshold": "25,000 USDC",
    "apy": "7.0%"
  }
}
Pros: Incentivizes larger deposits, engagement Cons: More complex to manage

Revenue Model Examples

Example 1: Spread Model

Wallet TVL: $50M in stablecoins
Gross Yield: 7% = $3.5M/year
User Payout: 5% = $2.5M/year
───────────────────────────────
Wallet Revenue: $1M/year profit

Example 2: Premium Subscription

Free Users: 100k users, $10M TVL, 3% yield to users
Premium Users: 10k users, $15M TVL, 5% yield to users
Premium Fee: $9.99/month

Subscription Revenue: $1.2M/year
Yield Revenue (spread): $500k/year
───────────────────────────────
Total Revenue: $1.7M/year

Compliance Considerations

  • User funds remain in your custody
  • Existing KYC/AML processes apply
  • No change to regulatory status
  • Clear user disclosures about yield generation
Recommended disclosures:
  • Funds are deployed to DeFi protocols
  • Yield rates are variable, not guaranteed
  • Withdrawals remain instant (via buffer)
  • You maintain custody at all times
Track yield distribution:
  • Daily yield accrual calculations
  • User-level yield attribution
  • Tax reporting (1099-MISC for US users)
  • Audit trail via RebelFi’s ledger

Implementation Timeline

Week 1-2: Integration

  • Set up RebelFi account
  • Configure omnibus wallet
  • Deploy custody agent
  • Test with small amounts

Week 3: Internal Testing

  • Test deposit → yield deployment flow
  • Test withdrawal → unwind flow
  • Verify yield calculations
  • Load testing with buffers

Week 4: Pilot Launch

  • Launch to subset of users (opt-in beta)
  • Monitor operations and allocations
  • Gather user feedback
  • Optimize buffer settings

Week 5+: Full Rollout

  • Gradual rollout to all users
  • Marketing campaign
  • Monitor performance and optimize

Success Metrics

Track these KPIs:
  • TVL (Total Value Locked): Total user funds deployed
  • Yield Generated: Total yield earned from protocols
  • User Yield Distributed: Amount paid to users
  • Revenue (Spread): Your profit from yield spread
  • Buffer Efficiency: % of funds deployed vs idle
  • Withdrawal Latency: Time from withdrawal request to settlement

Example: Neobank Implementation

Use Case: Digital bank with $100M in USDC deposits Configuration:
{
  omnibusWalletId: 123,
  totalDeposits: "100,000,000",
  buffer: "5,000,000", // 5% buffer for instant withdrawals
  deployable: "95,000,000", // 95% to yield
  targetAPY: "7%",
  userAPY: "5%",
  spread: "2%"
}
Projected Economics:
Deployed: $95M
Earn 7% = $6.65M/year
Pay users 5% on $100M = $5M/year
───────────────────────────────
Bank profit: $1.65M/year
Buffer Management:
  • $5M buffer handles ~95% of withdrawal days
  • For large withdrawal days, unwind operations in 1-2 minutes
  • Average withdrawal delay: < 30 seconds

Next Steps