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

# माइनिंग और फार्मिंग

> NFTM से DA तक दो चरणों में।

export const MiningPipeline = () => {
  const [selectedLevel, setSelectedLevel] = useState(5);
  const LEVELS = {
    5: {
      name: 'HYDRO',
      price: 550,
      days: 45,
      c1: 0.10,
      c2: 0,
      cycles: 1
    },
    6: {
      name: 'QUANTUM',
      price: 1100,
      days: 44,
      c1: 0.10,
      c2: 0,
      cycles: 1
    },
    7: {
      name: 'PULSE',
      price: 2200,
      days: 43,
      c1: 0.10,
      c2: 0,
      cycles: 1
    },
    8: {
      name: 'AURORA',
      price: 5500,
      days: 42,
      c1: 0.10,
      c2: 0.15,
      cycles: 2
    },
    9: {
      name: 'FLAME',
      price: 11000,
      days: 41,
      c1: 0.10,
      c2: 0.15,
      cycles: 2
    },
    10: {
      name: 'INFINITY',
      price: 24000,
      days: 40,
      c1: 0.10,
      c2: 0.15,
      cycles: 2
    }
  };
  const fmtUsd = 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 lvl = LEVELS[selectedLevel];
  var nftmCycle1 = lvl.price * lvl.c1;
  var nftmCycle2 = lvl.price * lvl.c2;
  var totalNftm = nftmCycle1 + nftmCycle2;
  var totalDays = lvl.days * 2 * lvl.cycles;
  var daPrice = 1.00;
  var daReceived = totalNftm / daPrice;
  return <div style={{
    backgroundColor: '#000000',
    color: '#FFFFFF',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="p-6 rounded-xl not-prose">

      {}
      <div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-6">
        <div>
          <h3 style={{
    color: '#FFFFFF',
    margin: 0
  }} className="text-lg font-serif italic">Mining Dashboard</h3>
          <p style={{
    color: 'rgba(255,255,255,0.4)',
    margin: '4px 0 0 0'
  }} className="text-xs">Full pipeline overview — from NFT purchase to DA harvest</p>
        </div>
        <div className="flex items-center gap-3">
          <select value={selectedLevel} onChange={function (e) {
    setSelectedLevel(Number(e.target.value));
  }} style={{
    backgroundColor: '#383838',
    color: '#FFFFFF',
    border: '1px solid rgba(255,255,255,0.1)',
    borderRadius: '8px',
    padding: '8px 12px',
    fontSize: '13px',
    cursor: 'pointer',
    outline: 'none'
  }}>
            {Object.entries(LEVELS).map(function (entry) {
    var k = entry[0];
    var d = entry[1];
    return <option key={k} value={k}>L{k} — {d.name} ({d.price} USDT) — {d.days} days</option>;
  })}
          </select>
          <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>

      {}
      <div className="mb-6">
        <div className="flex justify-between items-center mb-2">
          <span style={{
    color: 'rgba(255,255,255,0.5)'
  }} className="text-xs font-medium">Total Pipeline</span>
          <span style={{
    color: '#FFFFFF'
  }} className="text-sm font-bold">{totalDays} days</span>
        </div>

        <div className="flex items-center gap-0.5" style={{
    height: '48px',
    borderRadius: '12px',
    overflow: 'hidden'
  }}>
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.18)',
    width: '48%',
    height: '100%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    borderTopLeftRadius: '12px',
    borderBottomLeftRadius: '12px'
  }}>
            <div style={{
    textAlign: 'center'
  }}>
              <div style={{
    color: '#FFFFFF',
    fontSize: '12px',
    fontWeight: 700
  }}>Mining</div>
              <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>
                {lvl.cycles === 1 ? lvl.days + ' days' : '2 × ' + lvl.days + ' days'} — {fmtNum(totalNftm)} NFTM
              </div>
            </div>
          </div>
          <div style={{
    backgroundColor: '#ef4444',
    width: '4%',
    height: '100%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center'
  }}>
            <div style={{
    color: '#FFFFFF',
    fontSize: '9px',
    fontWeight: 900
  }}>72h</div>
          </div>
          <div style={{
    backgroundColor: 'rgba(255,255,255,0.08)',
    width: '48%',
    height: '100%',
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'center',
    borderTopRightRadius: '12px',
    borderBottomRightRadius: '12px'
  }}>
            <div style={{
    textAlign: 'center'
  }}>
              <div style={{
    color: '#FFFFFF',
    fontSize: '12px',
    fontWeight: 700
  }}>Farming</div>
              <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '10px'
  }}>{lvl.cycles === 1 ? lvl.days + ' days' : '2 × ' + lvl.days + ' days'} — {fmtNum(daReceived)} DA</div>
            </div>
          </div>
        </div>

        <div className="flex items-center gap-2 mt-2">
          <span className="relative flex" style={{
    height: '8px',
    width: '8px'
  }}>
            <span className="animate-ping absolute inline-flex rounded-full" style={{
    height: '100%',
    width: '100%',
    backgroundColor: '#ef4444',
    opacity: 0.75
  }} />
            <span className="relative inline-flex rounded-full" style={{
    height: '8px',
    width: '8px',
    backgroundColor: '#ef4444'
  }} />
          </span>
          <span style={{
    color: '#f87171',
    fontSize: '11px',
    fontWeight: 500
  }}>72-hour critical window — miss it and the entire cycle restarts from scratch</span>
        </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="/NFTMp.webm" type="video/webm" />
          </video>
        </div>
        {}
        <div style={{
    flex: '1 1 0%',
    minWidth: '240px'
  }}>
          <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-5 text-center">
            <div style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-[10px] uppercase tracking-wider mb-1">
              You Receive After {totalDays} days
            </div>
            <div style={{
    color: '#FFFFFF',
    fontSize: '36px'
  }} className="font-black">
              {fmtNum(daReceived)} DA
            </div>
            <div style={{
    color: 'rgba(255,255,255,0.5)'
  }} className="text-xs mt-1">
              Worth {fmtUsd(daReceived * daPrice)} at current DA price
            </div>
            <div style={{
    color: 'rgba(255,255,255,0.5)'
  }} className="text-xs mt-2">
              from {fmtUsd(lvl.price)} investment · {lvl.cycles === 1 ? 'cycle 1: ' + fmtNum(nftmCycle1) + ' NFTM' : 'cycle 1: ' + fmtNum(nftmCycle1) + ' + cycle 2: ' + fmtNum(nftmCycle2) + ' NFTM'}
            </div>
          </div>
        </div>
      </div>
      <div className="grid grid-cols-3 gap-3" style={{
    marginTop: '12px'
  }}>
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-3 text-center">
          <div style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-[10px] uppercase tracking-wider mb-1">Investment</div>
          <div style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">{fmtUsd(lvl.price)}</div>
        </div>
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-3 text-center">
          <div style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-[10px] uppercase tracking-wider mb-1">DA Value</div>
          <div style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">{fmtUsd(daReceived * daPrice)}</div>
        </div>
        <div style={{
    backgroundColor: '#383838',
    border: '1px solid rgba(255,255,255,0.05)'
  }} className="rounded-xl p-3 text-center">
          <div style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-[10px] uppercase tracking-wider mb-1">Pipeline</div>
          <div style={{
    color: '#FFFFFF'
  }} className="text-base font-bold">{totalDays} days</div>
        </div>
      </div>
      {lvl.cycles === 1 && <div style={{
    backgroundColor: 'rgba(255,255,255,0.05)',
    border: '1px solid rgba(255,255,255,0.15)',
    marginTop: '12px'
  }} className="rounded-xl p-4 text-center">
          <div style={{
    color: 'rgba(255,255,255,0.5)',
    fontSize: '12px'
  }}>
            This NFT tier has 1 mining cycle producing 10% of NFT price in NFTM.
          </div>
        </div>}
      <div style={{
    color: 'rgba(255,255,255,0.4)'
  }} className="text-xs text-center mt-3">
        Once harvested, compare your options on{' '}
        <a href={'/en/da-selling-lending'} style={{
    color: '#FFFFFF',
    textDecoration: 'underline'
  }}>
          Selling & Lending
        </a>
      </div>

    </div>;
};

