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

# Mekanika Token DA

> Model harga yang hanya bergerak naik.

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 21M" icon="cube">
    Pasokan maksimum yang ditetapkan selamanya. Tanpa inflasi, tanpa pencetakan.
  </Card>

  <Card title="Didukung 100% USDT" icon="shield-check">
    Setiap token DA didukung oleh USDT nyata di kumpulan likuiditas.
  </Card>

  <Card title="Bakar di Setiap Penjualan" icon="fire">
    100% token yang terjual dibakar secara permanen. Pengguna menerima 75% (manual) atau 70% (otomatis) dari nilai dalam USDT. Sisa 25% (manual) atau 30% (otomatis) adalah komisi protokol yang tetap berada di kumpulan sebagai pendukung — inilah yang mendorong harga DA naik.
  </Card>

  <Card title="Tanpa Transfer P2P" icon="ban">
    DA hanya dapat dijual, dipinjamkan, atau dilunasi — tanpa transfer peer-to-peer.
  </Card>
</CardGroup>

## Formula Harga "Hanya Naik"

Harga = Likuiditas ÷ Pasokan Beredar

Setiap kali DA dijual, token-token dibakar (pasokan turun) sementara USDT tetap di kumpulan (likuiditas tetap atau bertambah). Token yang lebih sedikit ÷ USDT yang sama atau lebih banyak = harga per token yang lebih tinggi.

<Info>
  **Cara kerjanya:** 200 DA beredar, 200 USDT di kumpulan likuiditas. Harga = 1,00 USDT per DA. Seorang pengguna menjual 100 DA. Kumpulan membayar 70 USDT (70% dari nilai 100 USDT). Seluruh 100 DA dibakar. Hasil: 100 DA tersisa, 130 USDT di kumpulan. Harga baru = 130 ÷ 100 = **1,30 USDT per DA**.
</Info>

<Tip>
  Komisi 5% atas seluruh imbalan marketing mengalir langsung ke kumpulan likuiditas DA — terpisah dari persentase penjualan. Likuiditas tambahan datang dari biaya Pinjaman, pendapatan RWA, dan pendapatan FinPro.
</Tip>

<Info>
  **Perlindungan Seed Supply:** Cadangan permanen DA yang kecil — **Seed Supply** — di-deposit di awal ke dalam protokol pada peluncuran sebagai pengaman teknis untuk formula harga.

  * **Permanen dan tidak dapat dijual.** Seed Supply terkunci pada tingkat protokol: **tidak dapat dibakar**, **tidak dapat dijual** (secara manual atau melalui auto-sell), dan **dikecualikan dari siklus auto-sell**.
  * **Di luar peredaran.** Seed Supply **tidak dihitung sebagai pasokan beredar** dan tidak pernah berpartisipasi dalam saldo pengguna, farming, lending, atau distribusi marketing.
  * **Menjamin penyebut yang tidak nol.** Karena `Harga = Likuiditas ÷ Pasokan Beredar`, formula tidak boleh membagi dengan nol. Seed Supply menjamin `totalSupply > 0` setiap saat, sehingga fungsi harga selalu terdefinisi — bahkan dalam kasus ekstrem ketika setiap token lain yang beredar telah dibakar.
  * **Perlindungan hanya untuk kasus ekstrem.** Dalam operasi normal, Seed Supply tidak berpengaruh pada penemuan harga. Ini ada murni sebagai lantai deterministik yang menjaga `getPrice()` tetap terdefinisi dengan baik ketika likuiditas hadir tetapi pasokan beredar yang sebenarnya akan mencapai nol.
</Info>

## Sumber Liquidity Pool

Liquidity Pool adalah fondasi ekonomi DA. Pool ini didanai dari berbagai sumber di seluruh ekosistem RWANFTFI, memastikan pertumbuhan pendukung token secara berkelanjutan. Setiap aliran pendapatan protokol mengalir ke satu pool tunggal, memperkuat formula Harga = Likuiditas ÷ Pasokan.

