> ## 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.

# Vente & Prêt

> Vente manuelle à 75 % en USDT, auto-vente à 70 % sur un cycle de 365 jours en quatre périodes, et un dispositif de lending à LTV fixe de 70 % adossé à du collatéral en DA avec une commission unique de 5 %.

export const SellVsLend = () => {
  const [daAmount, setDaAmount] = useState(1000);
  const [currentPrice, setCurrentPrice] = useState(1.00);
  const [futurePrice, setFuturePrice] = useState(2.00);
  const [tab, setTab] = useState('sell');
  const [paybackPercent, setPaybackPercent] = useState(100);
  const fmtUsd = n => {
    const digits = Math.abs(n) >= 10000 ? 0 : 2;
    return new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'USD',
      maximumFractionDigits: digits
    }).format(n);
  };
  const manualSellPayout = daAmount * currentPrice * 0.75;
  const autoSellPayout = daAmount * futurePrice * 0.70;
  const loanAmount = daAmount * currentPrice * 0.70 * 0.95;
  const futureValue = daAmount * futurePrice;
  const paybackFraction = paybackPercent / 100;
  const repayAmount = loanAmount * paybackFraction;
  const tokensReturned = daAmount * paybackFraction;
  const tokensReturnedValue = tokensReturned * futurePrice;
  const tokensLocked = daAmount * (1 - paybackFraction);
  const netPosition = loanAmount - repayAmount + tokensReturnedValue;
  const autoSellBetter = futurePrice > currentPrice * (75 / 70);
  const sellDifference = Math.abs(autoSellPayout - manualSellPayout);
  const sliderStyle = {
    touchAction: 'manipulation',
    height: '6px',
    borderRadius: '3px',
    background: 'linear-gradient(to right, rgba(255,255,255,0.4), rgba(255,255,255,0.15))',
    outline: 'none',
    WebkitAppearance: 'none',
    appearance: 'none'
  };
  return <div style={{
    backgroundColor: '#000000',
    color: '#FFFFFF',
    borderColor: 'rgba(255,255,255,0.05)'
  }} className="p-6 rounded-xl not-prose border">
      <div className="flex items-center justify-between mb-6">
        <h3 style={{
    color: '#FFFFFF'
  }} className="text-lg font-serif italic">Sell vs Lend Strategy Tool</h3>
        <span style={{
    color: 'rgba(255,255,255,0.6)',
    backgroundColor: 'rgba(255,255,255,0.1)',
    border: '1px solid rgba(255,255,255,0.2)'
  }} className="text-xs px-3 py-1 rounded-full font-medium">Interactive</span>
      </div>

      {}
      <div className="space-y-3 mb-6">
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <div className="flex justify-between items-center mb-2">
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>DA Amount</span>
            <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>{daAmount.toLocaleString('en-US')} DA</span>
          </div>
          <input type="range" min="0" max="10000" step="100" value={daAmount} onChange={e => setDaAmount(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
        </div>

        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <div className="flex justify-between items-center mb-2">
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>Current DA Price</span>
            <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>${currentPrice.toFixed(2)}</span>
          </div>
          <input type="range" min="1.00" max="10.00" step="0.10" value={currentPrice} onChange={e => setCurrentPrice(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
        </div>

        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <div className="flex justify-between items-center mb-2">
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>Expected Price in 4 Months</span>
            <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>${futurePrice.toFixed(2)}</span>
          </div>
          <input type="range" min="1.00" max="20.00" step="0.10" value={futurePrice} onChange={e => setFuturePrice(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
        </div>
      </div>

      {}
      <div style={{
    backgroundColor: 'rgba(56,56,56,0.7)'
  }} className="flex rounded-full p-1 mb-6">
        <button onClick={() => setTab('sell')} style={tab === 'sell' ? {
    backgroundColor: '#FFFFFF',
    color: '#000000'
  } : {
    backgroundColor: 'transparent',
    color: 'rgba(255,255,255,0.5)'
  }} className="flex-1 px-3 py-1.5 rounded-full text-[11px] font-medium transition-all">
          SELL DA
        </button>
        <button onClick={() => setTab('lend')} style={tab === 'lend' ? {
    backgroundColor: '#FFFFFF',
    color: '#000000'
  } : {
    backgroundColor: 'transparent',
    color: 'rgba(255,255,255,0.5)'
  }} className="flex-1 px-3 py-1.5 rounded-full text-[11px] font-medium transition-all">
          LEND DA
        </button>
      </div>

      {}
      {tab === 'sell' && <>
          <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
            {}
            <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5">
              <div className="flex items-center gap-2 mb-4">
                <h4 style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">MANUAL SELL</h4>
                <span style={{
    color: '#f87171',
    backgroundColor: 'rgba(239,68,68,0.1)',
    border: '1px solid rgba(239,68,68,0.2)'
  }} className="ml-auto text-[10px] font-semibold px-2 py-0.5 rounded-full">
                  Sell now
                </span>
              </div>
              <div style={{
    color: '#FFFFFF'
  }} className="text-2xl font-bold mb-1">{fmtUsd(manualSellPayout)}</div>
              <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px',
    marginBottom: '8px'
  }}>(25% stays in pool)</div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    lineHeight: '1.6'
  }}>
                100% DA burned · 75% payout in USDT · 25% stays in pool — drives price up
              </div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    marginTop: '4px',
    lineHeight: '1.6'
  }}>
                Sell now at current price. 25% stays as backing in the pool.
              </div>
            </div>

            {}
            <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5">
              <div className="flex items-center gap-2 mb-4">
                <h4 style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">AUTO-SELL</h4>
                <span style={{
    color: '#fbbf24',
    backgroundColor: 'rgba(251,191,36,0.1)',
    border: '1px solid rgba(251,191,36,0.2)'
  }} className="ml-auto text-[10px] font-semibold px-2 py-0.5 rounded-full">
                  Sell at peak
                </span>
              </div>
              <div style={{
    color: '#FFFFFF'
  }} className="text-2xl font-bold mb-1">{fmtUsd(autoSellPayout)}</div>
              <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px',
    marginBottom: '8px'
  }}>(30% stays in pool)</div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    lineHeight: '1.6'
  }}>
                100% DA burned · 70% payout in USDT · 30% stays in pool — drives price up
              </div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    marginTop: '4px',
    lineHeight: '1.6'
  }}>
                Auto-sells progressively from remaining balance if not sold manually.
              </div>
            </div>
          </div>

          {}
          {daAmount > 0 && <div style={{
    backgroundColor: 'rgba(255,255,255,0.05)',
    border: '1px solid rgba(255,255,255,0.1)',
    marginTop: '16px'
  }} className="rounded-xl p-4 text-center">
              <div style={{
    color: 'rgba(255,255,255,0.6)',
    fontSize: '12px'
  }}>
                {autoSellBetter ? <>Auto-sell pays <span style={{
    color: '#FFFFFF',
    fontWeight: 600
  }}>{fmtUsd(sellDifference)} more</span> despite 30% retention — DA price growth outweighs the extra 5% retention.</> : <>At this price projection, manual sell pays <span style={{
    color: '#FFFFFF',
    fontWeight: 600
  }}>{fmtUsd(sellDifference)} more</span>.</>}
              </div>
            </div>}
        </>}

      {}
      {tab === 'lend' && <>
          {}
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5 mb-2">
            <div className="flex items-center mb-4">
              <div style={{
    backgroundColor: 'rgba(255,255,255,0.15)',
    width: '28px',
    height: '28px',
    borderRadius: '50%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    fontSize: '13px',
    fontWeight: 700,
    color: '#FFFFFF',
    flexShrink: 0
  }}>1</div>
              <span style={{
    color: '#FFFFFF',
    fontSize: '15px',
    fontWeight: 700,
    marginLeft: '10px'
  }}>BORROW</span>
              <span style={{
    color: '#4ade80',
    backgroundColor: 'rgba(34,197,94,0.1)',
    border: '1px solid rgba(34,197,94,0.2)'
  }} className="ml-auto text-[10px] font-semibold px-2 py-0.5 rounded-full">
                70% LTV
              </span>
            </div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '28px',
    fontWeight: 900
  }}>{fmtUsd(loanAmount)}</div>
            <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    marginTop: '4px'
  }}>USDT loan (70% LTV minus 5% fee)</div>
            <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px',
    marginTop: '8px'
  }}>DA locked: {daAmount.toLocaleString('en-US')} DA</div>
          </div>

          {}
          <div style={{
    textAlign: 'center',
    padding: '4px 0'
  }}>
            <div style={{
    width: '1px',
    height: '16px',
    backgroundColor: 'rgba(255,255,255,0.15)',
    margin: '0 auto'
  }} />
            <div style={{
    color: '#4ade80',
    fontSize: '11px',
    fontWeight: 600,
    padding: '4px 12px',
    backgroundColor: 'rgba(74,222,128,0.08)',
    borderRadius: '9999px',
    display: 'inline-block'
  }}>
              DA price grows to {fmtUsd(futurePrice)}
            </div>
            <div style={{
    width: '1px',
    height: '16px',
    backgroundColor: 'rgba(255,255,255,0.15)',
    margin: '0 auto'
  }} />
          </div>

          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4 mb-2">
            <div className="flex justify-between items-center mb-2">
              <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>Loan Repayment</span>
              <span style={{
    color: '#FFFFFF',
    fontSize: '14px',
    fontWeight: 700
  }}>{paybackPercent}%</span>
            </div>
            <input type="range" min="0" max="100" step="10" value={paybackPercent} onChange={e => setPaybackPercent(Number(e.target.value))} className="w-full cursor-pointer" style={sliderStyle} />
            <div className="flex justify-between mt-1">
              <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>0%</span>
              <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>100%</span>
            </div>
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5 mb-2">
            <div className="flex items-center mb-4">
              <div style={{
    backgroundColor: 'rgba(255,255,255,0.15)',
    width: '28px',
    height: '28px',
    borderRadius: '50%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    fontSize: '13px',
    fontWeight: 700,
    color: '#FFFFFF',
    flexShrink: 0
  }}>2</div>
              <span style={{
    color: '#FFFFFF',
    fontSize: '15px',
    fontWeight: 700,
    marginLeft: '10px'
  }}>
                {paybackPercent === 100 ? 'FULL REPAY' : `PARTIAL REPAY (${paybackPercent}%)`}
              </span>
            </div>
            <div className="grid grid-cols-2 gap-3">
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px',
    marginBottom: '4px'
  }}>PAY BACK</div>
                <div style={{
    color: '#FFFFFF',
    fontSize: '20px',
    fontWeight: 700
  }}>{fmtUsd(repayAmount)}</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px'
  }}>{paybackPercent}% of loan</div>
              </div>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px',
    marginBottom: '4px'
  }}>GET BACK</div>
                <div style={{
    color: '#4ade80',
    fontSize: '20px',
    fontWeight: 700
  }}>{tokensReturned.toLocaleString('en-US')} DA</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px'
  }}>worth {fmtUsd(tokensReturnedValue)} at future price</div>
              </div>
            </div>
            {paybackPercent < 100 && tokensLocked > 0 && <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '11px',
    marginTop: '10px',
    borderTop: '1px solid rgba(255,255,255,0.08)',
    paddingTop: '8px'
  }}>
                {tokensLocked.toLocaleString('en-US')} DA remain locked as collateral
              </div>}
          </div>

          {}
          <div style={{
    textAlign: 'center',
    padding: '4px 0'
  }}>
            <div style={{
    width: '1px',
    height: '24px',
    backgroundColor: 'rgba(255,255,255,0.15)',
    margin: '0 auto'
  }} />
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.03)',
    border: '1px solid rgba(255,255,255,0.15)'
  }} className="rounded-xl p-5 mb-4">
            <div className="flex items-center mb-4">
              <div style={{
    backgroundColor: 'rgba(255,255,255,0.15)',
    width: '28px',
    height: '28px',
    borderRadius: '50%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    fontSize: '13px',
    fontWeight: 700,
    color: '#FFFFFF',
    flexShrink: 0
  }}>3</div>
              <span style={{
    color: '#FFFFFF',
    fontSize: '15px',
    fontWeight: 700,
    marginLeft: '10px'
  }}>YOUR PROFIT</span>
            </div>
            <div style={{
    textAlign: 'center'
  }}>
              <div style={{
    color: '#FFFFFF',
    fontSize: '36px',
    fontWeight: 900
  }}>{fmtUsd(netPosition)}</div>
              <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '11px',
    marginTop: '4px'
  }}>Net position</div>
            </div>
            <div style={{
    borderTop: '1px solid rgba(255,255,255,0.1)',
    marginTop: '16px'
  }} />
            <div className="grid grid-cols-3 gap-3 text-center" style={{
    marginTop: '12px'
  }}>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px'
  }}>NET POSITION</div>
                <div style={{
    color: '#4ade80',
    fontSize: '16px',
    fontWeight: 700
  }}>{fmtUsd(netPosition)}</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px'
  }}>All fees included</div>
              </div>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px'
  }}>VS HOLD</div>
                <div style={{
    color: '#FFFFFF',
    fontSize: '16px',
    fontWeight: 700
  }}>{fmtUsd(futureValue)}</div>
              </div>
              <div>
                <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '10px'
  }}>VS SELL NOW</div>
                <div style={{
    color: '#f87171',
    fontSize: '16px',
    fontWeight: 700
  }}>{fmtUsd(manualSellPayout)}</div>
                <div style={{
    color: 'rgba(255,255,255,0.3)',
    fontSize: '10px'
  }}>25% stays in pool</div>
              </div>
            </div>
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(34,197,94,0.08)',
    border: '1px solid rgba(34,197,94,0.2)'
  }} className="rounded-xl p-4 text-center mb-3">
            <div style={{
    color: 'rgba(255,255,255,0.6)',
    fontSize: '12px'
  }}>
              Lending lets you access liquidity <span style={{
    color: '#FFFFFF',
    fontWeight: 600
  }}>NOW</span> while keeping exposure to DA price growth.
              {paybackPercent === 100 ? <span> At 100% repayment, you recover your full DA position at the new price.</span> : <span> At {paybackPercent}% repayment, {tokensLocked.toLocaleString('en-US')} DA remain locked. Unpaid loans default through the auto-sell cycle.</span>}
            </div>
          </div>

          {}
          <div style={{
    backgroundColor: 'rgba(239,68,68,0.08)',
    border: '1px solid rgba(239,68,68,0.2)',
    marginTop: '12px'
  }} className="rounded-xl p-4 text-center">
            <div style={{
    color: '#f87171',
    fontSize: '11px'
  }}>
              Each loan stays open until its collateralized stack enters the auto-sell cycle. If not repaid before then, the DA collateral is progressively burned.
            </div>
          </div>
        </>}
    </div>;
};