DA प्राप्त करने के लिए, उपयोगकर्ताओं को दो-चरण प्रक्रिया में भाग लेना होगा: माइनिंग और फार्मिंग। केवल Premium (स्तर 5+) और Elite NFT इसके लिए सक्षम हैं।

<Info>
  **NFTM एक टोकन नहीं है।** यह स्मार्ट कॉन्ट्रैक्ट द्वारा ट्रैक किया जाने वाला एक आंतरिक माइनिंग काउंटर (मेट्रिक) है। इंटरफ़ेस में, आप एक प्रोग्रेस बार और अपेक्षित NFTM राशि देखते हैं। NFTM का कोई बाज़ार मूल्य नहीं है और इसे ट्रेड या स्थानांतरित नहीं किया जा सकता — यह केवल फार्मिंग में स्टेक करने और DA में परिवर्तित होने के लिए मौजूद है।
</Info>

<Info>
  **माइन करने के लिए सक्रिय आय सीमा आवश्यक है।** माइनिंग और फार्मिंग दोनों के लिए योग्य NFT पर गैर-शून्य **आय सीमा** होनी चाहिए। यदि आपकी सीमा शून्य पर पहुँच गई है, तो स्मार्ट कॉन्ट्रैक्ट नया माइनिंग चक्र शुरू करने से इनकार कर देगा। माइनिंग फिर से शुरू करने के लिए, पहले अपनी आय सीमा रिफ्रेश करें — Autobuy 3/3 सिस्टम, मैन्युअल समान-स्तर नवीनीकरण, या उच्च-स्तर NFT पर अपग्रेड के माध्यम से — और फिर अगले चक्र को सक्रिय करें। आय सीमा एक प्रवेश शर्त है; इसके बिना, माइनिंग प्रवाह शुरू नहीं होता।
