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

# Venta y Lending

> Venta manual al 75% del pago en USDT, auto-venta al 70% en un ciclo de cuatro períodos de 365 días y préstamo al 70% LTV fijo contra colateral de DA con una comisión única del 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>;
};

Una vez que un usuario tiene DA, dispone de dos opciones financieras principales: vender el activo o usarlo como colateral para un préstamo.

<CardGroup cols={2}>
  <Card title="Vender DA" icon="fire">
    El 100% del DA vendido se quema permanentemente. Recibes el 75% (manual) o el 70% (automático) del valor en USDT. El 25% (manual) o 30% (automático) restante es una comisión del protocolo que permanece en el pool como respaldo e impulsa al alza el precio del DA.
  </Card>

  <Card title="Lending de DA" icon="building-columns">
    Pide prestado al 70% LTV fijo en USDT contra tu DA. Se paga una comisión única del 5% al emitirse y nunca se vuelve a cobrar en el reembolso. Tu DA permanece en tu TokenStack hasta que reembolses (total o parcialmente) o el lote entre en su ciclo de auto-venta.
  </Card>
</CardGroup>

## Venta de DA y Mecánica de Quema

Al vender DA, hay dos escenarios distintos con diferentes condiciones:

1. **Venta Manual (el usuario vende por iniciativa propia):**
   * El usuario recibe el **75%** del valor del DA en USDT al precio actual.
   * El **100%** de los tokens DA vendidos se queman permanentemente.
   * El 25% restante es una comisión del protocolo que permanece en el pool como respaldo en USDT — con menos tokens y la misma liquidez, este 25% impulsa directamente el crecimiento del precio.

2. **Auto-Venta (se activa cuando expira el período del TokenStack):**
   * El usuario recibe el **70%** del valor del DA en USDT al precio en la fecha de la auto-venta.
   * El **100%** de los tokens DA auto-vendidos se queman permanentemente.
   * El 30% restante es una comisión del protocolo que permanece en el pool como respaldo en USDT — este 30% es lo que impulsa el precio al alza.
   * La auto-venta se activa automáticamente si el usuario no ha vendido manualmente antes de que expire el período.

En ambos casos, el 100% de los tokens vendidos se quema — el 25%/30% representa la comisión del protocolo que permanece en el pool como respaldo en USDT. Este es el mecanismo que impulsa el crecimiento del precio: menos tokens + misma liquidez = mayor precio por DA. La auto-venta ofrece un pago un 5% inferior, incentivando a los usuarios a gestionar activamente sus posiciones de DA.

<Warning>
  **La venta de DA consume el Límite de Ingresos de tu NFT.** Cada venta manual o auto-venta de DA reduce el Límite de Ingresos restante de tu NFT por el monto del pago en USDT — en igualdad de condiciones con las recompensas de marketing. Si el Límite de Ingresos está agotado, la venta manual de DA no es posible (el sistema no puede acreditar el pago), y en una auto-venta el 100% de los ingresos se enruta al Pool de Liquidez del DA o a la quema (el mecanismo exacto lo determina la configuración del DAO). Mantén tu Límite de Ingresos activo — mediante Autobuy o renovación manual del NFT — para recibir el pago al vender DA.
</Warning>

<Info>
  La **auto-venta** se activa automáticamente si no vendes manualmente antes de que expire el período del TokenStack. Paga un 5% menos (70% frente al 75%), incentivando la gestión activa.
</Info>

## Períodos de Auto-Venta

El DA está 100% disponible para el usuario inmediatamente al hacer farming — no hay período de bloqueo. El usuario puede vender manualmente en cualquier momento (recibiendo el 75% en USDT) o tomar un préstamo contra su DA. Si el usuario **no** actúa, el sistema activa ventas forzadas automáticas desde el **saldo restante** progresivamente a lo largo de 4 períodos que abarcan **365 días (1 año)** en total. Las duraciones de los períodos están denominadas en días on-chain (120 / 90 / 90 / 65 días); las referencias a meses a continuación son aproximaciones para facilitar la lectura.

**Ejemplo comenzando con 100 DA:**

<Steps>
  <Step title="Período 1 — 25% auto-venta tras 120 días (~4 meses)">
    Si no has vendido manualmente en 120 días (\~4 meses), se auto-vende el 25% de tu saldo actual de DA. 25% de 100 DA = **25 DA auto-vendidos** → Recibes el 70% del valor en USDT al precio actual → 100% de los 25 DA quemados → Restante: **75 DA**
  </Step>

  <Step title="Período 2 — 40% auto-venta tras 90 días más (~3 meses, día 210)">
    Se auto-vende el 40% del saldo restante. 40% de 75 DA = **30 DA auto-vendidos** → Restante: **45 DA**
  </Step>

  <Step title="Período 3 — 50% auto-venta tras 90 días más (~3 meses, día 300)">
    Se auto-vende el 50% del saldo restante. 50% de 45 DA = **22,5 DA auto-vendidos** → Restante: **22,5 DA**
  </Step>

  <Step title="Período 4 — 100% auto-venta tras 65 días más (~2 meses, día 365)">
    Se auto-vende el 100% del saldo restante. Posición totalmente cerrada. 100% de 22,5 DA = **22,5 DA auto-vendidos** → Restante: **0 DA**
  </Step>