<AccordionGroup>
  <Accordion title="Aktivitas NFT">
    **Pembelian NFT** — 20% dari setiap pembelian NFT secara otomatis dialihkan ke Liquidity Pool untuk pencetakan DA baru.

    **Rebuy & Autobuy** — tambahan 20% dari setiap pembelian NFT berulang atau otomatis mengalir ke Liquidity Pool. Ini memberikan insentif untuk pembaruan posisi dan mendukung pertumbuhan sistem.
  </Accordion>

  <Accordion title="Biaya & Komisi">
    **Pajak Imbalan Marketing** — 5% dari seluruh imbalan marketing di seluruh jaringan referral secara otomatis dialihkan ke Liquidity Pool. Aktivitas jaringan secara langsung memperkuat pendukung DA.

    **Biaya Transfer Saldo Akumulatif** — saat mentransfer Saldo Akumulatif ke pengguna lain, 20% dari jumlah transfer dialihkan ke DA Liquidity Pool. Setiap pergerakan Saldo Akumulatif — baik digunakan dalam pembelian NFT atau ditransfer antar dompet — menghasilkan aliran masuk 20% ke Pool.

    **Biaya Penggunaan Saldo Akumulatif untuk Pembelian** — saat membeli NFT menggunakan Saldo Akumulatif, 20% dari jumlah yang terintegrasi dialihkan ke DA Liquidity Pool untuk pencetakan DA baru. Contoh: 898 USDT pada Saldo Akumulatif — saat terintegrasi ke pembelian NFT, 718 USDT menuju biaya NFT, dan 180 USDT (20% dari 898) mengalir ke DA Liquidity Pool. Setiap pembelian semacam itu mengisi ulang Pool dan menciptakan basis untuk DA baru.

    **Komisi Lending** — saat mengambil pinjaman, peminjam membayar komisi sekali bayar 5% yang dialihkan ke Liquidity Pool. Contoh: pinjaman \$1.000, peminjam menerima \$950, \$50 menuju Pool. Komisi dipungut pada setiap pinjaman baru.
  </Accordion>

  <Accordion title="Dana Kedaluwarsa & Tidak Terpakai">
    **Auto-Sell dengan Batas Pendapatan Nol** — jika auto-sell DA dipicu dan pengguna memiliki Batas Pendapatan nol pada NFT-nya, 100% hasil masuk ke Liquidity Pool atau ke pembakaran DA (mekanisme tepatnya ditentukan oleh pengaturan DAO).

    **Voucher Kedaluwarsa** — jika Voucher tidak digunakan selama 365 hari, 100% dana dialihkan ke Liquidity Pool. Ini mencegah dana menganggur dan menghilangkan kewajiban yang tidak aktif.

    **Saldo Akumulatif yang Tidak Terpakai** — jika Saldo Akumulatif tidak terpakai selama 120 hari, 70% dana dialihkan ke Liquidity Pool untuk pencetakan DA baru.
  </Accordion>

  <Accordion title="Pendapatan Eksternal">
    **Komisi SWAP** — komisi dari seluruh operasi pertukaran (SWAP) secara otomatis dialihkan ke Liquidity Pool.

    **Komisi Kartu Debit** — komisi dari program Kartu Debit mengalir ke Liquidity Pool, menciptakan arus kas riil dari ekonomi eksternal.

    **Pendapatan RWA** — sebagian pendapatan dari real estate, sewa, aset komersial, dan aset dunia nyata lainnya dialihkan ke Liquidity Pool, menambatkan sistem ke ekonomi nyata.

    **Pendapatan FinPro** — sebagian keuntungan dari produk finansial (Lending, produk investasi, layanan finansial) mengalir ke Liquidity Pool.

    **Pendapatan Ekosistem** — sebagian dari total pendapatan protokol dapat dialihkan ke Liquidity Pool atau digunakan untuk menciptakan likuiditas tambahan untuk pencetakan DA baru.
  </Accordion>
</AccordionGroup>

## Mekanika Pembakaran DA

