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

# Mecánica del Token DA

> El modelo de precio solo al alza.

export const DaPriceSimulator = () => {
  if (typeof window === 'undefined') {
    return null;
  }
  var [minted, setMinted] = useState(1000000);
  var [liquidity, setLiquidity] = useState(1000000);
  var [burned, setBurned] = useState(0);
  var [dbMinted, setDbMinted] = useState(1000000);
  var [dbLiquidity, setDbLiquidity] = useState(1000000);
  var [dbBurned, setDbBurned] = useState(0);
  var timerRef = useRef(null);
  useEffect(function () {
    if (timerRef.current) clearTimeout(timerRef.current);
    timerRef.current = setTimeout(function () {
      setDbMinted(minted);
      setDbLiquidity(liquidity);
      setDbBurned(burned);
    }, 150);
    return function () {
      if (timerRef.current) clearTimeout(timerRef.current);
    };
  }, [minted, liquidity, burned]);
  var fmtUsd = function (n) {
    if (n >= 1000000) return '$' + (n / 1000000).toFixed(1) + 'M';
    if (n >= 1000) return '$' + (n / 1000).toFixed(1) + 'K';
    if (n >= 100) return '$' + Math.round(n);
    if (n >= 10) return '$' + n.toFixed(1);
    return '$' + n.toFixed(2);
  };
  var fmtUsdFull = function (n) {
    var digits = Math.abs(n) >= 10000 ? 0 : 2;
    return new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'USD',
      maximumFractionDigits: digits
    }).format(n);
  };
  var fmtNum = function (n) {
    return new Intl.NumberFormat('en-US').format(Math.round(n));
  };
  var circulating = minted - burned;
  if (circulating < 1) circulating = 1;
  var price = liquidity / circulating;
  var basePrice = liquidity / minted;
  var priceChange = (price - basePrice) / Math.max(basePrice, 0.0001) * 100;
  var burnedMax = minted - 1;
  var actualBurned = burned > burnedMax ? burnedMax : burned;
  var moonCirculating = Math.max(minted * 0.05, 1);
  var moonPrice = liquidity / moonCirculating;
  var chartData = useMemo(function () {
    var points = [];
    var steps = 200;
    for (var i = 0; i <= steps; i++) {
      var pct = i / steps * 95;
      var b = pct / 100 * dbMinted;
      var s = dbMinted - b;
      if (s < 1) s = 1;
      var p = dbLiquidity / s;
      points.push({
        pct: pct,
        burned: b,
        price: p
      });
    }
    return points;
  }, [dbMinted, dbLiquidity]);
  var W = 640, H = 280;
  var PAD = {
    top: 28,
    right: 56,
    bottom: 44,
    left: 64
  };
  var cW = W - PAD.left - PAD.right;
  var cH = H - PAD.top - PAD.bottom;
  var minP = chartData[0] ? chartData[0].price : 1;
  var maxP = chartData[chartData.length - 1] ? chartData[chartData.length - 1].price : minP * 2;
  var capP = minP * 50;
  var displayMaxP = Math.min(maxP, capP);
  var yPad = (displayMaxP - minP) * 0.08 || 0.01;
  displayMaxP = displayMaxP + yPad;
  var sqrtScale = function (val) {
    var norm = (Math.min(val, displayMaxP) - minP) / (displayMaxP - minP || 0.01);
    if (norm < 0) norm = 0;
    return Math.sqrt(norm);
  };
  var getX = function (pct) {
    return PAD.left + pct / 95 * cW;
  };
  var getY = function (p) {
    return PAD.top + cH - sqrtScale(p) * cH;
  };
  var currentPct = dbMinted > 0 ? dbBurned / dbMinted * 100 : 0;
  if (currentPct > 95) currentPct = 95;
  var currentChartPrice = dbLiquidity / Math.max(dbMinted - dbBurned, 1);
  var pathParts = [];
  for (var k = 0; k < chartData.length; k++) {
    var d = chartData[k];
    var px = getX(d.pct).toFixed(1);
    var py = getY(d.price).toFixed(1);
    pathParts.push((k === 0 ? 'M' : 'L') + ' ' + px + ' ' + py);
  }
  var pathD = pathParts.join(' ');
  var lastPt = chartData[chartData.length - 1];
  var areaD = pathD + ' L ' + getX(lastPt.pct).toFixed(1) + ' ' + (PAD.top + cH) + ' L ' + getX(0).toFixed(1) + ' ' + (PAD.top + cH) + ' Z';
  var dotX = getX(currentPct);
  var dotY = getY(currentChartPrice);
  var milestones = [10, 100, 1000, 10000];
  var visibleMilestones = milestones.filter(function (m) {
    return m > minP * 1.2 && m < displayMaxP * 0.95;
  });
  var xPcts = [0, 20, 40, 60, 80];
  var yLabelFracs = [0, 0.25, 0.5, 0.75, 1];
  var hdZoneX = getX(50);
  var hdZoneW = getX(95) - hdZoneX;
  var 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'
  };
  var pulseKeyframes = '@keyframes daPulse{0%,100%{opacity:0.6;r:12}50%{opacity:0.2;r:18}}';
  return <div style={{
    backgroundColor: '#000000',
    color: '#FFFFFF',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="p-6 rounded-xl not-prose">

      {}
      <style>{pulseKeyframes}</style>

      {}
      <div className="flex items-center justify-between mb-6">
        <h3 style={{
    color: '#FFFFFF',
    margin: 0
  }} className="text-lg font-serif italic">DA Price Simulator</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)',
    fontSize: '11px',
    padding: '4px 12px',
    borderRadius: '9999px',
    fontWeight: 500
  }}>Interactive</span>
      </div>

      {}
      <div className="grid grid-cols-1 sm:grid-cols-3 gap-4 mb-6">
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <label style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '11px',
    fontWeight: 500,
    display: 'block',
    marginBottom: '4px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em'
  }}>DA Minted</label>
          <span style={{
    color: '#FFFFFF',
    fontSize: '18px',
    fontWeight: 800,
    display: 'block',
    marginBottom: '8px'
  }}>{fmtNum(minted)} DA</span>
          <input type="range" min="10000" max="21000000" step="10000" value={minted} onChange={function (e) {
    var val = Number(e.target.value);
    setMinted(val);
    if (burned >= val) setBurned(val - 1);
  }} className="w-full cursor-pointer" style={sliderStyle} />
          <div className="flex justify-between text-[10px] mt-1">
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>10,000</span>
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>21,000,000</span>
          </div>
        </div>
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <label style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '11px',
    fontWeight: 500,
    display: 'block',
    marginBottom: '4px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em'
  }}>USDT Liquidity Pool</label>
          <span style={{
    color: '#FFFFFF',
    fontSize: '18px',
    fontWeight: 800,
    display: 'block',
    marginBottom: '8px'
  }}>{fmtUsdFull(liquidity)}</span>
          <input type="range" min="10000" max="100000000" step="10000" value={liquidity} onChange={function (e) {
    setLiquidity(Number(e.target.value));
  }} className="w-full cursor-pointer" style={sliderStyle} />
          <div className="flex justify-between text-[10px] mt-1">
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>$10,000</span>
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>$100,000,000</span>
          </div>
        </div>
        {}
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4">
          <label style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '11px',
    fontWeight: 500,
    display: 'block',
    marginBottom: '4px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em'
  }}>DA Burned</label>
          <span style={{
    color: '#FFFFFF',
    fontSize: '18px',
    fontWeight: 800,
    display: 'block',
    marginBottom: '8px'
  }}>{fmtNum(actualBurned)} DA</span>
          <input type="range" min="0" max={burnedMax} step="10000" value={actualBurned} onChange={function (e) {
    setBurned(Number(e.target.value));
  }} className="w-full cursor-pointer" style={sliderStyle} />
          <div className="flex justify-between text-[10px] mt-1">
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>0</span>
            <span style={{
    color: 'rgba(255,255,255,0.5)'
  }}>{fmtNum(burnedMax)}</span>
          </div>
        </div>
      </div>

      {}
      <div className="mb-6" style={{
    display: 'flex',
    flexWrap: 'wrap',
    gap: '16px',
    alignItems: 'center'
  }}>
        {}
        <div style={{
    flexShrink: 0,
    display: 'flex',
    justifyContent: 'center'
  }} className="w-[160px] sm:w-[140px] mx-auto sm:mx-0">
          <video autoPlay muted loop playsInline style={{
    borderRadius: '12px',
    objectFit: 'cover'
  }} className="w-[160px] h-[160px] sm:w-[140px] sm:h-[140px]">
            <source src="/DAalpha-Uncompressed8-bit422.webm" type="video/webm" />
          </video>
        </div>
        {}
        <div style={{
    flex: '1 1 0%',
    minWidth: '240px',
    display: 'flex',
    flexWrap: 'wrap',
    gap: '12px'
  }}>
          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)',
    flex: '1 1 160px'
  }} className="rounded-xl p-4">
            <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em',
    marginBottom: '4px'
  }}>DA Price</div>
            <div style={{
    color: '#4ade80',
    fontSize: '28px',
    fontWeight: 900,
    lineHeight: 1.2
  }}>{fmtUsdFull(price)}</div>
            <div style={{
    color: 'rgba(255,255,255,0.7)',
    fontSize: '12px',
    fontWeight: 600,
    marginTop: '4px'
  }}>
              {priceChange >= 0 ? 'Up' : 'Down'} {Math.abs(priceChange).toFixed(2)}% from base
            </div>
          </div>
          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)',
    flex: '1 1 160px'
  }} className="rounded-xl p-4">
            <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em',
    marginBottom: '4px'
  }}>Circulating Supply</div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '20px',
    fontWeight: 900
  }}>{fmtNum(circulating)} DA</div>
            <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    marginTop: '4px'
  }}>of 21M hard cap</div>
          </div>
          {}
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)',
    flex: '1 1 160px'
  }} className="rounded-xl p-4">
            <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px',
    textTransform: 'uppercase',
    letterSpacing: '0.05em',
    marginBottom: '4px'
  }}>Liquidity Pool</div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '20px',
    fontWeight: 900
  }}>{fmtUsdFull(liquidity)}</div>
            <div style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    marginTop: '4px'
  }}>100% USDT backed</div>
          </div>
        </div>
      </div>

      {}
      <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-4 overflow-x-auto">
        <div style={{
    color: 'rgba(255,255,255,0.6)',
    fontSize: '12px',
    fontWeight: 600,
    marginBottom: '8px'
  }}>Price vs Burn Percentage</div>
        <svg viewBox={'0 0 ' + W + ' ' + H} className="w-full" style={{
    minWidth: '400px'
  }}>
          <defs>
            <linearGradient id="daAreaGrad" x1="0" y1="0" x2="1" y2="0">
              <stop offset="0%" stopColor="#4ade80" stopOpacity="0.03" />
              <stop offset="100%" stopColor="#4ade80" stopOpacity="0.25" />
            </linearGradient>
          </defs>

          {}
          <rect x={hdZoneX} y={PAD.top} width={hdZoneW} height={cH} fill="rgba(251,191,36,0.04)" />
          <text x={hdZoneX + 6} y={PAD.top + 12} fill="rgba(251,191,36,0.3)" style={{
    fontSize: '8px',
    fontWeight: 500
  }}>High Deflation Zone</text>

          {}
          {yLabelFracs.map(function (frac, idx) {
    var val = minP + (displayMaxP - minP) * frac;
    var y = getY(val);
    return <line key={'yg-' + idx} x1={PAD.left} y1={y} x2={W - PAD.right} y2={y} stroke="rgba(255,255,255,0.05)" strokeWidth="0.5" />;
  })}

          {}
          {visibleMilestones.map(function (m) {
    var y = getY(m);
    return <g key={'ms-' + m}>
                <line x1={PAD.left} y1={y} x2={W - PAD.right} y2={y} stroke="rgba(255,255,255,0.08)" strokeWidth="0.5" strokeDasharray="4 4" />
                <text x={W - PAD.right + 4} y={y + 3} fill="rgba(255,255,255,0.35)" style={{
      fontSize: '8px'
    }}>{fmtUsd(m)}</text>
              </g>;
  })}

          {}
          {yLabelFracs.map(function (frac, idx) {
    var val = minP + (displayMaxP - minP) * frac;
    var y = getY(val);
    return <text key={'yl-' + idx} x={PAD.left - 8} y={y} textAnchor="end" dominantBaseline="middle" fill="rgba(255,255,255,0.4)" style={{
      fontSize: '9px'
    }}>
                {fmtUsd(val)}
              </text>;
  })}

          {}
          <path d={areaD} fill="url(#daAreaGrad)" />

          {}
          <path d={pathD} fill="none" stroke="#4ade80" strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round" />

          {}
          <line x1={dotX} y1={PAD.top} x2={dotX} y2={PAD.top + cH} stroke="rgba(255,255,255,0.15)" strokeWidth="1" strokeDasharray="4 3" />

          {}
          <circle cx={dotX} cy={dotY} r="12" fill="none" stroke="#4ade80" strokeWidth="1.5" opacity="0.4" style={{
    animation: 'daPulse 2s ease-in-out infinite'
  }} />

          {}
          <circle cx={dotX} cy={dotY} r="6" fill="#4ade80" stroke="#000000" strokeWidth="2" />

          {}
          <rect x={dotX + 10} y={dotY - 12} width={Math.max(fmtUsd(currentChartPrice).length * 7 + 12, 48)} height={20} rx="4" fill="rgba(0,0,0,0.7)" stroke="rgba(74,222,128,0.3)" strokeWidth="1" />
          <text x={dotX + 16} y={dotY + 2} fill="#4ade80" style={{
    fontSize: '10px',
    fontWeight: 700
  }}>{fmtUsd(currentChartPrice)}</text>

          {}
          {xPcts.map(function (pct) {
    return <text key={'xl-' + pct} x={getX(pct)} y={H - PAD.bottom + 18} textAnchor="middle" fill="rgba(255,255,255,0.4)" style={{
      fontSize: '9px'
    }}>
                {pct}%
              </text>;
  })}
          <text x={W / 2} y={H - 4} textAnchor="middle" fill="rgba(255,255,255,0.3)" style={{
    fontSize: '8px'
  }}>Burn Percentage (% of Minted Supply)</text>
        </svg>

        {}
        <div className="flex items-center gap-4 mt-2" style={{
    paddingLeft: PAD.left + 'px'
  }}>
          <div className="flex items-center gap-1">
            <span style={{
    display: 'inline-block',
    width: '8px',
    height: '8px',
    borderRadius: '50%',
    backgroundColor: '#4ade80'
  }} />
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>DA Price</span>
          </div>
          <div className="flex items-center gap-1">
            <span style={{
    display: 'inline-block',
    width: '8px',
    height: '8px',
    borderRadius: '50%',
    backgroundColor: '#4ade80',
    boxShadow: '0 0 6px rgba(74,222,128,0.6)'
  }} />
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>Current Position</span>
          </div>
          <div className="flex items-center gap-1">
            <span style={{
    display: 'inline-block',
    width: '12px',
    height: '6px',
    backgroundColor: 'rgba(251,191,36,0.15)',
    borderRadius: '2px'
  }} />
            <span style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>High Deflation Zone</span>
          </div>
        </div>

        {}
        <div style={{
    marginTop: '10px',
    paddingLeft: PAD.left + 'px'
  }}>
          <span style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px'
  }}>
            If 95% of supply is burned:{' '}
            <span style={{
    color: '#FFFFFF',
    fontWeight: 700
  }}>{fmtUsdFull(moonPrice)}</span>
            {' '}USDT per DA
          </span>
        </div>
      </div>

      {}
      <p style={{
    color: 'rgba(255,255,255,0.4)',
    fontSize: '12px',
    lineHeight: 1.6,
    marginTop: '16px',
    marginBottom: 0
  }}>
        Direct formula calculator. DA Price = Liquidity Pool ÷ Circulating Supply. Supply starts at 0 and grows via farming — hard cap 21M. Every sale burns 100% of sold tokens. On every sale, 25% (manual) or 30% (auto) of USDT backing stays in the pool — this drives the price upward.
      </p>
    </div>;
};

