Docs
How FENRO works
The contract rules behind every quote, loan and receipt, in the order a loan lives through them. Numbers in this page are read from the programs and the settlement code.
On this page
01
How a FENRO loan works
A lender posts a quote and deposits the principal with it. A borrower who wants that quote locks the stated amount of a listed token and receives the principal in the same transaction. The loan then runs to a fixed maturity printed on the receipt: repay before it and the collateral comes back; leave it unpaid and the lender claims the collateral.
- Terms: 6, 24 or 72 hours, fixed at take.
- Principal: SOL or USDC. Interest is a flat amount in the same asset, set by the lender.
- Per loan: one lender and one borrower. Each fill takes the whole quote amount; there are no partial fills.
02
Quotes and funding
A quote is the lender's offer. It names seven terms:
| Field | What it fixes |
|---|---|
| Collateral token | Which listed token the borrower locks. |
| Principal | The asset (SOL or USDC) and amount the borrower receives, before the opening fee. |
| Collateral amount | How many tokens are locked per fill. The lender chooses it; no oracle sets it. |
| Term | 6, 24 or 72 hours from the moment of take. |
| Flat interest | The fixed amount owed on top of the principal at repay, the same early or late. |
| Valid for | How long the quote can be taken. After that the program refuses takes. |
| Max fills | How many borrowers can each take one full fill; the principal for all of them is deposited up front. |
Funded means deposited. Posting a quote moves the principal for every fill (principal times max fills) into that quote's own vault in the same transaction, or the quote is not created. The app calls a quote funded only while its vault holds at least one full fill, it is inside its valid time and it has fills left. The app never posts quotes on its own.
A lender can cancel at any time before the last fill: the vault's remaining principal goes back to the lender. If a take and a cancel race, the network orders them and exactly one outcome happens for each fill.
03
Taking a quote
One take transaction does all of this, or none of it:
- your collateral moves into a new vault owned by this loan;
- the principal minus the opening fee (– of principal, – with a Fee Pass) moves to your wallet;
- the opening fee moves into the fee vault, apart from every loan's principal and collateral;
- the loan record is written with its maturity, the amount to repay (principal plus flat interest) and the fee paid.
The transaction carries the terms you saw. If the quote changed, ran out of fills or expired in between, the program rejects it and nothing moves. The app simulates every transaction before your wallet is asked, so a rejected take costs no fee.
04
Maturity, repay and claim
- Maturity = take time + term, on the network clock. It never moves after take.
- Repay while the network clock is before maturity. Repaying early costs the same flat interest. The collateral returns to the borrower in the same transaction.
- Claim once the network clock reaches maturity and the loan is unpaid: the lender receives all of the loan's collateral.
- One ending. Repay and claim check the same loan state, so if both are sent around maturity exactly one succeeds.
- Extending a loan happens only through a rematch before maturity: a new lender's funded quote for the same collateral repays the old lender in full and starts a new loan in one transaction, with a rematch fee of – of the new principal. Nothing renews by itself.
The network clock runs a few seconds behind wall time, so the app stops offering repay shortly before maturity to leave room for the transaction to land.
05
Where losses sit
No price liquidations, and the lender carries the maturity loss. Nothing sells the collateral when its price falls during the term. If the borrower does not repay, the lender gets the collateral as it is, which can be worth less than the principal, or nothing.
- Each loan stands alone: its collateral and principal sit in that loan's own accounts.
- There is no shared reserve, insurance fund or pool that covers a lender's loss, and FENRO revenue does not cover one.
- The reference prices shown in the app help you judge a quote. They never set loan terms; each quote does.
06
Fees and FENRO revenue
FENRO's only service revenue is the opening fee (and the rematch fee when one is agreed). Principal and interest belong to the lender; collateral belongs to the borrower until it is repaid or claimed.
| Money | Goes to |
|---|---|
| Principal | Lender's quote vault, then the borrower, then back to the lender at repay |
| Flat interest | Lender, paid by the borrower at repay |
| Collateral | Loan vault, then the borrower at repay or the lender at claim |
| Opening fee | Fee vault, then the weekly settlement |
Each week the fees received are settled: costs (RPC, indexing, hosting, security) are applied up to 40% of the week's fees, and the net service revenue is split 25% Holder Vault, 25% Reserve Buys and 50% team and operations.
07
FENRO: Fee Pass, Holder Vault, Reserve Buys
Fee Pass
A wallet holding at least – in its main FENRO token account pays – less opening fee on every loan it takes. The market checks the balance inside the take transaction. The discount applies to the opening fee only, never to the lender's interest.
Holder Vault
FENRO staked in the Holder Vault earns from the first weekly epoch that starts at least – after the stake. Each closed epoch is funded with the Holder Vault share of that week's net service revenue and split across the eligible stake by amount. Requesting unstake stops earning from the next epoch start; rewards already earned stay claimable; the FENRO can be withdrawn – after the request. Holder rights are separate from any lender's rights in a loan.
Reserve Buys
The Reserve Buys share is spent over the week after each settlement in small market buys signed by the dev wallet, which holds the FENRO. Every buy is published with its transaction.
08
Which tokens can be collateral
Only listed tokens can be collateral. Listing is set on chain by the market admin, and each listed token's market is re-checked regularly and shown on the Market Board.
| Check | Rule |
|---|---|
| Authorities | Mint authority and freeze authority renounced. A listing that overrides this records the reason on chain. |
| Token-2022 extensions | Only MetadataPointer and TokenMetadata. Transfer fees, transfer hooks, permanent delegates, default-frozen accounts and the rest are refused, with no override. |
| Pool depth | Largest SOL or USDC pool below $20,000 fails; below $100,000 it is flagged. |
| Holder concentration | Flagged when one wallet holds more than 10% of supply or the ten largest hold more than 35% (pool and program accounts excluded). |
| Pool change | Flagged when the largest pool's liquidity fell by 30% or more since the previous check. |
A listing does not make a token safe to lend against. It means the token can be locked and returned by the program, and that its market was checked.
09
Risks
- Smart contracts. The programs are tested end to end on a local chain and against a copy of live chain state. Testing does not rule out bugs; a bug could lock or lose funds. Program IDs and every account are on the Proof page.
- Collateral price. Memecoin prices can fall to zero within a term. If the collateral falls below what is owed, a borrower may choose not to repay, and the lender carries the loss at maturity.
- Network and data. When the RPC or the market data falls behind, the app shows when it last updated and pauses new quotes and takes. Repay and claim read the chain directly.
- Timing. Maturity follows the network clock. A repay sent in the last moments can land after maturity and be rejected.
- Wallet. Your wallet signs every transaction; FENRO never holds your keys. Read what your wallet shows before you approve.