Dès qu'un utilisateur détient du DA, il dispose de deux options financières principales : vendre l'actif ou l'utiliser comme collatéral pour un prêt.

<CardGroup cols={2}>
  <Card title="Vendre du DA" icon="fire">
    100 % du DA vendu est définitivement brûlé. Vous recevez 75 % (manuel) ou 70 % (auto) de la valeur en USDT. Les 25 % restants (manuel) ou 30 % (auto) constituent une commission protocolaire qui reste dans le pool en tant qu'adossement et propulse le prix du DA à la hausse.
  </Card>

  <Card title="Prêter du DA" icon="building-columns">
    Empruntez à un LTV fixe de 70 % en USDT adossé à votre DA. Une commission unique de 5 % est perçue à l'émission et jamais à nouveau au remboursement. Votre DA reste dans votre TokenStack jusqu'au remboursement (total ou partiel) ou jusqu'à ce que le lot entre dans son cycle d'auto-vente.
  </Card>
</CardGroup>

## Vente de DA & Mécanique de Brûlage

Lors de la vente de DA, il existe deux scénarios distincts avec des conditions différentes :

1. **Vente Manuelle (l'utilisateur vend de manière autonome) :**
   * L'utilisateur reçoit **75 %** de la valeur du DA en USDT au prix actuel.
   * **100 %** des jetons DA vendus sont définitivement brûlés.
   * Les 25 % restants constituent une commission protocolaire qui reste dans le pool comme adossement en USDT — avec moins de jetons et la même liquidité, ces 25 % propulsent directement la croissance du prix.

2. **Auto-Vente (déclenchée après l'expiration de la période TokenStack) :**
   * L'utilisateur reçoit **70 %** de la valeur du DA en USDT au prix du jour de l'auto-vente.
   * **100 %** des jetons DA auto-vendus sont définitivement brûlés.
   * Les 30 % restants constituent une commission protocolaire qui reste dans le pool comme adossement en USDT — ces 30 % sont ce qui propulse le prix à la hausse.
   * L'auto-vente se déclenche automatiquement si l'utilisateur n'a pas vendu manuellement avant l'expiration de la période.

Dans les deux cas, 100 % des jetons vendus sont brûlés — les 25 %/30 % représentent la commission protocolaire qui reste dans le pool comme adossement en USDT. C'est le mécanisme qui propulse la croissance du prix : moins de jetons + même liquidité = prix plus élevé par DA. L'auto-vente offre un paiement inférieur de 5 %, incitant les utilisateurs à gérer activement leurs positions en DA.

<Warning>
  **La vente de DA consomme la Limite de Revenus de votre NFT.** Chaque vente manuelle ou auto-vente de DA réduit la Limite de Revenus restante de votre NFT du montant payé en USDT — au même titre que les récompenses marketing. Si la Limite de Revenus est épuisée, la vente manuelle de DA n'est pas possible (le système ne peut pas créditer le paiement), et lors d'une auto-vente, 100 % du produit sont dirigés vers le Pool de Liquidité du DA ou vers le brûlage (le mécanisme exact est déterminé par les paramètres du DAO). Maintenez votre Limite de Revenus active — via Autobuy ou un renouvellement manuel de NFT — pour percevoir le paiement lors de la vente de DA.
</Warning>

<Info>
  **L'auto-vente** se déclenche automatiquement si vous ne vendez pas manuellement avant l'expiration de la période TokenStack. Elle paie 5 % de moins (70 % contre 75 %), incitant à une gestion active.
</Info>

## Périodes d'Auto-Vente

Le DA est disponible à 100 % pour l'utilisateur immédiatement après le farming — aucune période de blocage. L'utilisateur peut vendre manuellement à tout moment (en recevant 75 % en USDT) ou contracter un prêt adossé à son DA. Si l'utilisateur **n'agit pas**, le système déclenche des ventes automatiques forcées à partir du **solde restant** progressivement sur 4 périodes s'étalant sur **365 jours (1 an)** au total. Les durées de période sont exprimées en jours on-chain (120 / 90 / 90 / 65 jours) ; les références en mois ci-dessous sont des approximations pour faciliter la lecture.

**Exemple en partant de 100 DA :**

<Steps>
  <Step title="Période 1 — auto-vente de 25 % après 120 jours (~4 mois)">
    Si vous n'avez pas vendu manuellement dans les 120 jours (\~4 mois), 25 % de votre solde DA actuel sont auto-vendus. 25 % de 100 DA = **25 DA auto-vendus** → Vous recevez 70 % de la valeur en USDT au prix actuel → 100 % des 25 DA brûlés → Reste : **75 DA**
  </Step>

  <Step title="Période 2 — auto-vente de 40 % après 90 jours supplémentaires (~3 mois, jour 210)">
    40 % du solde restant sont auto-vendus. 40 % de 75 DA = **30 DA auto-vendus** → Reste : **45 DA**
  </Step>

  <Step title="Période 3 — auto-vente de 50 % après 90 jours supplémentaires (~3 mois, jour 300)">
    50 % du solde restant sont auto-vendus. 50 % de 45 DA = **22,5 DA auto-vendus** → Reste : **22,5 DA**
  </Step>

  <Step title="Période 4 — auto-vente de 100 % après 65 jours supplémentaires (~2 mois, jour 365)">
    100 % du solde restant sont auto-vendus. La position est entièrement clôturée. 100 % de 22,5 DA = **22,5 DA auto-vendus** → Reste : **0 DA**
  </Step>
</Steps>

<Note>
  Les pourcentages d'auto-vente (25 % / 40 % / 50 % / 100 %) indiqués ci-dessus représentent la configuration actuelle du protocole. Les valeurs spécifiques sont stockées en tant que paramètres du protocole et soumises aux procédures standard de gouvernance. Vérifiez toujours le smart contract ou la documentation actuelle du protocole pour les dernières valeurs.
</Note>

Chaque auto-vente s'exécute au prix du DA à ce moment précis, et non au prix initial du farming. Comme le prix croît avec le temps, les auto-ventes ultérieures brûlent les jetons à un prix plus élevé — renforçant davantage la déflation.

<Warning>
  **Auto-Vente avec Limite de Revenus à Zéro :** Si l'auto-vente de DA se déclenche et que l'utilisateur a une Limite de Revenus nulle sur son NFT (autrement dit, le NFT n'a pas été renouvelé), 100 % du produit sont dirigés soit vers le Pool de Liquidité, soit vers le brûlage de DA. Le mécanisme exact est déterminé par les paramètres du DAO. Les utilisateurs doivent toujours maintenir une Limite de Revenus active pour percevoir leur paiement d'auto-vente.
</Warning>

## Lending (Crédit adossé au DA)

Les détenteurs de NFT Premium et Elite (Niveau 5 et supérieur) peuvent contracter un prêt en USDT adossé à leur collatéral en DA au lieu de le vendre. Le prêt est collatéralisé par un lot de DA spécifique issu d'un seul cycle de minage et de farming complété - la totalité du lot à la fois, pas une fraction.

Chaque prêt est émis à un **LTV fixe de 70 %** avec une **commission unique de 5 %** dirigée vers le Pool de Liquidité du DA à l'émission. Rien n'est prélevé au remboursement. L'emprunteur reçoit 95 % du montant brut du prêt sur son Solde Régulier. Exemple : pour un lot de 100 DA à un prix du DA de 1,00 USDT, le prêt brut est de 70 USDT, la commission est de 3,50 USDT, et le paiement net à l'emprunteur est de 66,50 USDT.

La propriété structurelle déterminante est que le prix du DA est capturé dans `loan.price` à l'émission et ne se réévalue jamais par la suite. La croissance ultérieure du prix du DA n'augmente pas la dette - l'emprunteur extrait donc des liquidités en USDT au prix d'aujourd'hui tout en conservant l'exposition à la future valorisation. Le prêt n'a pas d'échéance fixe, peut être remboursé en totalité ou partiellement à tout moment avant que le lot entre dans son cycle d'auto-vente, et un lot donné ne peut être mis en gage qu'une seule fois sur toute sa durée de vie.

Si le prêt n'est pas remboursé avant que le lot entre dans son cycle d'auto-vente, le DA mis en gage est progressivement brûlé selon le calendrier standard en quatre périodes. L'emprunteur conserve les USDT reçus à l'émission ; la valeur USDT de chaque portion brûlée afflue vers le Pool de Liquidité du DA. Entre deux périodes d'auto-vente, l'emprunteur peut encore intervenir et appeler `repay()` pour récupérer le DA encore mis en gage.

<Warning>
  **Défaut de Lending - Brûlage Progressif :** Si le prêt n'est pas remboursé avant que le lot mis en collatéral entre dans son cycle d'auto-vente, le collatéral suit le calendrier standard en quatre périodes (25 % / 40 % / 50 % / 100 % du DA mis en gage **restant** brûlé sur 120 / 90 / 90 / 65 jours, 365 jours au total). 100 % du DA brûlé est définitivement détruit ; la valeur USDT correspondante au `loan.price` est dirigée vers le Pool de Liquidité du DA. L'emprunteur ne reçoit **pas** d'USDT pour la portion brûlée - la seule récupération économique d'un lot en défaut est l'USDT reçu à l'émission.

  **La récupération partielle est toujours disponible.** L'emprunteur peut appeler `repay()` entre deux périodes d'auto-vente et récupérer le DA mis en gage **restant** en ne payant que pour ce qui est encore mis en gage. Le DA déjà brûlé dans les périodes précédentes ne peut pas être récupéré, mais tout brûlage futur peut encore être stoppé en remboursant avant sa limite de période.
</Warning>

<Note>
  **`repay()` après le début de l'auto-vente - comportement corrigé post-CertiK (RWA-58) :** Les versions antérieures du contrat annulaient `repay()` une fois que le lot avait franchi le cycle d'auto-vente. Après l'audit CertiK, cette correction a été apportée : `repay()` est désormais appelable à n'importe quel stade de la vie du prêt. Lorsque le lot a déjà franchi un déclencheur d'auto-vente, le contrat exécute d'abord `_processExpiredStacks()` pour régler chaque période dont la limite est déjà passée - ce qui brûle la part correspondante du collatéral - puis procède contre le reste post-brûlage.

  Conséquence pratique : un `repay()` tardif ne peut pas « devancer » un brûlage déjà déclenché. Pour préserver **l'intégralité** du collatéral, l'emprunteur doit rembourser avant de franchir le premier déclencheur d'auto-vente (Période 1, actuellement le jour 120 de la vie du lot).
</Note>

<Card title="Mécanique Complète du Lending →" icon="hand-holding-dollar" href="/fr/da-lending">
  Éligibilité, condition d'émission des 30 jours, formules, remboursement partiel avec exemples détaillés, calcul complet du défaut, et tableau des paramètres - tout sur une page dédiée.
</Card>

<SellVsLend />