<CardGroup cols={2}>
  <Card title="Hard Cap de 21M" icon="cube">
    Suministro máximo fijado para siempre. Sin inflación, sin acuñación.
  </Card>

  <Card title="Respaldo 100% USDT" icon="shield-check">
    Cada token DA respaldado por USDT real en el pool de liquidez.
  </Card>

  <Card title="Quema en Cada Venta" icon="fire">
    El 100% de los tokens vendidos se quema permanentemente. El usuario recibe 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 como respaldo en el pool — esto es lo que impulsa al alza el precio del DA.
  </Card>

  <Card title="Sin Transferencias P2P" icon="ban">
    El DA solo puede venderse, prestarse o reembolsarse — no hay transferencias entre pares.
  </Card>
</CardGroup>

## Fórmula del Precio "Solo al Alza"

Precio = Liquidez ÷ Suministro Circulante

Cada vez que se vende DA, se queman tokens (el suministro baja) mientras el USDT permanece en el pool (la liquidez se mantiene o crece). Menos tokens ÷ el mismo o más USDT = mayor precio por token.

<Info>
  **Cómo funciona:** 200 DA en circulación, 200 USDT en el pool de liquidez. Precio = 1,00 USDT por DA. Un usuario vende 100 DA. El pool paga 70 USDT (70% del valor de 100 USDT). Los 100 DA se queman en su totalidad. Resultado: quedan 100 DA, 130 USDT en el pool. Nuevo precio = 130 ÷ 100 = **1,30 USDT por DA**.
