Payments that earn until they settle.
Money comes in, earns while it waits, and goes out in seconds. Payouts, collections and escrow from one balance, through one API.
Two products. One balance.
Money that waits earns yield. Money that moves goes out in seconds. Both run from the same balance, through one API.
Yield as a Service
Earn on every balance.
Put your operating float to work, or offer yield to your customers inside your own app.
- Treasury float
- Customer earn accounts
- Liquidity floor
- No lock-up
Payments
Move money in seconds.
Pay out, collect and hold funds in escrow, straight from the balance that earns.
- Payouts
- Collections
- Escrow
- Partner mode
Platform
Every dollar at work until the second it moves.
Treasury, payments and controls in one place, so finance sees what earned, what moved and what's waiting.
Set a liquidity floor. Everything above it earns, and all of it stays withdrawable.
Payouts from the balance that earns. Every recipient and corridor in one view.
Every step, timestamped. From received to settled to the bank.
Every payment is screened. You sign it before anything moves.
One SDK, one API key. RebelFi plans it, your custody signs it.
Anywhere money waits, it can earn.
Built for businesses whose money spends time in between: before a payout, across a trade, or sitting in customer accounts.
Security
Your keys. Your custody. Nothing moves until you sign.
You hold the keys
RebelFi prepares each transaction and your custody signs it. We never hold a key that can move your money.
Scoped API keys
Profile keys act only inside their wallet profile. Admin keys read across the organization and can never move funds.
Verified counterparties
Every recipient passes KYB before an on-ramp or off-ramp account opens for them.
A record of every step
Each operation and transaction has its own ID and status, and ramp activity exports to CSV for finance.
Developers
Built for developers and the software they ship.
- TypeScript SDK
npm install @rebelfi/sdk, with typed clients for venues, operations, earnings and ramps. - REST APIOne API key in the
x-api-keyheader, onapi.rebelfi.io/v1. - You signRebelFi returns unsigned transactions. Your custody signs and broadcasts them.
- SandboxRun the full flow, KYB to payout, without real funds.
import { RebelfiClient } from '@rebelfi/sdk'; const client = new RebelfiClient({ apiKey: process.env.REBELFI_API_KEY }); // 1. Discover where float can earnconst { venues } = await client.venues.list({ blockchain: 'solana', token: 'USDC',});const strategy = venues[0].strategies[0]; // 2. Plan a supply. RebelFi returns unsigned transactions.const op = await client.operations.supply({ walletId: 42, strategyId: strategy.strategyId, amount: '2500000000000', // 2.5M USDC in base units tokenAddress: strategy.tokenAddress,}); // 3. Sign in your own custody, then report the hashfor (const tx of op.transactions) { const txHash = await yourCustody.signAndBroadcast(tx.unsignedTransaction); await client.transactions.submitHash({ operationId: op.operationId, txHash, });}
// 1. Add a recipient. KYB starts automatically.const recipient = await client.ramp.createRecipient({ name: 'OnEdge', type: 'business', externalId: 'ref-123',}); // 2. On customer.approved, open an off-ramp accountconst { id } = recipient;const account = await client.ramp.createRecipientOfframpAccount(id, { orgWalletId: 42, bankDetails: { routingNumber: '021000021', accountNumber: '987654321', accountType: 'checking', accountHolderName: 'OnEdge Inc', bankName: 'Chase Bank', },}); // 3. Send USDC to the account's deposit address. USD lands by ACH.
curl -X POST https://api.rebelfi.io/v1/operations/supply \ -H "x-api-key: $REBELFI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "walletId": 42, "strategyId": 1, "amount": "2500000000000", "tokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" }' # 202 → { "operationId": 123, "status": "AWAITING_SIGNATURE", ... }
From the blog
Notes on float, yield and settlement.
Put your balance to work.
Tell us about your business and what you want to build.