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

# Cơ Chế Token DA

> Mô hình giá chỉ tăng.

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="Giới Hạn Cứng 21M" icon="cube">
    Nguồn cung tối đa được cố định vĩnh viễn. Không có lạm phát, không có đúc thêm.
  </Card>

  <Card title="Bảo Chứng 100% USDT" icon="shield-check">
    Mỗi token DA được hậu thuẫn bởi USDT thực trong pool thanh khoản.
  </Card>

  <Card title="Đốt Trong Mỗi Lần Bán" icon="fire">
    100% token bán ra đều bị đốt vĩnh viễn. Người dùng nhận được 75% (thủ công) hoặc 70% (tự động) giá trị bằng USDT. 25% còn lại (thủ công) hoặc 30% (tự động) là hoa hồng giao thức ở lại trong pool làm tài sản bảo chứng — đây là yếu tố thúc đẩy giá DA tăng lên.
  </Card>

  <Card title="Không Có Chuyển Nhượng P2P" icon="ban">
    DA chỉ có thể được bán, cho vay, hoặc trả nợ — không có chuyển nhượng ngang hàng.
  </Card>
</CardGroup>

## Công Thức Giá "Chỉ Tăng"

Giá = Thanh khoản ÷ Nguồn cung lưu hành

Mỗi lần DA được bán, token bị đốt (nguồn cung giảm) trong khi USDT vẫn ở trong pool (thanh khoản giữ nguyên hoặc tăng). Ít token hơn ÷ cùng lượng hoặc nhiều USDT hơn = giá cao hơn cho mỗi token.

<Info>
  **Cách hoạt động:** 200 DA đang lưu hành, 200 USDT trong pool thanh khoản. Giá = 1,00 USDT mỗi DA. Người dùng bán 100 DA. Pool thanh toán 70 USDT (70% của 100 USDT giá trị). Toàn bộ 100 DA bị đốt. Kết quả: còn lại 100 DA, 130 USDT trong pool. Giá mới = 130 ÷ 100 = **1,30 USDT mỗi DA**.
</Info>

<Tip>
  Hoa hồng 5% trên tất cả phần thưởng marketing chảy trực tiếp vào pool thanh khoản DA — tách biệt với tỷ lệ phần trăm bán. Thanh khoản bổ sung đến từ phí Cho vay, doanh thu RWA, và doanh thu FinPro.
</Tip>

<Info>
  **Bảo Vệ Nguồn Cung Hạt Giống:** Một lượng dự trữ DA vĩnh viễn nhỏ — **Nguồn Cung Hạt Giống** — được nạp trước vào giao thức khi khởi động như một biện pháp bảo vệ kỹ thuật cho công thức định giá.

  * **Vĩnh viễn và không thể bán.** Nguồn Cung Hạt Giống bị khóa ở cấp giao thức: nó **không thể bị đốt**, **không thể được bán** (thủ công hoặc thông qua tự động bán), và bị **loại trừ khỏi các chu kỳ tự động bán**.
  * **Ngoài lưu hành.** Nó **không được tính là nguồn cung lưu hành** và không bao giờ tham gia vào số dư người dùng, farming, lending, hoặc phân phối marketing.
  * **Đảm bảo mẫu số khác không.** Vì `Giá = Thanh khoản ÷ Nguồn cung lưu hành`, công thức không bao giờ được chia cho 0. Nguồn Cung Hạt Giống đảm bảo `totalSupply > 0` mọi lúc, do đó hàm giá luôn được xác định — ngay cả trong trường hợp cực đoan khi mọi token khác trong lưu hành đã bị đốt.
  * **Bảo vệ chỉ trong trường hợp ngoại lệ.** Trong vận hành bình thường, Nguồn Cung Hạt Giống không có ảnh hưởng đến phát hiện giá. Nó tồn tại thuần túy như một sàn xác định giúp `getPrice()` được định nghĩa rõ ràng khi thanh khoản hiện diện nhưng nguồn cung lưu hành sẽ đạt đến 0.
</Info>

## Nguồn Pool Thanh Khoản

Pool Thanh khoản là nền tảng của kinh tế DA. Nó được tài trợ từ nhiều nguồn trên khắp hệ sinh thái RWANFTFI, đảm bảo tăng trưởng liên tục của tài sản bảo chứng token. Mỗi luồng doanh thu của giao thức đều chảy vào một pool duy nhất, củng cố công thức Giá = Thanh khoản ÷ Nguồn cung.