</Info>

<Tip>
  La comisión del 5% sobre todas las recompensas de marketing fluye directamente al pool de liquidez del DA — independiente de los porcentajes de venta. Liquidez adicional procede de las comisiones de Lending, los ingresos de RWA y los ingresos de FinPro.
</Tip>

<Info>
  **Protección del Suministro Semilla:** Una pequeña reserva permanente de DA — el **Suministro Semilla** — se predeposita en el protocolo en el lanzamiento como salvaguarda técnica para la fórmula de precios.

  * **Permanente y no vendible.** El Suministro Semilla está bloqueado a nivel del protocolo: **no puede quemarse**, **no puede venderse** (ni manualmente ni mediante auto-venta) y queda **excluido de los ciclos de auto-venta**.
  * **Fuera de circulación.** **No se cuenta como suministro circulante** y nunca participa en los saldos de los usuarios, en farming, lending o distribuciones de marketing.
  * **Garantiza un denominador distinto de cero.** Como `Precio = Liquidez ÷ Suministro Circulante`, la fórmula nunca debe dividir entre cero. El Suministro Semilla garantiza `totalSupply > 0` en todo momento, por lo que la función de precio siempre está definida — incluso en el caso extremo en que cada otro token en circulación haya sido quemado.
  * **Protección solo para casos límite.** En operación normal el Suministro Semilla no influye en el descubrimiento de precios. Existe puramente como un suelo determinista que mantiene `getPrice()` bien definido cuando hay liquidez presente pero el suministro circulante alcanzaría cero de otro modo.
