Skip to main content
Get your first stablecoin allocation deployed and earning yield.

Supported Blockchains

BlockchainToken SupportStatus
SolanaUSDC, USDTLive
PolygonUSDC, USDTLive
EthereumUSDC, USDTLive
BaseUSDCLive
ArbitrumUSDC, USDTComing Soon

Prerequisites

Before you begin, ensure you have:
  • RebelFi account (Request demo to get started)
  • Custody solution or ability to sign transactions
Start with sandbox. We recommend testing your integration in our sandbox environment first, then switching to production when ready.

Step 1: Dashboard Setup (3 minutes)

No-Code Option Available: RebelFi’s dashboard provides a complete interface for managing wallets, operations, and yield without writing any code. Perfect for getting started before migrating to API-based automation.

Create Your Account & Create a Wallet Profile

Wallet Profiles are how you group and configure SDK-managed wallets. You must create a profile before you can generate an SDK API key.
1

Navigate to Wallet Profiles

Go to Settings → Wallet Profiles in the dashboard
2

Create a Profile

Click Create Profile and configure:
  • Name — a descriptive label (e.g., “Customer Wallets”, “Treasury Ops”)
  • Enabled Chains — select which blockchains wallets in this profile can use
  • Operation Timeout — how long before unsigned operations expire (default: 120s)
  • Gas Sponsorship — optionally specify a gas sponsor wallet address
3

Save Your Profile

Click Save. Your profile is now ready to link to an API key.

Generate API Key

1

Navigate to API Keys

Go to Settings → API Keys in the dashboard
2

Generate New Key

Click Generate API Key, provide a descriptive name, and select the Wallet Profile you created above. API keys must be linked to a profile.
3

Save Your Key

Copy and securely store your API key. It will only be shown once.
# Store in environment variable
export REBELFI_API_KEY="rfk_prod_xxxxxxxxxxxxx"
Treat API keys like passwords. Never commit them to version control or share them publicly.

Step 2: Register Your First Wallet (3 minutes)

Wallets are registered via the SDK and automatically associated with the Wallet Profile linked to your API key.
import { RebelfiClient } from '@rebelfi/sdk';

const client = new RebelfiClient({
  apiKey: process.env.REBELFI_API_KEY
});

const wallet = await client.wallets.register({
  walletAddress: '0xYourEthereumAddress', // or Solana address
  blockchain: 'ethereum',                  // 'ethereum', 'polygon', 'base', or 'solana'
  userId: 'your-internal-user-id'           // optional: link to your user record
});

console.log('Wallet registered:', wallet.walletId);
Registration is idempotent — calling it again with the same address returns the existing wallet.
The blockchain must be enabled in your Wallet Profile’s enabledChains configuration. If registration fails with a 403, check that the chain is enabled.
Use the wallet address from your key management system (Fireblocks, BitGo, hardware wallet, etc.).

Step 3: Deploy Your First Allocation (2 minutes)

Now that your wallet is registered, let’s deploy funds to yield!

Option A: Deploy via SDK

The SDK’s plan → sign → submit flow:
// 1. Find a strategy
const { venues } = await client.venues.list({ blockchain: 'ethereum', token: 'USDC' });
const strategy = venues[0].strategies[0];

// 2. Plan the supply operation (returns unsigned transactions)
const operation = await client.operations.supply({
  walletAddress: wallet.walletAddress,
  strategyId: strategy.strategyId,
  amount: '1000000000',  // 1000 USDC (6 decimals)
  tokenAddress: strategy.tokenAddress
});

// 3. Sign the transaction with your key management system
const signedTx = await yourKeyManager.sign(operation.transactions[0].unsignedTransaction);

// 4. Submit — either provide the hash after you broadcast...
const txHash = await yourKeyManager.broadcast(signedTx);
await client.transactions.submitHash({ operationId: operation.operationId, txHash });

// ...or let RebelFi broadcast for you
await client.transactions.submitSigned({
  operationId: operation.operationId,
  signedTransaction: signedTxBase64
});

Option B: Deploy via REST API

curl -X POST "https://api.rebelfi.io/v1/operations/supply" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "walletAddress": "YourWalletAddress...",
    "strategyId": 1,
    "amount": "500000000",
    "tokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
  }'

Step 4: Verify & Monitor

Your allocation should complete within 1-2 minutes (depending on blockchain confirmation times).

Check Allocation Status

In your RebelFi dashboard:
  • Wallets tab shows current balances (available, deployed)
  • Operations tab shows operation history
  • Allocations tab shows active yield positions
Or via API:
curl "https://api.rebelfi.io/v1/allocations?walletAddress=YourWalletAddress..." \
  -H "x-api-key: YOUR_API_KEY"
Yield accrues in real-time. Check your allocation details to see current value and earnings.

What You’ve Accomplished

Created your RebelFi account and generated API keys
Connected your custody wallet and enabled monitoring
Created and deployed your first yield-earning allocation
Set up real-time tracking of operations and allocations

Next Steps

Wallet Profiles

Configure chains, timeouts, and gas sponsorship for your profile

API Documentation

Explore the complete API reference

Use Case Examples

See how other companies integrate RebelFi

Understanding Operations

Learn about the operation lifecycle and architecture

Troubleshooting

Check:
  • The blockchain you are registering is in your Wallet Profile’s enabledChains
  • The Wallet Profile linked to your API key is enabled (not disabled or deleted)
Check:
  • Wallet has enough funds for the amount requested
  • Funds are not already reserved by another operation (cancel it first)
  • Token balance is for the correct asset (USDC, etc.)
Cause: Unsigned transactions expire (Solana: ~15s, EVM: ~60s before stale refresh).Solution: Call GET /v1/operations/:id/unsigned-transactions to get a fresh set of unsigned transactions, then sign and submit immediately.
Possible causes:
  • Transaction hash was submitted but the transaction failed on-chain
  • Blockchain congestion
Solution: Check the blockchain explorer for the submitted txHash. If the transaction is lost, use POST /v1/transactions/:operationId/recover to re-associate a found txHash.

Need Help?