Lending lets a DA holder access immediate USDT liquidity without selling the asset and without giving up exposure to future DA price growth. The loan is collateralized by a specific DA batch, priced at issuance, and repayable in full or partially at any time before the collateralized stack enters its auto-sell cycle.Documentation Index
Fetch the complete documentation index at: https://whitepaper.rwanftfi.com/llms.txt
Use this file to discover all available pages before exploring further.
70% LTV - Fixed
Every loan is issued at exactly 70% of the collateral’s USDT value at the moment of issuance. There is no slider and no “up to” range - 70% is the only setting.
One-Time 5% Commission
A single 5% fee is charged when the loan is opened and routed to the DA Liquidity Pool. Nothing is charged at repayment, full or partial.
Price Locked at Issuance
The DA price used for all loan math is fixed in
loan.price at the moment of issuance. Even if DA appreciates 2x or 10x afterward, your USDT debt does not.No Fixed Term
The loan has no maturity date. It stays open until the borrower repays it, or until the collateralized batch enters its auto-sell cycle.
Who can take a loan?
Lending is available only to holders of Premium and Elite NFT tiers (Level 5 and above). Lower tiers do not run NFTM mining and therefore have no DA collateral to borrow against.Premium Tier (L5-L8)
Hydro, Quantum, Pulse, Aurora. Each completed mining cycle produces a DA batch eligible for one loan.
Elite Tier (L9-L10)
Flame, Infinity. Two mining cycles per NFT - each cycle produces its own independent batch with its own independent loan slot.
Active Income Limit
The borrowing NFT must have a non-zero remaining Income Limit. Lending is gated by the same eligibility model as marketing rewards.
What is the collateral?
A loan is collateralized by a specific DA batch - the DA credited to a TokenStack from a single completed mining and farming cycle. The whole batch is the unit of collateral: partial-amount borrowing against a fraction of a batch is not supported. If a batch contains 100 DA, the loan is issued against all 100 DA at once.One loan per batch, ever. A given DA batch can serve as collateral for at most one loan over its entire lifetime. Once that loan is opened - regardless of whether it is later repaid in full, repaid partially, or defaulted - the batch cannot be pledged again. To open another loan, the borrower must mine and farm a new batch.
How is the loan amount calculated?
The smart contract uses a single deterministic formula at issuance:loan.price is the DA price at the moment of issuance. It is stored on the loan struct and never changes for the life of the loan.
Batch is created
Mining cycle completes. The user stakes NFTM into Farming. After the farming period ends, 100 DA is credited to a new TokenStack at the user’s address.
User calls loan() against the batch
Assume the current DA price at this moment is 1.00 USDT. The contract records
loan.price = 1.00 on the loan struct. usdAmount = 100 × 1.00 × 0.70 = 70 USDT.5% commission is split off
fee = 70 × 0.05 = 3.50 USDT. The 3.50 USDT is routed immediately to the DA Liquidity Pool.Dust protection. The smart contract rejects loans where
borrowerPayout would round down to 0 USDT after the 5% fee. A batch too small to produce a non-zero net payout cannot be pledged.Loan debt is fixed in USDT
This is the most important property of the lending product and the main reason DA holders choose lending instead of selling. The amount owed at repayment is calculated againstloan.price, not against the current market price of DA. Once a loan is opened, the borrower’s debt is denominated in USDT at the price snapshot taken at issuance. DA price appreciation does not increase the debt.
Worked example - DA price doubles during the loan.
- Day 0: DA price is 1.00 USDT. Borrower opens a loan against 100 DA.
loan.price = 1.00. Borrower receives 66.50 USDT after the 5% fee. - Day 90: DA market price has grown to 2.00 USDT. The same 100 DA is now worth 200 USDT at market.
- Day 90: Borrower calls
repay()for the full balance. The contract usesloan.price = 1.00, not the market price. Amount owed:100 × 1.00 × 0.70 = 70 USDT. Borrower returns 70 USDT and reclaims all 100 DA. Those 100 DA are worth 200 USDT at the current market price.
The 30-day eligibility gate
A loan can only be opened against a DA batch that still has at least 30 days remaining until that batch’s next scheduled auto-sell event. The check is enforced on-chain inside the loan-issuance path:Full repayment
The borrower can close the loan at any time while the collateralized stack is still active - that is, before the batch has entered its progressive auto-sell cycle. Full repayment returns the originalusdAmount (the gross principal at issuance) and releases the full DA batch back to the borrower’s TokenStack.
The 5% commission is not charged again. It was taken once, at issuance, and is not part of the repayment math.
Worked example - full repayment.
- Loan was opened against 100 DA at
loan.price = 1.00.usdAmount = 70 USDT. Fee already paid at issuance. - Borrower calls
repay()for the full balance and returns 70 USDT. - Contract releases all 100 DA back to the borrower’s TokenStack. Loan closes.
Partial repayment
The borrower can also redeem a portion of the collateral at any time before auto-sell, paying only for the amount of DA they choose to release:Worked example - half the collateral redeemed.
- Loan was opened against 100 DA at
loan.price = 1.00. Initial debt: 70 USDT against 100 DA collateral. - 60 days later, the borrower wants to redeem half the collateral. They call
repay()releasing 50 DA. toPay = 50 × 1.00 × 0.70 = 35 USDT. Borrower returns 35 USDT.- 50 DA is released back to the original TokenStack. The remaining 50 DA stays as collateral against the remaining debt of 35 USDT.
- The auto-sell timer for the batch continues from its original start: 60 days have already elapsed against the existing period schedule.
Released DA stays in the same batch. Tokens redeemed via partial repayment return to the original TokenStack and remain subject to that stack’s existing auto-sell schedule. The borrower can sell them manually for the standard 75% payout or let them auto-sell at 70% when the batch’s period triggers. They cannot be used as collateral for a new loan - the “one loan per batch” rule applies to the entire batch, not only to the currently pledged portion.
Multi-batch independence
Every mining cycle produces a new DA batch, and every batch is an independent unit of collateral. A holder can simultaneously carry multiple loans, each against a different batch, with each loan carrying its own:loan.pricesnapshot, taken at its own issuance time- 5% one-time commission, paid at its own issuance
- Auto-sell timer, running on its own batch
- Eligibility for repayment, partial repayment, or default
Batch A
Active loan against the full batch. Borrower received USDT at issuance and is holding the debt.
Batch B
Partially repaid. Some DA was redeemed; the remainder is still pledged against a reduced debt.
Batch C
No loan opened. The DA is fully owned by the user and behaves as a normal DA stack, subject only to its own auto-sell schedule.
Default - progressive collateral burn
If the borrower does not repay the loan before the collateralized stack enters its auto-sell cycle, the standard four-period schedule (120 / 90 / 90 / 65 days, 365 days total) proceeds against the pledged DA. Each period burns a percentage of the remaining pledged DA:Period 1 - day 120: 25% of pledged DA is burned
25% of currently pledged DA is permanently burned. The corresponding USDT value at
loan.price is routed to the DA Liquidity Pool. The borrower receives nothing for this portion. The remaining debt is reduced proportionally to the remaining pledged DA.Period 2 - day 210 (+90 days): 40% of the remainder is burned
40% of the DA still pledged is burned. USDT value at
loan.price flows to the DA Liquidity Pool. Remaining debt is reduced again.Period 3 - day 300 (+90 days): 50% of the remainder is burned
50% of the DA still pledged is burned. USDT value at
loan.price flows to the DA Liquidity Pool.loan.price = 1.00.
| Event | Pledged DA before | DA burned | USDT to Pool | Pledged DA after | Remaining debt |
|---|---|---|---|---|---|
| Issuance (day 0) | - | - | - | 100 | 70.00 |
| Period 1 (day 120) | 100 | 25 | 17.50 | 75 | 52.50 |
| Period 2 (day 210) | 75 | 30 | 21.00 | 45 | 31.50 |
| Period 3 (day 300) | 45 | 22.5 | 15.75 | 22.5 | 15.75 |
| Period 4 (day 365) | 22.5 | 22.5 | 15.75 | 0 | 0 |
If the borrower takes no recovery action across all four periods, they keep the original 66.50 USDT received at issuance and the full 100 DA collateral is burned over the 365-day cycle. All burned DA is permanently removed from supply; all USDT routed to the Pool strengthens DA backing for the rest of the ecosystem.
Partial recovery during default
Default is progressive, not all-or-nothing. At any moment between auto-sell periods, the borrower can still callrepay() and reclaim the remaining pledged DA by paying only for what is still pledged.
Worked example - recovery after Period 1.
- Borrower opened a loan against 100 DA at
loan.price = 1.00. Initial debt: 70 USDT. - Borrower does not repay. Period 1 triggers on day 120: 25 DA is burned, 17.50 USDT is routed to the Pool. Pledged remaining: 75 DA. Debt remaining: 52.50 USDT.
- On day 150, before Period 2 triggers, the borrower decides to recover what is left. They call
repay()for the full remaining balance. toPay = 75 × 1.00 × 0.70 = 52.50 USDT. Borrower returns 52.50 USDT. Contract releases 75 DA back to the borrower’s TokenStack. Loan closes.- The 25 DA burned in Period 1 is permanently lost - it cannot be recovered.
Behavior of
repay() after auto-sell has begun. When repay() is called on a stack that has already crossed into the auto-sell cycle, the contract first runs _processExpiredStacks() to settle every period whose trigger has already passed. After that settlement, the call proceeds against the post-burn collateral and post-burn debt. The borrower cannot use repay() to “jump in front of” a burn that has already triggered, but they can stop the next burn by repaying before its period boundary.Post-recovery sale mechanics
DA reclaimed via full or partial repayment returns to the borrower’s TokenStack and behaves exactly like normal DA going forward. It can be:- Sold manually for 75% of the current market price in USDT (100% of sold DA burned)
- Held until the batch’s auto-sell schedule reaches the next period
- Allowed to auto-sell at the standard 70% payout when its period triggers
loan.price.
Worked example - selling reclaimed DA after price growth.
- Borrower opened a loan against 100 DA at
loan.price = 1.00. Received 66.50 USDT. - 90 days later, market price has grown to 2.00 USDT. Borrower fully repays: returns 70 USDT, reclaims 100 DA.
- Borrower then sells those 100 DA manually. Market value: 100 DA × 2.00 USDT = 200 USDT.
- Borrower receives
200 × 0.75 = 150 USDTin their Regular Balance. - All 100 DA is burned.
- The 50 USDT difference (200 - 150) stays in the Pool as protocol commission.
- Income Limit is reduced by the full 200 USDT market value of the sale, not by the 100 USDT that would correspond to
loan.price.
- Borrower receives
Lending parameters at a glance
| Parameter | Value | Mutability |
|---|---|---|
| LTV | 70% | Immutable |
Lending commission (loanFee) | 5% | DAO-adjustable (0% - 5%) |
| Commission destination | DA Liquidity Pool | Immutable |
| Eligibility gate (time-to-next-auto-sell) | 30 days | Immutable |
| Loan term | None (until auto-sell or repayment) | Structural |
| Price reference for debt | loan.price at issuance | Structural |
| Loans per batch | 1 (lifetime) | Structural |
| Default proceeds destination | DA Liquidity Pool | Structural |
| Repayment fee | None | Structural |
| Minimum NFT tier | L5 (Hydro) | Immutable |
loanFee parameter is governed independently of all other protocol fees so that the DAO can tune lending economics without touching marketing taxes, accumulative fees, or any other commission.
Common pitfalls
Related pages
Selling Mechanics
Manual sell at 75%, auto-sell at 70%, and how the four-period auto-sell cycle interacts with lending defaults.
DA Token Economics
The 21M hard cap, the
Price = Liquidity ÷ Supply formula, and every revenue stream that feeds the Pool.