</Info>

## Fuentes del Pool de Liquidez

El Pool de Liquidez es el cimiento de la economía del DA. Se nutre de múltiples fuentes en todo el ecosistema RWANFTFI, asegurando un crecimiento continuo del respaldo del token. Cada flujo de ingresos del protocolo desemboca en un único pool, reforzando la fórmula Precio = Liquidez ÷ Suministro.

<AccordionGroup>
  <Accordion title="Actividad de NFT">
    **Compras de NFT** — el 20% de cada compra de NFT se enruta automáticamente al Pool de Liquidez para acuñar nuevo DA.

    **Rebuy y Autobuy** — un 20% adicional de cada compra repetida o automática de NFT fluye al Pool de Liquidez. Esto incentiva la renovación de posiciones y respalda el crecimiento del sistema.
  </Accordion>

  <Accordion title="Tarifas y Comisiones">
    **Tasa de Recompensas de Marketing** — el 5% de todas las recompensas de marketing en la red de referidos se dirige automáticamente al Pool de Liquidez. La actividad de la red fortalece directamente el respaldo del DA.

    **Comisión de Transferencia del Saldo Acumulativo** — al transferir Saldo Acumulativo a otro usuario, el 20% del monto transferido se enruta al Pool de Liquidez del DA. Cualquier movimiento del Saldo Acumulativo — ya sea usado en una compra de NFT o transferido entre wallets — genera una entrada del 20% al Pool.

    **Comisión de Compra con Saldo Acumulativo** — al comprar un NFT usando el Saldo Acumulativo, el 20% del monto integrado se enruta al Pool de Liquidez del DA para acuñar nuevo DA. Ejemplo: 898 USDT en el Saldo Acumulativo — al integrarse en la compra de un NFT, 718 USDT van al coste del NFT y 180 USDT (20% de 898) fluyen al Pool de Liquidez del DA. Cada una de estas compras repone el Pool y crea la base para nuevo DA.

    **Comisión de Lending** — al solicitar un préstamo, el prestatario paga una comisión única del 5% dirigida al Pool de Liquidez. Ejemplo: préstamo de \$1.000, el prestatario recibe \$950, \$50 van al Pool. La comisión se cobra con cada nuevo préstamo.
  </Accordion>

  <Accordion title="Fondos Expirados y No Utilizados">
    **Auto-Venta con Límite de Ingresos en Cero** — si se activa la auto-venta de DA y el usuario tiene un Límite de Ingresos cero en su NFT, el 100% de los ingresos va al Pool de Liquidez o a la quema de DA (el mecanismo exacto lo determina la configuración del DAO).

    **Vouchers Expirados** — si los Vouchers permanecen sin usar durante 365 días, el 100% de los fondos se dirige al Pool de Liquidez. Esto evita fondos inactivos y elimina pasivos inactivos.

    **Saldo Acumulativo No Utilizado** — si el Saldo Acumulativo permanece sin usarse durante 120 días, el 70% de los fondos se dirige al Pool de Liquidez para acuñar nuevo DA.
  </Accordion>

  <Accordion title="Ingresos Externos">
    **Comisiones SWAP** — las comisiones de todas las operaciones de intercambio (SWAP) se enrutan automáticamente al Pool de Liquidez.

    **Comisiones de Tarjetas Débito** — las comisiones del programa de Tarjeta Débito fluyen al Pool de Liquidez, creando flujo de caja real desde la economía externa.

    **Ingresos de RWA** — una parte de los ingresos procedentes de bienes raíces, alquileres, activos comerciales y otros activos del mundo real se dirige al Pool de Liquidez, anclando el sistema a la economía real.

    **Ingresos de FinPro** — una parte de los beneficios de los productos financieros (Lending, productos de inversión, servicios financieros) fluye al Pool de Liquidez.

    **Ingresos del Ecosistema** — una parte de los ingresos totales del protocolo puede dirigirse al Pool de Liquidez o utilizarse para crear liquidez adicional para acuñar nuevo DA.
  </Accordion>