</Steps>

<Note>
  Los porcentajes de auto-venta (25% / 40% / 50% / 100%) mostrados arriba representan la configuración actual del protocolo. Los valores específicos se almacenan como parámetros del protocolo y están sujetos a procedimientos de gobernanza estándar. Consulta siempre el smart contract o la documentación actual del protocolo para los valores más recientes.
</Note>

Cada auto-venta se ejecuta al precio del DA en ese momento, no al precio original de farming. Como el precio crece con el tiempo, las auto-ventas posteriores queman tokens a un precio más alto — fortaleciendo aún más la deflación.

<Warning>
  **Auto-Venta con Límite de Ingresos en Cero:** Si se activa la auto-venta de DA y el usuario tiene Límite de Ingresos cero en su NFT (es decir, el NFT no se ha renovado), el 100% de los ingresos se dirige al Pool de Liquidez o a la quema de DA. El mecanismo exacto lo determina la configuración del DAO. Los usuarios deben mantener siempre un Límite de Ingresos activo para recibir su pago de auto-venta.
</Warning>

## Lending (Crédito contra DA)

Los titulares de NFT Premium y Elite (Nivel 5 y superior) pueden tomar un préstamo en USDT contra su colateral de DA en lugar de venderlo. El préstamo está colateralizado por un lote específico de DA de un único ciclo de minería y farming completado - el lote completo a la vez, no una fracción. Los niveles inferiores no ejecutan minería y no tienen colateral de DA contra el que pedir prestado.

Cada préstamo se emite al **70% LTV fijo** con una **comisión única del 5%** enrutada al Pool de Liquidez del DA al emitirse. No se cobra nada en el reembolso. El prestatario recibe el 95% del importe bruto del préstamo en su Saldo Regular. Ejemplo: para un lote de 100 DA a un precio del DA de 1,00 USDT, el préstamo bruto es 70 USDT, la comisión es 3,50 USDT y el pago neto al prestatario es 66,50 USDT.

La propiedad estructural definitoria es que el precio del DA queda capturado en `loan.price` al emitirse y nunca se reprecia después. El crecimiento posterior del precio del DA no incrementa la deuda - por lo que el prestatario extrae liquidez en USDT al precio actual mientras conserva el potencial de apreciación futura. El préstamo no tiene vencimiento fijo, puede reembolsarse total o parcialmente en cualquier momento antes de que el lote entre en su ciclo de auto-venta, y un lote determinado solo puede pigñorarse una vez a lo largo de toda su vida.

Si el préstamo no se reembolsa antes de que el lote entre en su ciclo de auto-venta, el DA pigñorado se quema progresivamente mediante el calendario estándar de cuatro períodos. El prestatario conserva el USDT recibido al emitirse; el valor en USDT de cada porción quemada fluye al Pool de Liquidez del DA. Entre los períodos de auto-venta, el prestatario aún puede intervenir y llamar a `repay()` para recuperar el DA que siga pigñorado.

<Warning>
  **Default en Lending - Quema Progresiva:** Si el préstamo no se reembolsa antes de que el lote colateralizado entre en su ciclo de auto-venta, el colateral sigue el calendario estándar de cuatro períodos (25% / 40% / 50% / 100% del DA pigñorado **restante** quemado a lo largo de 120 / 90 / 90 / 65 días, 365 días en total). El 100% del DA quemado se destruye permanentemente; el valor en USDT correspondiente a `loan.price` se enruta al Pool de Liquidez del DA. El prestatario **no** recibe USDT por la porción quemada - la única recuperación económica de un lote en default es el USDT recibido al emitirse.

  **La recuperación parcial siempre está disponible.** El prestatario puede llamar a `repay()` entre cualquier par de períodos de auto-venta y recuperar el DA pigñorado **restante** pagando únicamente por lo que sigue pigñorado. El DA ya quemado en períodos anteriores no puede recuperarse, pero cada quema futura aún puede detenerse reembolsando antes de su límite de período.
</Warning>

<Note>
  **`repay()` tras el inicio de la auto-venta - comportamiento corregido post-CertiK (RWA-58):** Las versiones anteriores del contrato revertían `repay()` una vez que el lote cruzaba al ciclo de auto-venta. Tras la auditoría de CertiK, esto fue corregido: `repay()` ahora puede llamarse en cualquier etapa de la vida del préstamo. Cuando el lote ya ha cruzado un disparador de auto-venta, el contrato primero ejecuta `_processExpiredStacks()` para liquidar todos los períodos cuyo límite ya ha pasado - quemando la parte correspondiente del colateral - y luego continúa contra el resto post-quema.

  Consecuencia práctica: un `repay()` tardío no puede "adelantarse" a una quema que ya se ha activado. Para preservar el colateral **íntegro**, el prestatario debe reembolsar antes de cruzar el primer disparador de auto-venta (Período 1, actualmente el día 120 de la vida del lote).
</Note>

<Card title="Mecánica Completa del Lending ->" icon="hand-holding-dollar" href="/es/da-lending">
  Elegibilidad, la ventana de emisión de 30 días, fórmulas, reembolso parcial con ejemplos resueltos, matemáticas completas del default y la tabla de parámetros - todo en una página dedicada.
</Card>

<SellVsLend />
