Borrow against crypto without selling it.

Paste an address to compare what Aave, Spark, Compound, Morpho, Fluid, Euler and Moonwell would lend against it: rate, limit and liquidation price.

Estimates only. No wallet or signature needed.
USDC available to borrow$284,047,914
Protocols7
Networks6
Markets indexed329
Scroll to explore

Seven lending protocols, read directly

Independent of the lenders. Rates and positions come from their contracts and public data.

From comparison to loan

Seven lenders, one set of numbers, your choice of route.

Compare what each lender would give you

One address, seven protocols, six networks: each one's limit and rate, ranked. Coverage varies by asset.

Know the liquidation price before you borrow

Each option shows its yearly cost and the collateral price at which it would be liquidated, from the protocol's own limits and oracle.

Next: borrow and repay yourself

Open positions show each protocol's own health factor. Borrowing and repaying from your wallet is in testing.

How an estimate is read

Lookups sign nothing. See for yourself.

quote.ts
import { createPublicClient, http } from "viem";
import { mainnet } from "viem/chains";
import { POOL_ABI, UI_POOL_DATA_PROVIDER_ABI } from "./abis";

// A public client can only read: this lookup has no wallet, signer or sendTransaction.
const client = createPublicClient({ chain: mainnet, transport: http(process.env.RPC_URL_MAINNET) });

export async function quote(address: `0x${string}`) {
  // 1. Account-level limits, straight from the Aave v3 Pool contract.
  const [totalCollateralBase, totalDebtBase, availableBorrowsBase, currentLiquidationThreshold, ltv, healthFactor] =
    await client.readContract({ address: AAVE_POOL, abi: POOL_ABI, functionName: "getUserAccountData", args: [address] });

  // 2. Per-reserve balances and params in one multicall.
  const [reserves] = await client.readContract({
    address: UI_POOL_DATA_PROVIDER,
    abi: UI_POOL_DATA_PROVIDER_ABI,
    functionName: "getUserReservesData",
    args: [POOL_ADDRESSES_PROVIDER, address],
  });

  return {
    maxBorrowUsd: Number(availableBorrowsBase) / 1e8,
    healthFactor: Number(healthFactor) / 1e18,
    liquidationThreshold: Number(currentLiquidationThreshold) / 1e4,
    reserves,
  };
}

You sign every step

No wallet to browse. Loans need your OK

Read More →

No custody of keys or funds

Collateral goes to the lender, USDC to you

Read More →

Transparent data sources

Onchain reads and lender APIs, cached briefly

Read More →

Find out what your address can borrow

Estimates only. No wallet or sign-up.