</AccordionGroup>

## Mecánica de Quema del DA

La quema del DA es el mecanismo deflacionario central — reduce el suministro de tokens y genera presión sostenida al alza sobre el valor del activo.

<CardGroup cols={3}>
  <Card title="Venta Manual" icon="fire">
    El 100% del DA vendido se quema permanentemente. El usuario recibe el 75% del valor en USDT. El 25% restante es una comisión del protocolo que permanece en el pool como respaldo, impulsando el crecimiento del precio.
  </Card>

  <Card title="Auto-Venta" icon="clock">
    El 100% del DA auto-vendido se quema permanentemente. El usuario recibe el 70% del valor en USDT. El 30% restante es una comisión del protocolo que permanece en el pool como respaldo, impulsando el crecimiento del precio. Se activa progresivamente desde el saldo restante a lo largo de 4 períodos (365 días / 1 año en total).
  </Card>

  <Card title="Default de Préstamo" icon="ban">
    Si un préstamo no se reembolsa, el DA colateralizado se quema progresivamente a través del ciclo de auto-venta. Protege la liquidez del sistema y refuerza la disciplina financiera.
  </Card>
</CardGroup>

## Acceso Instantáneo y Ciclo de Auto-Venta

### Acceso Instantáneo

Los tokens DA están 100% disponibles para el usuario desde el momento en que se hace farming. No hay período de bloqueo. El usuario puede inmediatamente:

