Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.jup.ag/llms.txt

Use this file to discover all available pages before exploring further.

Offerbook is a peer-to-peer lending protocol on Solana built around fixed-term, time-based loans. Users borrow or lend USDC against onchain collateral, with no price oracles and no price-based liquidations. Loan duration is set by the user, between 1 and 30 days. This page covers the core concepts behind Offerbook: how loans work, what happens at each stage, and how risk is managed.

Key Terms

The onchain asset locked by the borrower for the duration of the loan. The lender can claim this asset if the loan is not repaid after maturity.Collateral can be any Solana asset (verified tokens on Jupiter, RWAs such as xStocks). NFTs will be supported after launch.
The liquidity provided by the lender and received by the borrower. On Offerbook, USDC is the only asset that can be borrowed or lent.
The ratio (in %) between the borrowed USDC amount and the collateral value. It represents how much liquidity is taken out compared to the value of the collateral locked.Example: If you lock $1,000 worth of collateral and set the LTV to 70%, you can borrow 700 USDC.
The fixed time period during which the collateral is locked and the loan is active. Loan duration is set when creating the offer (by the borrower for a borrow offer, or by the lender for a lend offer) and can range from 1 to 30 days. Common presets are 3D, 7D, and 30D.The countdown starts when the offer is accepted (the loan begins), not when the offer is published. Once the loan starts, the duration cannot be changed.
Published offers expire after a set period, separate from the loan duration:
  • Lend offers expire after 24 hours (fixed).
  • Borrow offers expire after 1, 3, or 7 days (set by the borrower at creation).
Once an offer expires, it can be renewed directly without recreating it from scratch.Offer expiration and loan duration are two separate timers. An offer can be accepted at any point within its expiration window; the loan duration then starts from that moment.
The annualized cost of borrowing, paid by the borrower. Fixed for the entire loan duration. Displayed when creating a borrow offer and in offer listings.
The annualized return for the lender. Fixed for the entire loan duration. Displayed when creating a lend offer.
The effective rate accounts for platform fees and is automatically displayed in the offer summary.Effective APR (borrower side) combines the offer APR with the 25% upfront fee on interest. Because the fee is paid in addition to the interest, the actual cost of the loan is higher than the headline APR.Example: an offer at 30% APR becomes 37.5% Effective APR (30% × 1.25).Effective APY (lender side) combines the offer APY with the 10% fee deducted at repayment. Because the fee is taken out of the interest received, the actual return is lower than the headline APY.Example: an offer at 5% APY becomes 4.5% Effective APY (5% × 0.9).
The point at which the loan duration ends. At maturity, the borrower should have repaid the loan (principal + interest). If not, the lender can claim the collateral.
When a loan is not repaid after maturity, the lender can claim the collateral by signing a transaction. This action triggers the collateral transfer: the collateral is sent directly to the lender (not sold on the market). The lender receives the collateral token itself.Unlike price-based liquidations in classical lending protocols, this event can only happen after maturity, never during the loan. A 0.1% fee is deducted from the collateral at transfer (no fee on NFT/RWA collateral).The transfer is not automatic. It only happens when the lender claims. The borrower can still repay and recover the collateral at any time, as long as the lender has not claimed it.
The offer creator (borrower or lender) can enable or disable partial fill:
  • Partial fill enabled: the offer can be accepted partially. The creator sets a Minimum Fill Amount in USD (e.g., $10, $25, $100), which is the minimum amount a counterparty can accept per transaction.
  • Partial fill disabled: the offer can only be filled in full by a single counterparty.
Partial fill is not available for offers using NFT collateral, since an NFT cannot be partially transferred.
A loan can have one of three statuses:
  • Active: the loan is running, between offer acceptance and maturity.
  • Repaid: the borrower has repaid the loan, the collateral has been returned to their wallet.
  • Defaulted: the loan has reached maturity without being repaid. The lender can claim the collateral.
A dedicated wallet, separate from your main Solana wallet, used to hold funds while interacting with Offerbook. Each user has one escrow wallet. All funds transit through the escrow when creating or accepting offers.For lenders: the escrow is visible in the interface. Lenders deposit USDC manually and can create multiple offers from the same balance.For borrowers: the escrow is used in the background. Collateral transits through the escrow automatically in a single transaction. When the borrower repays, collateral is returned directly to their wallet.

How Offerbook Loans Work