<AccordionGroup>
  <Accordion title="Hoạt Động NFT">
    **Mua NFT** — 20% từ mỗi giao dịch mua NFT được tự động chuyển vào Pool Thanh khoản để đúc DA mới.

    **Mua Lại & Autobuy** — thêm 20% từ mỗi giao dịch mua NFT lặp lại hoặc tự động chảy vào Pool Thanh khoản. Điều này khuyến khích gia hạn vị thế và hỗ trợ tăng trưởng hệ thống.
  </Accordion>

  <Accordion title="Phí & Hoa Hồng">
    **Thuế Phần Thưởng Marketing** — 5% của tất cả phần thưởng marketing trên mạng lưới giới thiệu được tự động chuyển vào Pool Thanh khoản. Hoạt động mạng lưới trực tiếp củng cố tài sản bảo chứng DA.

    **Phí Chuyển Số Dư Tích Lũy** — khi chuyển Số Dư Tích Lũy cho người dùng khác, 20% số tiền chuyển được chuyển vào Pool Thanh khoản DA. Bất kỳ chuyển động nào của Số Dư Tích Lũy — cho dù được sử dụng trong giao dịch mua NFT hay chuyển giữa các ví — đều tạo ra dòng vào 20% cho Pool.

    **Phí Mua Bằng Số Dư Tích Lũy** — khi mua NFT bằng Số Dư Tích Lũy, 20% số tiền tích hợp được chuyển vào Pool Thanh khoản DA để đúc DA mới. Ví dụ: 898 USDT trên Số Dư Tích Lũy — khi tích hợp vào giao dịch mua NFT, 718 USDT đi vào chi phí NFT, và 180 USDT (20% của 898) chảy vào Pool Thanh khoản DA. Mỗi giao dịch mua như vậy bổ sung Pool và tạo cơ sở cho DA mới.

    **Hoa Hồng Cho Vay** — khi vay, người vay trả hoa hồng một lần 5% được chuyển vào Pool Thanh khoản. Ví dụ: vay \$1.000, người vay nhận \$950, \$50 vào Pool. Hoa hồng được thu với mỗi khoản vay mới.
  </Accordion>

  <Accordion title="Tiền Hết Hạn & Không Sử Dụng">
    **Tự Động Bán Với Giới Hạn Thu Nhập Bằng 0** — nếu tự động bán DA kích hoạt và người dùng có Giới Hạn Thu Nhập bằng 0 trên NFT của họ, 100% tiền thu được sẽ được chuyển vào Pool Thanh khoản hoặc đốt DA (cơ chế chính xác do cài đặt DAO quyết định).

    **Voucher Hết Hạn** — nếu Voucher không được sử dụng trong 365 ngày, 100% tiền sẽ được chuyển vào Pool Thanh khoản. Điều này ngăn chặn tiền nhàn rỗi và loại bỏ các nghĩa vụ không hoạt động.

    **Số Dư Tích Lũy Không Sử Dụng** — nếu Số Dư Tích Lũy không được sử dụng trong 120 ngày, 70% tiền sẽ được chuyển vào Pool Thanh khoản để đúc DA mới.
  </Accordion>

  <Accordion title="Doanh Thu Bên Ngoài">
    **Hoa Hồng SWAP** — hoa hồng từ tất cả các thao tác trao đổi (SWAP) được tự động chuyển vào Pool Thanh khoản.

    **Hoa Hồng Thẻ Ghi Nợ** — hoa hồng từ chương trình Thẻ Ghi Nợ chảy vào Pool Thanh khoản, tạo ra dòng tiền thực từ nền kinh tế bên ngoài.

    **Doanh Thu RWA** — một phần doanh thu từ bất động sản, thu nhập cho thuê, tài sản thương mại, và các tài sản thế giới thực khác được chuyển vào Pool Thanh khoản, neo hệ thống vào nền kinh tế thực.

    **Doanh Thu FinPro** — một phần lợi nhuận từ các sản phẩm tài chính (Cho vay, sản phẩm đầu tư, dịch vụ tài chính) chảy vào Pool Thanh khoản.

    **Doanh Thu Hệ Sinh Thái** — một phần tổng doanh thu giao thức có thể được chuyển vào Pool Thanh khoản hoặc được sử dụng để tạo thanh khoản bổ sung cho việc đúc DA mới.
  </Accordion>
