Borrow

Borrow against your stocks for capital efficiency.

Borrow posts any Flo token as collateral and disburses a stablecoin accepted on the chosen chain (per the live chains catalog) instantly. No sale of the underlying, no taxable disposal, no credit check, just transparent LTV and an onchain repayment schedule.

SDK · Borrow

The full Borrow spec lives in the docs

Open or top up via borrow(); pay down or close via repay(); rate tables; the three-margin model and liquidation state machine; the developer-fee object for origination revenue. Python and Node.js tabs, copy-ready.

Open the Borrow reference

How borrowing works

Three stages, one SDK call. No manual underwriting. Repay whenever, positions are open-term.

01

Post collateral

One POST call with the Flo token you're pledging and the USDC amount you want. Flo escrows the collateral into the borrow vault held by Flo Capital SPC.

02

Initial-margin check & async disbursement

If the requested amount keeps LTV at or below the asset's initial margin, the call submits one on-chain tx that atomically locks the collateral and creates an on-chain order_id. Stablecoin is disbursed to the destination wallet via settle(order_id) in a separate tx once the pool-side leg confirms — subject to available pool liquidity. No manual underwriting.

03

Repay anytime

repay() pays down any amount; omit the amount to fully repay and close the position. Collateral is released pro rata in the same settle tx.

What you get with every borrow

Overcollateralized, transparent, composable. No manual underwriting and no credit checks.

💵

Instant stablecoin, no sale

Post tokenized stock as collateral, receive a stablecoin accepted on the disbursement chain (per the live chains catalog) in one transaction. No disposal of the underlying, no taxable event in most jurisdictions.

📊

Overcollateralized, transparent LTV

Every borrow is backed by ≥125% collateral. LTV is set per asset class and published live. Partial liquidations protect your position from being fully wiped.

💡

Tax-efficient capital

Unlock liquidity from appreciated positions without realizing gains. Used by founders, treasuries, and long-holders who want to stay long and stay liquid.

🛡️

Continuous margin alerts

Subscribe to borrow.maintenance_breach (re-fires every 30 minutes while in breach) and borrow.liquidation_imminent (every 5 minutes within 100 bps of the liquidation margin). No grace window — you monitor and act on the alerts.

🔁

ERC-20 composable debt receipts

Your borrow position is represented as an ERC-20 debt token. Use it in vaults, recurring repayment agents, or your own account abstraction setup.

💰

Origination fee collection

Pass developer_fee on any borrow to charge an origination fee, percentage (amount_bps), flat USD (amount_flat_usd), or both. Flo settles daily to your wallet in USDC.

Margins by asset class

Initial margin is the LTV ceiling at origination. Maintenance margin is where automated alerts begin firing. Liquidation margin is where keepers auto-close. All three are published live in the SDK rates feed; see the Borrow reference in the developer hub.

Asset ClassExamplesInitial marginMaintenance marginLiquidation margin
Large-cap equitiesAAPL, NVDA, MSFT70%75%78%
Blue-chip ETFsSPY, QQQ, VTI75%79%82%

Liquidation mechanics

Borrowing is not risk-free. Here's exactly what happens when a position approaches the liquidation threshold.

Three margin tiers

Each asset class publishes initial / maintenance / liquidation LTVs. Open at or below initial. Cross maintenance and the maintenance_breach webhook starts firing every 30 minutes. Cross within 100 bps of liquidation and liquidation_imminent fires every 5 minutes. Cross liquidation and keepers auto-close.

Trigger

Liquidation triggers when LTV crosses the asset-class liquidation margin against a 30-second TWAP, not a single tick. The TWAP is keeper-layer flash-crash protection — it is not a grace period. There is no defined grace window; the borrower monitors the alerts and acts before the liquidation threshold is crossed.

Partial liquidations

Liquidators can only close 50% of the position at a time. This protects borrowers from total wipeouts on temporary price dislocations.

Penalty split

5% flat penalty on the closed notional, split 50/50: half to the liquidation insurance fund (absorbs shortfalls, protects the supplier pool from bad-debt drawdown), half to the liquidator as incentive. Neither half hits Flo's P&L.

Unlock capital without selling

Grab an SDK key, post any Flo token as collateral, and call client.borrow(). The collateral lock and on-chain order_id are atomic; USDC lands in your wallet via settle(order_id) once the pool-side leg confirms.