Pembakaran DA adalah mekanisme deflasi inti — mengurangi pasokan token dan menciptakan tekanan kenaikan yang berkelanjutan pada nilai aset.

<CardGroup cols={3}>
  <Card title="Penjualan Manual" icon="fire">
    100% DA yang terjual dibakar secara permanen. Pengguna menerima 75% nilai dalam USDT. Sisa 25% adalah komisi protokol yang tetap berada di kumpulan sebagai pendukung, mendorong pertumbuhan harga.
  </Card>

  <Card title="Auto-Sell" icon="clock">
    100% DA auto-sell dibakar secara permanen. Pengguna menerima 70% nilai dalam USDT. Sisa 30% adalah komisi protokol yang tetap berada di kumpulan sebagai pendukung, mendorong pertumbuhan harga. Aktif secara progresif dari saldo tersisa selama 4 periode (total 365 hari / 1 tahun).
  </Card>

  <Card title="Gagal Bayar Pinjaman" icon="ban">
    Jika pinjaman tidak dilunasi, DA yang dijaminkan dibakar secara progresif melalui siklus auto-sell. Melindungi likuiditas sistem dan menegakkan disiplin finansial.
  </Card>
</CardGroup>

## Akses Instan & Siklus Auto-Sell

### Akses Instan

Token DA tersedia 100% bagi pengguna sejak saat di-farming. Tidak ada periode lock-up. Pengguna dapat segera:

* **Menjual secara manual** — menerima 75% nilai dalam USDT, 100% token dibakar
* **Mengambil pinjaman** — LTV 70% tetap terhadap jaminan DA, komisi 5% sekali bayar saat penerbitan
* **Menyimpan dan menunggu** — menyimpan token dan mendapatkan manfaat dari pertumbuhan harga seiring waktu

### Siklus Auto-Sell

Jika pengguna tidak menjual secara manual, sistem memicu penjualan otomatis dari **saldo tersisa** selama 4 periode dengan total **365 hari (1 tahun)**. Durasi periode dihitung dalam hari pada on-chain (120 / 90 / 90 / 65 hari); referensi bulan di bawah ini adalah perkiraan untuk keterbacaan.

**Contoh dimulai dengan 100 DA:**

<Steps>
  <Step title="Periode 1 — Setelah 120 hari (~4 bulan)">
    25% dari saldo saat ini di-auto-sell. 25% dari 100 = **25 DA terjual** → Tersisa: **75 DA**
  </Step>

  <Step title="Periode 2 — Setelah 90 hari berikutnya (~3 bulan, hari ke-210)">
    40% dari saldo tersisa di-auto-sell. 40% dari 75 = **30 DA terjual** → Tersisa: **45 DA**
  </Step>

  <Step title="Periode 3 — Setelah 90 hari berikutnya (~3 bulan, hari ke-300)">
    50% dari saldo tersisa di-auto-sell. 50% dari 45 = **22,5 DA terjual** → Tersisa: **22,5 DA**
  </Step>

  <Step title="Periode 4 — Setelah 65 hari berikutnya (~2 bulan, hari ke-365)">
    100% dari saldo tersisa di-auto-sell. 100% dari 22,5 = **22,5 DA terjual** → Tersisa: **0 DA**
  </Step>
</Steps>

<Note>
  Persentase auto-sell (25% / 40% / 50% / 100%) yang ditampilkan di atas mewakili konfigurasi protokol saat ini. Nilai-nilai spesifik disimpan sebagai parameter protokol dan tunduk pada prosedur tata kelola standar. Selalu periksa smart contract atau dokumentasi protokol terbaru untuk nilai-nilai terbaru.
</Note>

Setiap auto-sell dieksekusi pada harga DA saat pemicu periode tersebut — bukan pada harga farming awal. 100% token yang di-auto-sell dibakar, dan pengguna menerima 70% nilai dalam USDT pada harga tanggal auto-sell. Karena harga tumbuh seiring waktu, periode-periode kemudian membakar token pada harga yang lebih tinggi, mempercepat deflasi.