</Info>

<Steps>
  <Step title="माइनिंग सक्रिय करें">
    अपने योग्य NFT पर माइनिंग शुरू करें। चक्र की अवधि आपके स्तर पर निर्भर करती है — 45 दिनों (HYDRO) से 40 दिनों (INFINITY) तक।
  </Step>

  <Step title="NFTM उत्पन्न करें">
    आपका NFT चक्र अवधि में NFTM उत्पन्न करता है। स्तर 5–7 (HYDRO, QUANTUM, PULSE) में **1 माइनिंग चक्र** होता है जो NFT मूल्य का **10%** NFTM में उत्पन्न करता है। स्तर 8–10 (AURORA, FLAME, INFINITY) में **2 माइनिंग चक्र** होते हैं — पहला NFT मूल्य का **10%** और दूसरा **15%** NFTM में उत्पन्न करता है।
  </Step>

  <Step title="72 घंटों के भीतर क्लेम करें">
    एक बार माइनिंग पूरी होने के बाद, आपके पास अपने NFTM को फार्मिंग में स्टेक करने के लिए ठीक **72 घंटे** हैं। इस विंडो को चूकें और आप शुरू से ही फिर से शुरू करते हैं।
  </Step>

  <Step title="DA फार्म करें">
    स्टेक किया गया NFTM माइनिंग चक्र के समान अवधि के लिए फार्मिंग में प्रवेश करता है। अंत में, NFTM वर्तमान मूल्य के आधार पर DA में परिवर्तित होता है और आपके TokenStack में क्रेडिट होता है।
  </Step>
</Steps>

<Warning>
  **72-घंटे की महत्वपूर्ण विंडो:** यदि आप माइनिंग पूरी होने के बाद 72 घंटों के भीतर अपने NFTM को स्टेक करने में विफल रहते हैं, तो पूरा चक्र खो जाता है। आपको शुरू से ही माइनिंग फिर से शुरू करनी होगी। एक रिमाइंडर सेट करें।
</Warning>

<Warning>
  **अपग्रेड से पहले क्लेम करें — अनक्लेम्ड फार्मिंग रिवॉर्ड्स नष्ट हो जाते हैं:** कोई भी NFT खरीद या अपग्रेड उपयोगकर्ता की माइनिंग/फार्मिंग स्थिति पर `terminate()` ट्रिगर करता है। डिज़ाइन के अनुसार, `terminate()` सक्रिय सत्र को रोकता है और **सभी अनक्लेम्ड फार्मिंग रिवॉर्ड्स को नष्ट कर देता है**, जिसमें वे रिवॉर्ड्स भी शामिल हैं जो परिपक्व हो चुके हैं लेकिन अभी तक क्लेम नहीं किए गए। टीम ने ऑडिट प्रतिक्रिया में पुष्टि की है कि यह जानबूझकर किया गया है: *"यह जानबूझकर है, terminate() को सक्रिय सत्रों को रोकना चाहिए और डिज़ाइन के अनुसार अनक्लेम्ड रिवॉर्ड्स को नष्ट करना चाहिए।"*

  **ऑपरेशनल नियम:** यदि आपके पास परिपक्व-लेकिन-अनक्लेम्ड फार्मिंग रिवॉर्ड है, **पहले इसे क्लेम करें**, और तभी NFT खरीदें या अपग्रेड करें। अन्यथा रिवॉर्ड स्थायी रूप से उस क्षण खो जाता है जब नया NFT लेनदेन कन्फ़र्म होता है।
</Warning>

<Warning>
  **डिफ्लेशनरी चक्र पॉज़:** वर्ष में दो बार, सिस्टम 30 दिनों तक चलने वाला डिफ्लेशनरी चक्र ट्रिगर करता है। इस अवधि के दौरान, NFTM माइनिंग, स्टेकिंग, और DA जनरेशन के **नए चक्रों का लॉन्च** स्थगित कर दिया जाता है। डिफ्लेशनरी चक्र शुरू होने से पहले से चल रहे चक्र **जारी रहते हैं और निर्धारित समय पर पूरे होते हैं** — प्रगति नहीं खोती। इन निर्धारित अवधियों के आसपास नए चक्रों के लॉन्च की योजना बनाएँ।
</Warning>

<MiningPipeline />
