Fixed-rate credit on Solana

The rate is a price

Most crypto lending pools change your rate all the time. You never know what you will earn next month. Zorya is simpler: you agree today on a price, an amount, and a calendar date. If you lend, you buy a Claim, the right to collect 1 USDC on that date, at a discount. If you borrow, you post collateral such as wSOL and promise to repay that same 1 USDC. On the date, 1 Claim pays 1 USDC.

Why this protocol exists

Know what you earn

On a variable pool the rate can move every few seconds. You deposit at one number and wake up at another. Zorya does not reprice you. You lock a price today and collect a known amount on a known date, the way a bill has a face and a due date.

On the desk

Each listing is one kind of collateral against USDC, and one calendar date. The borrowing cap is a share of that collateral's value: 70% for wSOL and JitoSOL, 65% for cbBTC. The desk opens with these three pairs and three dates. The program can list more later. Each new pair is its own isolated market, with the same Claims and the same book.

wSOL / USDC

70% LLTV

Dec 2026

Open

Mar 2027

Open

Jun 2027

Open

JitoSOL / USDC

70% LLTV

Dec 2026

Open

Mar 2027

Open

Jun 2027

Open

cbBTC / USDC

65% LLTV

Dec 2026

Open

Mar 2027

Open

Jun 2027

Open

A loan in four moves

You do not wait for a bot to find a match. A lender first locks real USDC into a quote. A borrower then takes that quote. The program checks the price, that the dollars are really there, the live collateral price, and that the borrower is still within the cap. Then it pays both sides at once. If you see it in the book, the money is already in the program.

Worked example · wSOL / USDC · 31 Dec 2026 · tick 256 · pay 50 · face 100 USDC

Lender

Buys the Claim

Escrow

Program holds USDC

Borrower

Sells the Obligation

50USDC
10wSOL
100Claim
100Obligation
100USDC

01·50 USDC move from the lender into the program.

Pay a price today

The book does not speak in yearly percentages. It speaks in ticks, which are price levels. Pick a tick and you already know the deal: how much you pay today, how much comes back on the date, and what you keep in between. The program stores the tick and the calendar date. The APR on this page is only a translation, so the number feels familiar. It is never sent on-chain.

Display only. The program stores the tick, not this APR.

Today… to 31 Dec 2026Maturity
ClaimZero-coupon · face 100 USDC

50.0

USDC you pay today to own this Claim

Paid now 50.0Discount 50.0 = yield

Pay 50.0 now. Collect 100 later.

Price P

0.5000

Yield to date

100.00%

Display APR

…

A public Curve

The book is where you trade. The Curve is the public record of those trades. For each pair it stores, on-chain, the last price paid, how much return is left until the date, and how much face has printed, for every calendar tenor. Anyone can read that account. You do not need our website to know the yield.

Example · wSOL / USDC Curve

Calendar tenorLast P

Longer date, lower last P, more remaining return

Selected tenor

31 Dec 2026

Last fill P
0.500
Remaining return
100.0%
Volume printed
240 face

One Curve account. Three slots. Same pair.

The quote book is a ladder of ticks. This object is the last print per date.

One calendar date

Every Claim in a market comes due on the same calendar day. Fill this morning or in six weeks: 31 Dec 2026 stays 31 Dec 2026. That is how three dates become a real curve, and how you can plan cash instead of watching a timer restart on every new loan.

Example · wSOL / USDC · 31 Dec 2026

…Dec 31, 2026

Fill A, day 0

Fill B, day 30

Simulated day

…

Redeem

…

Fill B is younger. It still expires on 31 Dec 2026, same as Fill A. The term is that calendar date, not a rolling clock.

Your collateral has a clear line

How much you may borrow is a share of your collateral's live price, not an old print. If wSOL is listed at 70%, ten wSOL at $200 can support 1,400 USDC of face, and not more. A fill that would cross that line is rejected. Trouble in one pair stays in that pair: a wSOL market does not spill into cbBTC. You see the cap, the debt, and the liquidation price before you take a quote.

Example · 10 wSOL · 1000 USDC face · 70% LLTV on SOL pairs

Collateral value$2,000
Max debt at this LLTV1400 USDC
Current debt1000 USDC

Debt sits under the 70% cap. A fill that would break this is rejected.

Mark

$200

Health factor

1.40

Liq. price (display)

$143