Pengguna dapat menjual secara manual kapan saja sebelum auto-sell terpicu, menerima 75% alih-alih 70%.

<Tip>
  Penjualan manual (pembayaran 75%) selalu lebih menguntungkan per token daripada auto-sell (pembayaran 70%). Namun, auto-sell mendapatkan manfaat dari pertumbuhan harga seiring waktu — periode-periode kemudian dieksekusi pada harga DA yang lebih tinggi.
</Tip>

<Warning>
  **Auto-Sell dengan Batas Pendapatan Nol:** Jika auto-sell dipicu dan pengguna memiliki Batas Pendapatan nol (NFT belum diperbarui), 100% hasil masuk ke Liquidity Pool atau pembakaran DA (ditentukan oleh DAO). Pengguna tidak menerima apa pun. Selalu pertahankan Batas Pendapatan yang aktif.
</Warning>

## Multi-Batch Lending

Setiap batch DA dari setiap siklus mining berfungsi sebagai jaminan independen. Ini memungkinkan siklus mikro-pinjaman yang berkelanjutan:

<Steps>
  <Step title="Mining Batch 1">
    Pengguna menyelesaikan siklus mining dan menerima batch DA 1.
  </Step>

  <Step title="Pinjam dengan jaminan Batch 1">
    Pengguna mengambil pinjaman dengan LTV 70% tetap terhadap batch 1 (komisi 5% sekali bayar saat penerbitan ke Liquidity Pool).
  </Step>

  <Step title="Mining Batch 2">
    Pengguna memulai siklus mining baru dan menerima batch DA 2.
  </Step>

  <Step title="Pinjam dengan jaminan Batch 2">
    Pengguna mengambil pinjaman dengan LTV 70% tetap lain terhadap batch 2 (komisi 5% sekali bayar terpisah saat penerbitan).
  </Step>
</Steps>

Ini memungkinkan beberapa mikro-pinjaman simultan, satu per batch DA. Setiap pinjaman bersifat independen - terikat pada batch-nya sendiri - dan tetap aktif sampai stack batch tersebut memasuki siklus auto-sell. Jika ada pinjaman individu yang gagal bayar, hanya jaminan batch tersebut yang dibakar - bukan seluruh kepemilikan DA.

Untuk perbandingan menjual vs meminjamkan secara mendetail, lihat [Penjualan & Pinjaman](/id/da-selling-lending). Lending juga mendukung pelunasan sebagian dan pemulihan gagal bayar secara proporsional. Lihat [Mekanika Lending](/id/da-lending) untuk penjelasan lengkapnya.

## Siklus Deflasi

Dua kali setahun sistem memicu Siklus Deflasi khusus yang berlangsung hingga 30 hari, dirancang untuk mengintensifkan kelangkaan token.

<Steps>
  <Step title="Jeda siklus baru">
    Memulai siklus baru NFTM mining, staking, dan pembentukan DA dijeda selama Siklus Deflasi. **Siklus aktif yang dimulai sebelum Siklus Deflasi tetap berjalan dan selesai sesuai jadwal** — pengguna dengan mining yang sudah berlangsung tidak kehilangan kemajuannya.
  </Step>

  <Step title="Aktifkan mekanisme penjualan">
    Mekanisme penjualan DA otomatis atau sukarela diaktifkan.
  </Step>

  <Step title="Pembakaran harian">
    Sebagian token dibakar setiap hari.
  </Step>

  <Step title="Pasokan menyusut">
    Pasokan pasar menyusut, memperkuat tekanan kenaikan harga.
  </Step>
</Steps>

<Info>
  Siklus Deflasi membuat ekonomi DA dapat diprediksi, dapat dikelola, dan berkelanjutan dalam jangka panjang.
</Info>

Aktivitas meningkat → likuiditas meningkat → penerbitan DA meningkat → pembakaran meningkat → kelangkaan meningkat → nilai aset meningkat. Sistem siklus tertutup ini berarti semakin aktif ekosistem berkembang, semakin kuat ekonomi DA.

<DaPriceSimulator />