Offerbook loans are time-based, not price-based. This is the core difference with classical lending protocols. Once a loan starts:
  • Collateral is locked onchain for the full duration of the loan
  • Loan terms cannot be changed
  • No margin calls or price-based liquidations can occur before maturity
Borrowers can choose to repay the loan at any time. The full interest for the agreed duration is owed regardless of when the repayment occurs.
If the loan is not repaid by maturity, the lender can claim the entire collateral at any time by signing a transaction. The transfer is not automatic, but you cannot rely on any delay. Always plan to repay before the loan expires.
With time-based loans, risk management is shared between lenders and borrowers. The collateral value at maturity can be higher or lower (in USD terms) than the amount borrowed.

Common Use Cases

Offerbook is a single lending mechanic, but it can serve different intents depending on what the borrower wants to achieve. Two common patterns: Accessing liquidity against a held asset. A user holds an onchain asset and needs USDC for a short period. They lock the asset as collateral and borrow USDC, with the intent to repay the loan and recover the asset at maturity. The cost of the operation is the loan interest plus the 25% upfront fee on interest. Insurance (protecting against a price drop). The same borrow mechanic can be used to protect against a downside on an asset the user wants to keep exposure to. By borrowing USDC against the asset, the user receives liquidity now and decides at maturity whether to repay (recovering the asset) or not (keeping the USDC, which may be worth more than the depreciated asset). This pattern is surfaced as Insurance in the app interface. The protection is only effective if the asset’s value drops below the borrowed USDC amount (after fees) by maturity. If the price recovers or stays stable, the operation is a net cost. A detailed walkthrough of both patterns is available in the Overview page.
Insurance is not a separate product or a separate smart contract. It is the same loan mechanic described above, presented under a different label in the app to surface the use case. The offer creation flow, fees, and onchain behaviour are identical.

Loan Lifecycle

A loan on Offerbook follows a deterministic lifecycle.
1

Offer created

A borrower or lender publishes an offer in the offerbook with their desired terms (collateral, USDC amount, LTV, APR/APY, loan duration, partial fill settings). Lend offers are visible for 24 hours; borrow offers for 1, 3, or 7 days. Expired offers can be renewed without recreating them.
2

Offer accepted — Loan starts

A counterparty accepts the offer, partially or in full. The loan starts immediately. Collateral is locked onchain via a smart contract (a PDA, or Program Derived Address, which is a program-owned account on Solana with no private key). The loan duration begins at this moment.A calendar reminder can be added at this stage to track the loan’s maturity date. The reminder fires 2 hours before maturity.
3

Loan active

The loan runs for its full duration. Collateral cannot be accessed by either party. No price-based events can occur. The borrower can repay at any time.
4

Loan resolved

At maturity, the loan resolves in one of two ways:
  • Repaid: the borrower repays principal + full interest. Collateral is returned directly to the borrower’s wallet. Loan status: Repaid.
  • Not repaid: the lender can claim the collateral by signing a transaction (this triggers the collateral transfer). A 0.1% fee is deducted from the collateral (no fee on NFT/RWA). The borrower can still repay until the lender claims. Loan status: Defaulted.
If an offer expires without being accepted, it is automatically removed from the offerbook. No fees are charged.

Offers and Loans

Both borrowers and lenders can create offers. For each offer, the following terms are defined:
ParameterDescriptionConfigurable?
Collateral asset and amountThe onchain asset locked as securityYes
USDC amountThe liquidity borrowed or lentYes
LTVRatio between USDC amount and collateral value (in %)Yes (linked to USDC amount)
APR / APYCost of borrowing (APR) or return for lending (APY), annualizedYes
Loan durationTime period of the loan (starts at acceptance)Yes (1 to 30 days)
Allow partial fill + Minimum Fill AmountWhether partial acceptance is allowed and the minimum fill amount in USDYes (except NFT collateral)
Offer expirationHow long the offer stays visible (separate from loan duration)Lend: 24h fixed / Borrow: 1, 3, or 7 days
Together, these parameters determine an offer’s attractiveness. Matching occurs when the terms align with current market demand.

Oracles and Pricing

Offerbook does not use price oracles for loan execution. Loans are time-based with fixed terms, so there are no price-based liquidations or margin calls, and no onchain price tracking is required.
Prices shown in the interface are provided by Jupiter’s pricing API and are informational only. They help users estimate values such as LTV, but do not affect loan execution or outcomes.