</AccordionGroup>

## Cơ Chế Đốt DA

Việc đốt DA là cơ chế giảm phát cốt lõi — nó làm giảm nguồn cung token và tạo áp lực tăng giá bền vững cho giá trị tài sản.

<CardGroup cols={3}>
  <Card title="Bán Thủ Công" icon="fire">
    100% DA bán ra bị đốt vĩnh viễn. Người dùng nhận 75% giá trị bằng USDT. 25% còn lại là hoa hồng giao thức ở lại trong pool làm tài sản bảo chứng, thúc đẩy tăng giá.
  </Card>

  <Card title="Tự Động Bán" icon="clock">
    100% DA tự động bán bị đốt vĩnh viễn. Người dùng nhận 70% giá trị bằng USDT. 30% còn lại là hoa hồng giao thức ở lại trong pool làm tài sản bảo chứng, thúc đẩy tăng giá. Kích hoạt lũy tiến từ số dư còn lại trong 4 giai đoạn (tổng cộng 365 ngày / 1 năm).
  </Card>

  <Card title="Vỡ Nợ Cho Vay" icon="ban">
    Nếu khoản vay không được trả, DA thế chấp được đốt lũy tiến qua chu kỳ tự động bán. Bảo vệ thanh khoản hệ thống và thực thi kỷ luật tài chính.
  </Card>
</CardGroup>

## Truy Cập Tức Thì & Chu Kỳ Tự Động Bán

### Truy Cập Tức Thì

Token DA có sẵn 100% cho người dùng từ thời điểm chúng được farm. Không có thời gian khóa. Người dùng có thể ngay lập tức:

* **Bán thủ công** — nhận 75% giá trị bằng USDT, 100% token bị đốt
* **Vay** — LTV 70% cố định dựa trên DA thế chấp, hoa hồng 5% một lần tại thời điểm phát hành
* **Giữ và chờ** — giữ token và hưởng lợi từ tăng giá theo thời gian

### Chu Kỳ Tự Động Bán

Nếu người dùng không bán thủ công, hệ thống kích hoạt bán tự động từ **số dư còn lại** trong 4 giai đoạn kéo dài tổng cộng **365 ngày (1 năm)**. Thời lượng giai đoạn được biểu thị bằng ngày on-chain (120 / 90 / 90 / 65 ngày); các tham chiếu tháng dưới đây là xấp xỉ để dễ đọc.

**Ví dụ bắt đầu với 100 DA:**

<Steps>
  <Step title="Giai đoạn 1 — Sau 120 ngày (~4 tháng)">
    25% số dư hiện tại được tự động bán. 25% của 100 = **25 DA bán** → Còn lại: **75 DA**
  </Step>

  <Step title="Giai đoạn 2 — Sau 90 ngày nữa (~3 tháng, ngày 210)">
    40% số dư còn lại được tự động bán. 40% của 75 = **30 DA bán** → Còn lại: **45 DA**
  </Step>

  <Step title="Giai đoạn 3 — Sau 90 ngày nữa (~3 tháng, ngày 300)">
    50% số dư còn lại được tự động bán. 50% của 45 = **22,5 DA bán** → Còn lại: **22,5 DA**
  </Step>

  <Step title="Giai đoạn 4 — Sau 65 ngày nữa (~2 tháng, ngày 365)">
    100% số dư còn lại được tự động bán. 100% của 22,5 = **22,5 DA bán** → Còn lại: **0 DA**
  </Step>
</Steps>

<Note>
  Tỷ lệ phần trăm tự động bán (25% / 40% / 50% / 100%) hiển thị ở trên đại diện cho cấu hình giao thức hiện tại. Các giá trị cụ thể được lưu trữ dưới dạng tham số giao thức và phải tuân theo các quy trình quản trị tiêu chuẩn. Luôn kiểm tra hợp đồng thông minh hoặc tài liệu giao thức hiện tại để có giá trị mới nhất.
</Note>

Mỗi lần tự động bán được thực hiện ở giá DA tại thời điểm kích hoạt giai đoạn đó — không phải giá farming ban đầu. 100% token tự động bán bị đốt, và người dùng nhận 70% giá trị bằng USDT ở giá vào ngày tự động bán. Vì giá tăng theo thời gian, các giai đoạn sau đốt token ở giá cao hơn, đẩy nhanh quá trình giảm phát.

