Skip to main content
Terminology: Wallets monitored for yield are called Operational Wallets (or OpWallets). The API endpoint /wallets/monitored and response fields like monitoredWallets use “monitored” for historical reasons, but these terms are interchangeable. See the Glossary for complete definitions.

Wallet Endpoints

Manage organization wallets and configure yield monitoring.

GET /api/core/wallets

List all wallets for your organization. Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Response:
{
  "success": true,
  "data": [
    {
      "id": 123,
      "address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
      "blockchain": "solana",
      "label": "Treasury Wallet",
      "custodyProvider": "fireblocks",
      "createdAt": "2025-10-23T14:00:00Z"
    }
  ]
}

GET /api/core/wallets/monitored

Get operational wallets (wallets monitored for yield optimization). Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Response:
{
  "success": true,
  "data": [
    {
      "id": 456,
      "orgWalletId": 123,
      "address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
      "blockchain": "solana",
      "enableYield": true,
      "bufferAmount": "5000.00",
      "token": "USDC",
      "availableBalance": "12500.00",
      "reservedBalance": "0.00",
      "deployedBalance": "7500.00",
      "totalBalance": "20000.00"
    }
  ]
}

GET /api/core/wallets/stats

Get wallet statistics for your organization. Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Response:
{
  "success": true,
  "data": {
    "totalWallets": 5,
    "monitoredWallets": 3,
    "totalBalance": "250000.00",
    "deployedBalance": "175000.00",
    "availableBalance": "75000.00",
    "yieldEarned": "8432.17"
  }
}

POST /api/core/wallets/add-and-monitor

Add a wallet and enable monitoring for yield optimization. Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Request Body:
{
  "orgWalletId": 123,
  "enableYield": true,
  "bufferAmount": "5000.00",
  "metadata": {
    "purpose": "treasury",
    "department": "finance"
  }
}
Response:
{
  "success": true,
  "data": {
    "id": 456,
    "orgWalletId": 123,
    "enableYield": true,
    "bufferAmount": "5000.00",
    "createdAt": "2025-10-23T14:00:00Z"
  }
}
The bufferAmount is the minimum balance to keep liquid (not deployed to yield). Funds above this amount will be automatically optimized.

PUT /api/core/wallets/:id

Update wallet label. Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Request Body:
{
  "label": "Updated Treasury Wallet"
}
Response:
{
  "success": true,
  "data": {
    "id": 123,
    "label": "Updated Treasury Wallet",
    "updatedAt": "2025-10-23T14:30:00Z"
  }
}

PUT /api/core/wallets/monitored/:id/buffer-settings

Update buffer settings for an operational wallet. Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
Request Body:
{
  "enableYield": true,
  "bufferAmount": "10000.00"
}
Response:
{
  "success": true,
  "data": {
    "id": 456,
    "enableYield": true,
    "bufferAmount": "10000.00",
    "updatedAt": "2025-10-23T14:30:00Z"
  }
}
Changing the buffer amount will trigger rebalancing. If you lower the buffer, excess funds may be deployed to yield. If you raise it, allocations may be unwound to restore the buffer.

Example Usage

// Get monitored wallets
const response = await fetch('https://api.rebelfi.io/api/core/wallets/monitored', {
  headers: { 'Authorization': `Bearer ${accessToken}` }
});

const { data } = await response.json();
console.log('Monitored wallets:', data);

// Add and monitor a new wallet
const addResponse = await fetch('https://api.rebelfi.io/api/core/wallets/add-and-monitor', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    orgWalletId: 123,
    enableYield: true,
    bufferAmount: '5000.00',
    metadata: { purpose: 'treasury' }
  })
});

// Update buffer settings
const updateResponse = await fetch('https://api.rebelfi.io/api/core/wallets/monitored/456/buffer-settings', {
  method: 'PUT',
  headers: {
    'Authorization': `Bearer ${accessToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    enableYield: true,
    bufferAmount: '10000.00'
  })
});

Buffer Management

The buffer amount determines how much liquidity to maintain for operational needs:
  • Automatic Deployment: Funds above buffer → automatically deployed to yield
  • Instant Liquidity: Buffer always available for immediate withdrawals
  • Dynamic Adjustment: Changing buffer triggers automatic rebalancing
Wallet TypeRecommended BufferRationale
Treasury5-10% of totalLow withdrawal frequency
Operational20-30% of totalRegular transactions
User Deposits5-15% of totalBased on withdrawal patterns
Payment Processing10-20% of totalSettlement cycles
Monitor your withdrawal patterns for 1-2 weeks, then set buffer to 1.5x your peak daily withdrawal volume for safety.

Data Types

This API uses standard data types for consistency across all endpoints: See the complete Data Types Reference for details.