* **Vender manualmente** — recibir el 75% del valor en USDT, el 100% de los tokens se quema
* **Tomar un préstamo** — 70% LTV contra el colateral DA, comisión del 5%
* **Mantener y esperar** — guardar los tokens y beneficiarse del crecimiento del precio con el tiempo

### Ciclo de Auto-Venta

Si el usuario no vende manualmente, el sistema activa ventas automáticas desde el **saldo restante** 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 — Después de 120 días (~4 meses)">
    Se auto-vende el 25% del saldo actual. 25% de 100 = **25 DA vendidos** → Restante: **75 DA**
  </Step>

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

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

  <Step title="Período 4 — Después de 65 días más (~2 meses, día 365)">
    Se auto-vende el 100% del saldo restante. 100% de 22,5 = **22,5 DA 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 el momento del disparo de ese período — no al precio original de farming. El 100% de los tokens auto-vendidos se queman, y el usuario recibe el 70% del valor en USDT al precio en la fecha de la auto-venta. Como el precio crece con el tiempo, los períodos posteriores queman tokens a un precio más alto, acelerando la deflación.

El usuario puede vender manualmente en cualquier momento antes de que se active la auto-venta, recibiendo el 75% en lugar del 70%.

<Tip>
  La venta manual (pago del 75%) es siempre más rentable por token que la auto-venta (pago del 70%). Sin embargo, la auto-venta se beneficia del crecimiento del precio en el tiempo — los períodos posteriores se ejecutan a un precio más alto del DA.