Người dùng có thể bán thủ công bất cứ lúc nào trước khi tự động bán kích hoạt, nhận 75% thay vì 70%.

<Tip>
  Bán thủ công (75% thanh toán) luôn có lợi nhuận hơn cho mỗi token so với tự động bán (70% thanh toán). Tuy nhiên, tự động bán hưởng lợi từ tăng giá theo thời gian — các giai đoạn sau thực hiện ở giá DA cao hơn.
</Tip>

<Warning>
  **Tự Động Bán Với Giới Hạn Thu Nhập Bằng 0:** Nếu tự động bán kích hoạt và người dùng có Giới Hạn Thu Nhập bằng 0 (NFT chưa được gia hạn), 100% tiền thu được sẽ vào Pool Thanh khoản hoặc đốt DA (do DAO quyết định). Người dùng không nhận được gì. Luôn duy trì Giới Hạn Thu Nhập đang hoạt động.
</Warning>

## Cho Vay Đa Lô

Mỗi lô DA từ mỗi chu kỳ khai thác đóng vai trò là tài sản thế chấp độc lập. Điều này cho phép một chu kỳ vay vi mô liên tục:

<Steps>
  <Step title="Khai Thác Lô 1">
    Người dùng hoàn thành chu kỳ khai thác và nhận lô DA 1.
  </Step>

  <Step title="Vay dựa trên Lô 1">
    Người dùng vay với LTV 70% cố định dựa trên lô 1 (hoa hồng 5% một lần thu tại thời điểm phát hành, không phải trả nợ).
  </Step>

  <Step title="Khai Thác Lô 2">
    Người dùng bắt đầu chu kỳ khai thác mới và nhận lô DA 2.
  </Step>

  <Step title="Vay dựa trên Lô 2">
    Người dùng vay thêm với LTV 70% cố định dựa trên lô 2 (hoa hồng 5% một lần riêng biệt thu tại thời điểm phát hành).
  </Step>
</Steps>

Điều này cho phép nhiều khoản vay vi mô đồng thời, một khoản cho mỗi lô DA. Mỗi khoản vay là độc lập - gắn với lô riêng của mình - và vẫn hoạt động cho đến khi stack của lô đó đi vào chu kỳ tự động bán. Nếu bất kỳ khoản vay nào vỡ nợ, chỉ tài sản thế chấp của lô đó bị đốt - không phải tất cả các DA nắm giữ.

Để so sánh chi tiết bán so với cho vay, xem [Bán & Cho Vay](/vi/da-selling-lending). Cho vay cũng hỗ trợ trả nợ một phần và phục hồi tỷ lệ khi vỡ nợ. Xem [Cơ Chế Cho Vay](/vi/da-lending) để biết toàn bộ chi tiết.

## Chu Kỳ Giảm Phát

Hai lần một năm hệ thống kích hoạt một Chu Kỳ Giảm Phát đặc biệt kéo dài tới 30 ngày, được thiết kế để tăng cường sự khan hiếm token.

<Steps>
  <Step title="Tạm dừng các chu kỳ mới">
    Việc bắt đầu các chu kỳ mới của khai thác NFTM, staking, và tạo DA bị tạm dừng trong suốt thời gian Chu Kỳ Giảm Phát. **Các chu kỳ đang hoạt động bắt đầu trước Chu Kỳ Giảm Phát tiếp tục chạy và hoàn thành theo lịch trình** — người dùng có khai thác đang diễn ra không bị mất tiến độ.
  </Step>

  <Step title="Kích hoạt cơ chế bán">
    Các cơ chế bán DA tự động hoặc tự nguyện được kích hoạt.
  </Step>

  <Step title="Đốt hàng ngày">
    Một phần token bị đốt hàng ngày.
  </Step>

  <Step title="Nguồn cung thu hẹp">
    Nguồn cung thị trường thu hẹp, củng cố áp lực tăng giá.
  </Step>
</Steps>

<Info>
  Chu Kỳ Giảm Phát làm cho nền kinh tế DA có thể dự đoán, quản lý và bền vững trong dài hạn.
</Info>

Tăng hoạt động → tăng thanh khoản → tăng phát hành DA → tăng đốt → tăng khan hiếm → tăng giá trị tài sản. Hệ thống vòng kín này có nghĩa là hệ sinh thái phát triển càng tích cực, nền kinh tế DA càng mạnh.

<DaPriceSimulator />
