Skip to main content
Digital Asset-Backed Borrowing is a Circle Mint offering that lets you post cirBTC as collateral to a pre-approved lending market on Arc or Ethereum and borrow USDC against it. Circle handles all onchain operations for you. You never sign a transaction, and gas is sponsored. For a walkthrough, see Borrow USDC against cirBTC collateral.
Digital Asset-Backed Borrowing is not available in New York.

The wallet

As a Mint customer entity, you get one modular smart contract account (MSCA) per supported blockchain: Arc and Ethereum, powered by Circle Wallets. Each MSCA holds your cirBTC collateral for the duration of loans on that blockchain. The MSCA has two owners with a signature threshold of one:
  • Circle-managed ECDSA co-signer: an ECDSA key that Circle holds through its multiparty computation (MPC) custody. This is the active signer for every UserOperation your wallet executes. Circle uses this key to build, sign, and submit onchain transactions on your behalf.
  • Your passkey: a WebAuthn P-256 credential you register during wallet creation. This owner is dormant. Circle never uses it to sign routine operations. It exists as an independent recovery owner that Circle cannot exercise on your behalf.
You never sign a blockchain transaction. All routine signing is performed server-side by the Circle co-signer. Gas is sponsored by Circle’s paymaster, so there is no native-token balance for you to fund or monitor. You can add additional passkey owners to the MSCA after wallet creation by calling POST /v1/borrow/wallets/owners. See How-to: Add another wallet owner.

The lending market

Borrows are executed onchain in pre-approved lending markets curated by Circle: These markets don’t underwrite borrowers or set limits per customer. The amount you can borrow is capped by the value of the cirBTC collateral you post, not by a pre-approved credit line. Circle is not the lender. The USDC you borrow comes from other lenders who have supplied liquidity to the market. Interest accrues at the market’s variable borrow rate. Call GET /v1/borrow/markets for live rates and LTV parameters.

The asynchronous job model

Every write endpoint is asynchronous. When you call POST /v1/borrow/loans to borrow, POST /v1/borrow/loans/{id}/repayments to repay, or any other write, Circle responds with a job rather than the loan or repayment directly. The job tracks the asynchronous operation Circle executes on your behalf. Your integration code polls the job to observe progress. The job progresses through a series of states until it reaches a terminal state that tells you whether the operation succeeded or failed. All asynchronous writes share the same state machine, so once you understand the job lifecycle for one operation, you understand it for all of them.

Job types

The jobType field on a job tells you which operation the job represents.

Job states

The status field on a job progresses through the states below.

Job workflow

This diagram shows how a job can move between states.

Polling a job

Call GET /v1/borrow/jobs/{id} to fetch the current state of a job. Poll until status reaches a terminal state (completed, failed, or approval_rejected). To list all jobs for your entity, call GET /v1/borrow/jobs. Filter by status or jobType to narrow the results.

Loan states

A loan represents one borrow position against one lending market. The status field on a loan reflects its current state.

LTV, health factor, and liquidation

A borrow position’s safety is measured by two ratios that Circle monitors continuously against onchain state. Loan-to-value ratio (LTV) is the ratio of your outstanding debt to the current value of your collateral, denominated in the borrowed asset. If you borrow 3,000 USDC against cirBTC worth 10,000 USDC (per the market oracle), your LTV is 0.30. LTV rises as your debt accrues interest, as the oracle price of cirBTC falls, or both. Health factor is the inverse safety measure. It equals LLTV / LTV, where LLTV is the lending market’s liquidation threshold. A health factor of 1.0 means the position is at the liquidation boundary. Above 1.0, the position is safe. Below 1.0, a third-party liquidator can repay part of the debt and seize collateral to bring the position back in line. The Morpho market’s LLTV is the protocol’s liquidation threshold. Circle enforces a stricter maxOriginationLtv at borrow creation. This is the highest LTV Circle allows for new borrows, set below LLTV to leave a safety buffer against short-term oracle price movement. Both values are returned on each market in GET /v1/borrow/markets.

Margin call notifications

Circle monitors your position’s health factor and sends the account administrator an email when your LTV reaches 90% of the market’s LLTV. Respond by:

Liquidations and residual sweeps

Liquidations happen onchain and are executed by third-party liquidators (usually MEV bots watching the market). Circle detects the liquidation by polling the onchain position and updates the loan’s status to liquidated. A full liquidation may leave residual cirBTC in the MSCA if the liquidator only needed part of the collateral to cover the debt. Circle detects the residual and automatically creates a withdraw_residual job to sweep it back to your Mint balance. You do not need to trigger the sweep yourself in the normal flow. The POST /v1/borrow/loans/{id}/residual-sweep endpoint exists as a manual retry for the rare case where the automatic sweep job fails. The OnchainLoan schema exposes liquidation-related fields for reference:
  • liquidationDetectedAt: when Circle first detected the liquidation onchain.
  • liquidatedDebtAmount: amount of debt the liquidator repaid.
  • liquidatedCollateralSeized: amount of cirBTC the liquidator seized.
  • liquidationOraclePrice: oracle price of cirBTC at liquidation.

Oracle drift

Circle uses the same onchain oracle the lending market uses to price collateral. Oracle prices move continuously, so a position that is safe at one moment can move closer to (or past) the liquidation boundary as the oracle updates. This is why maxOriginationLtv is stricter than LLTV, and why the margin call fires well before 1.00.

Currency codes and token symbols

Responses use two different string representations for the same asset across different fields, and it’s easy to confuse them.
  • Circle currency code: uppercase codes like USD or CIRBTC. Used in the asset, borrowAsset, and collateralAsset fields to identify an amount’s underlying currency. The currency code is Mint’s canonical identifier for the asset.
  • Token symbol: mixed-case symbols like USDC or cirBTC. Used as keys in the depositAddresses map on your wallet to identify which token an onchain address expects.
For example, borrowAsset: "USD" on a loan means you borrowed USDC. The corresponding token symbol USDC appears as a key under wallet.depositAddresses if you need the onchain address that receives your borrowed USDC.