</Tip>

<Warning>
  **Auto-Venta con Límite de Ingresos en Cero:** Si se activa la auto-venta y el usuario tiene Límite de Ingresos cero (NFT no renovado), el 100% de los ingresos va al Pool de Liquidez o a la quema de DA (lo determina la DAO). El usuario no recibe nada. Mantén siempre un Límite de Ingresos activo.
</Warning>

## Lending Multi-Lote

Cada lote de DA de cada ciclo de minería sirve como colateral independiente. Esto permite un ciclo continuo de micro-préstamos:

<Steps>
  <Step title="Mina el Lote 1">
    El usuario completa un ciclo de minería y recibe el lote 1 de DA.
  </Step>

  <Step title="Pide prestado contra el Lote 1">
    El usuario toma un préstamo al 70% LTV fijo contra el lote 1 (comisión única del 5% al emitirse, enrutada al Pool de Liquidez).
  </Step>

  <Step title="Mina el Lote 2">
    El usuario inicia un nuevo ciclo de minería y recibe el lote 2 de DA.
  </Step>

  <Step title="Pide prestado contra el Lote 2">
    El usuario toma otro préstamo al 70% LTV fijo contra el lote 2 (comisión única del 5% al emitirse, separada de la del Lote 1).
  </Step>
</Steps>

Esto permite múltiples micro-préstamos simultáneos, uno por cada lote de DA. Cada préstamo es independiente - vinculado a su propio lote - y permanece activo hasta que el stack de ese lote entra en el ciclo de auto-venta. Si algún préstamo individual entra en default, solo se quema el colateral de ese lote - no todas las tenencias de DA.

Para una comparación detallada entre vender y prestar, consulta [Venta y Lending](/es/da-selling-lending). El Lending también admite reembolsos parciales y recuperación proporcional en caso de default. Consulta [Mecánica del Lending](/es/da-lending) para el desglose completo.

## Ciclo Deflacionario

Dos veces al año el sistema activa un Ciclo Deflacionario especial que dura hasta 30 días, diseñado para intensificar la escasez del token.

<Steps>
  <Step title="Pausa de nuevos ciclos">
    Se pausa el inicio de nuevos ciclos de minería de NFTM, staking y generación de DA durante el Ciclo Deflacionario. **Los ciclos activos iniciados antes del Ciclo Deflacionario continúan en marcha y se completan según lo programado** — los usuarios con minería ya en curso no pierden su progreso.
  </Step>

  <Step title="Activación de mecanismos de venta">
    Se activan los mecanismos automáticos o voluntarios de venta de DA.
  </Step>

  <Step title="Quema diaria">
    Una porción de los tokens se quema a diario.
  </Step>

  <Step title="El suministro se reduce">
    El suministro en el mercado se reduce, fortaleciendo la presión al alza del precio.
  </Step>
</Steps>

<Info>
  El Ciclo Deflacionario hace que la economía del DA sea predecible, manejable y sostenible a largo plazo.
</Info>

Mayor actividad → mayor liquidez → mayor emisión de DA → mayor quema → mayor escasez → mayor valor del activo. Este sistema en bucle cerrado significa que cuanto más activamente se desarrolla el ecosistema, más fuerte se vuelve la economía del DA.

<DaPriceSimulator />