Why people use Zorya

Four reasons to open this book instead of another variable pool. Each one is a thing you can hold, read, or check today, without waiting for a future version of the protocol.

01

A Claim you actually own

The pain

In most pools, lending is just a balance on a screen. You cannot take that balance with you, pass it to another program, or use it as collateral without asking the pool for a special favor.

On Zorya

On Zorya you buy a Claim: the right to 1 USDC on a known date. Borrowers sell the matching Obligation, the promise to repay that 1 USDC. Lending is buying. Borrowing is selling. A vault that wants this yield simply holds Claims.

Why you switch

You leave with an instrument, not a screenshot of last week's APY. Other Solana programs can hold the same object you do.

02

A curve anyone can read

The pain

If every loan starts a new countdown from the moment you fill, nothing lines up. There is no shared due date, so there is no real curve. Rates live in a frontend, and you are the last to know.

On Zorya

Every market shares one calendar date. A public Curve account writes the last price, the remaining return, and the volume for each date, on-chain. Any program can read it. You do not need us in the middle.

Why you switch

You see the same yield the chain sees. Desks, vaults, and bots can price off one public object.

03

Quotes that are already funded

The pain

An offer that is only a signature is a maybe. The dollars may already be gone when you try to take it. You find out when a bot fails, or when the maker walks away.

On Zorya

A lender quote locks real USDC in the program before anyone can fill it. You pick a price level, you take the size, the program settles. The book you see is the book that pays.

Why you switch

You trade against capital that is already in the program. No hidden matcher. No disappearing offer.

04

Compose without a backdoor

The pain

Chaining a withdraw, a fill, and a roll through someone else's contract is how a lot of Solana exploits start. You should not have to trust a stranger's program to finish your loan.

On Zorya

Zorya never calls an unknown program. You deposit and fill in one transaction. You redeem in one transaction. Other products call Zorya. Zorya does not call them.

Why you switch

You get atomic actions without handing the keys to a third party. Safer to use. Safer to build on.

Roadmap

From Layer 1 to Layer 2

Layer 1 is the core that exists today: one on-chain program with a funded book, Claims, calendar markets, and a Curve anyone can read. Layer 2 is what we build next: other ways to enter that same fill, and products that call this program. There is no second ledger and no second set of books.

Layer 1

Live

This is the on-chain book. You pick a quote that already holds USDC. The program settles both sides in one instruction: the lender gets Claims, the borrower gets dollars and a promise to repay.

  1. ✓

    Escrowed quote book

    A lender's USDC is locked in the program before anyone can take the quote. You can fill part of it. The lender can cancel what is left. There is no hidden matching engine.

  2. ✓

    Claims and Obligations

    A Claim is the right to 1 USDC on the market date. An Obligation is the promise to repay that 1 USDC. If a market takes a loss after liquidation, Claims share it.

  3. ✓

    Isolated TermMarkets

    One pair, one date, one borrowing cap. The desk lists wSOL, JitoSOL, and cbBTC against USDC. More pairs are more markets, not a new program. A problem in one listing stays there.

  4. ✓

    Public Curve

    Last fill price, remaining return, and volume for each calendar date. One on-chain account per pair. Anyone can read it.

  5. ✓

    Health and default

    A live Pyth price and a borrowing cap per market. If you fall below the line, or miss the date, anyone can repay the debt and take collateral under published rules.

Layer 2

Building

New ways into the same fill. Products sit on top of Layer 1. They call this program. This program never calls them back.

  1. 01

    Signed intents

    Quotes that do not lock USDC up front, but still settle into the Layer 1 fill. Same books. No second ledger.

  2. 02

    Borrower quotes

    A borrower can post a funded offer. Lenders take it the same way they take a lend quote today.

  3. 03

    Product vaults

    A vault that wants a strip of dates simply buys Claims. It calls the core. The core never calls it.

  4. 04

    Secondary

    Sell a Claim back into the book if you want out before the date. You do not start a new rolling loan.

  5. 05

    Desk API

    Reporting, listings, and access for desks that want the same markets without building a custom stack.

Open the book

You have seen the Claims, the dates, and the line on collateral. The next step is not another explanation. The book is open, the quotes are already funded, and the calendar date is printed. Go in. Pick a pair. Lock a price. Lend if you want the Claim, borrow if you need the dollars today. What you click is what you keep until the date.