Skip to main contentA-REX Core

श्वेतपत्र · 10

उपयोग के मामले

छह परिदृश्य जो दिखाते हैं कि A-REX Core के चार इंटरफ़ेस, हुक के साथ, उन स्थितियों को कैसे कवर करते हैं जिनका सामना वास्तव में ग्रेन एलिवेटर, सहकारी संस्था, निर्यातक, ऋणदाता और नियामक करते हैं। प्रत्येक परिदृश्य शामिल कॉल के नाम बताता है।

1. संग्रहीत अनाज और वेयरहाउस रसीदें

परिस्थिति। एक सहकारी ग्रेन एलिवेटर किसी सदस्य से 250 टन गेहूँ प्राप्त करता है, जमा प्रमाणपत्र जारी करता है, और बाद में लॉट को दो भागों में बेचता है।

ऑन-चेन।

  1. createBatch({commodity: HS:100199, unit: KGM, producedAt: harvest, expiresAt: 0, originRef: hash(certificate #CD-88213), metadataHash, uri}, 250_000, member) — टोकन विधिक रसीद को संदर्भित करता है; जब तक क्षेत्राधिकार ऐसा न कहे, वह उसकी जगह नहीं लेता।
  2. एलिवेटर (STATUS_ROLE) द्वारा setBatchStatus(id, 1 /* IN_STORAGE */, ref("SILO-3"))।
  3. transform(member, buyerA, [id], [100_000], [same commodity/unit], [100_000], ref("SALE-1")) — एक री-बैच, किसी भूमिका की आवश्यकता नहीं; parentsOf(newId) == [id]।
  4. दूसरी बिक्री इसी प्रकार; शेष 50 टन मूल आईडी में रहते हैं।
  5. भौतिक निकासी पर क्रेता की इकाइयाँ बर्न की जाती हैं: burn(buyerA, newId, 100_000); खाली होने पर एलिवेटर पैरेंट लॉट को रिटायर करता है।

यह क्यों मायने रखता है। आपूर्ति सटीक है (totalSupply), उद्गम-इतिहास BatchTransformed इवेंट की शृंखला है, और रसीद रजिस्ट्री प्रामाणिक बनी रहती है।

2. कटाई-पूर्व वित्तपोषण (CPR, फ़ॉरवर्ड, भावी फ़सल पर वारंट)

परिस्थिति। एक ब्राज़ीली उत्पादक अप्रैल में काटे जाने वाले 1,000 टन सोयाबीन के लिए एक इलेक्ट्रॉनिक CPR जारी करता है; एक ऋणदाता उसके विरुद्ध धनराशि अग्रिम देता है।

ऑन-चेन।

  1. createBatch({commodity: HS:120190, unit: TNE, producedAt: 0, expiresAt: 0, originRef: hash(CPR-e registry id), …}, 1000, producer) — producedAt == 0 भावी लॉट का मानक निरूपण है।
  2. ExpiryHook(allowPreHarvestTransfers = true) ताकि प्राप्य को समनुदेशित किया जा सके; स्पॉट मार्केटप्लेस इसे false के साथ डिप्लॉय करेगा।
  3. ऋणदाता का प्रतिभूति हित: ENFORCER_ROLE (गिरवी करार के अंतर्गत कार्य करने वाला प्लेटफ़ॉर्म) द्वारा setFrozenTokens(producer, id, 1000)। उत्पादक स्वामित्व रखता है परंतु इकाइयों को हिला नहीं सकता।
  4. कटाई पर: तौल पर्ची के साथ setBatchMetadata; setBatchStatus(id, 2 /* HARVESTED */); प्लेटफ़ॉर्म producedAt को मेटाडेटा में दर्ज करता है (ऑन-चेन फ़ील्ड डिज़ाइन से अपरिवर्तनीय है; स्टेटस परिवर्तन ही ऑन-चेन तथ्य है)।
  5. चुकौती: setFrozenTokens(producer, id, 0)। चूक: गिरवी के अंतर्गत forcedTransfer(producer, lender, id, 1000)।

यह क्यों मायने रखता है। कृषि में दो सबसे आम ऋण घटनाएँ — गिरवी और निष्पादन — दो कॉल हैं, दोनों ऑडिट-योग्य, दोनों UCC Article 12 के "नियंत्रण" और रजिस्ट्री-आधारित लिखतों के अनुकूल।

3. EUDR के अंतर्गत कॉफ़ी निर्यात

परिस्थिति। एक कोलंबियाई निर्यातक 30 दिसंबर 2026 के बाद हैम्बर्ग के एक रोस्टर को 20 टन हरी कॉफ़ी भेजता है।

ऑन-चेन।

  1. createBatch({commodity: HS:090111, unit: KGM, producedAt: harvest, originRef: hash(DDS reference), …}, 20_000, exporter)। प्लॉट पॉलीगन EU Information System और निर्यातक के निर्बंधित स्टोरेज में रहते हैं।
  2. निर्यातक का अनुपालन अधिकारी विषय EUDR:DDS के लिए विश्वसनीय जारीकर्ता है: attest(id, EUDR:DDS, hash(DDS reference), 0)।
  3. टोकन पर AttestationHook.setRequirement(HS:090111, EUDR:DDS): एटेस्टेशन के बिना कॉफ़ी के ट्रांसफ़र ATTESTATION_MISSING लौटाते हैं।
  4. बिक्री: safeTransferFrom(exporter, roaster, id, 20_000, data); रोस्टर, एक डाउनस्ट्रीम ऑपरेटर, DDS संदर्भ को पाँच वर्ष तक रखता है — वह उस बैच मेटाडेटा में है जो अब उसके पास है।
  5. रोस्टिंग: transform(roaster, roaster, [id], [20_000], [{commodity: HS:090121, …}], [16_800], ref("ROAST-2027-03")) — भुने हुए लॉट के पैरेंट हरे लॉट की ओर संकेत करते हैं और उसके माध्यम से DDS की ओर।

यह क्यों मायने रखता है। विनियमन की संदर्भ-शृंखला प्रसंस्करण के बाद भी बनी रहती है, और जिस जियोडेटा का सार्वजनिक चेन पर होना EDPB के अनुसार वर्जित है, वह कभी वहाँ नहीं होता।

4. नाशवान उपज और कोल्ड चेन

परिस्थिति। एक पैकर 12 दिन की शेल्फ़ लाइफ़ वाली स्ट्रॉबेरी भेजता है; ट्रांज़िट में तापमान विचलन दर्ज होता है।

ऑन-चेन।

  1. createBatch({commodity: GTIN:…, unit: BX, producedAt: packDate, expiresAt: packDate + 12 days, …}, 4_800, packer); मेटाडेटा में प्रारंभिक पैकिंग पर निर्धारित FSMA ट्रेसेबिलिटी लॉट कोड होता है।
  2. ExpiryHook expiresAt के बाद किसी भी ट्रांसफ़र को ब्लॉक करता है (BATCH_EXPIRED); बट्टे खाते के लिए बर्न संभव रहता है।
  3. एक कोल्ड-चेन हुक (DeliveryHook) परिवहन के दौरान IN_TRANSIT लौटाता है और onExecuted में चेकपॉइंट दर्ज करता है।
  4. विचलन को लॉजिस्टिक्स प्रदाता द्वारा एटेस्ट किया जाता है: attest(id, COLDCHAIN:EXCURSION, hash(sensor log), 0); क्रेता-पक्ष का हुक प्राप्ति से इनकार कर सकता है (canReceive नीति), या पक्ष एटेस्टेशन को साक्ष्य मानकर आपस में ऑफ़-चेन निपटान कर सकते हैं।
  5. डिलीवरी: प्राप्तकर्ता द्वारा burn, या पैकर द्वारा setBatchStatus(id, 255 /* RETIRED */, ref("DELIVERED"))।

यह क्यों मायने रखता है। शेल्फ़ लाइफ़, अभिरक्षा और गुणवत्ता घटनाएँ एक बैच रिकॉर्ड पर तीन स्वतंत्र हुक हैं; किसी के लिए भी टोकन में बदलाव की आवश्यकता नहीं पड़ी।

5. सहकारी वितरण और सदस्य निपटान

परिस्थिति। एक सहकारी संस्था 1,000 टन के पूल किए गए लॉट का विपणन करती है और उसे आय तथा शेष अनाज 40 सदस्यों में आवंटित करना होता है।

ऑन-चेन।

  1. सदस्य पूल में डिलीवर करते हैं: प्रत्येक डिलीवरी सदस्य को एक createBatch है, फिर transform(member, coop, [ids], [amounts], [pool spec], [amount], ref("POOL-2026")) पूल लॉट में मर्ज करता है (री-बैच, समान कमोडिटी और इकाई हो तो किसी भूमिका की आवश्यकता नहीं)।
  2. parentsOf(pool) प्रत्येक सदस्य डिलीवरी को सूचीबद्ध करता है — आवंटन कुंजी ऑन-चेन है।
  3. पूल की क्रेता को बिक्री: एक safeTransferFrom।
  4. शेष: transform(coop, coop, [pool], [remaining], [40 outputs], [per-member amounts], ref("RESIDUAL")) और सदस्यों को safeBatchTransferFrom।

यह क्यों मायने रखता है। पूलिंग और डी-पूलिंग, जो आज सहकारी लेजर में रहती हैं, सटीक मात्राओं वाले वंशावली ऑपरेशन हैं।

6. रिकॉल

परिस्थिति। एक प्रयोगशाला को मक्का के ऐसे लॉट में सीमा से अधिक अफ़्लाटॉक्सिन मिलता है जिसे पहले ही विभाजित किया जा चुका है और आंशिक रूप से प्रसंस्कृत किया जा चुका है।

ऑन-चेन।

  1. प्रयोगशाला (LAB:AFLATOXIN के लिए विश्वसनीय जारीकर्ता) परिणाम को एटेस्ट करती है: attest(id, LAB:AFLATOXIN, hash(report), 0)।
  2. प्लेटफ़ॉर्म लॉट को रिटायर करता है: setBatchStatus(id, 255, ref("RECALL-2026-07")); ट्रांसफ़र तुरंत रुक जाते हैं (ARexBatchRetired), बर्न (विनाश) संभव रहते हैं।
  3. फ़ॉरवर्ड ट्रेसिंग: प्रत्येक BatchTransformed जिसके inputIds में id है, संतति देता है; पुनरावर्ती रूप से, प्रभावित चारा और खाद्य लॉट। बैकवर्ड ट्रेसिंग: parentsOf।
  4. नियामक को प्रभावित आईडी और धारकों की सूची इवेंट लॉग से मिलती है — 24 घंटे की आवश्यकता इंडेक्सर क्वेरी से पूरी होती है, रिकॉर्ड खोज से नहीं।

यह क्यों मायने रखता है। रिकॉल का दायरा मानकीकृत इवेंट पर एक ग्राफ़ क्वेरी है, जिसे संभव बनाने के लिए ही FSMA 204 का ट्रांसफ़ॉर्मेशन CTE डिज़ाइन किया गया था।

इन परिदृश्यों में क्या समान है

  • चार इंटरफ़ेस, तीन संदर्भ हुक और एटेस्टेशन रजिस्ट्री सभी छह परिदृश्यों को कवर करते हैं; किसी परिदृश्य में मानक में बदलाव की आवश्यकता नहीं पड़ी।
  • विधिक लिखत (रसीदें, CPR-e, DDS, प्रयोगशाला रिपोर्ट) संदर्भित और हैश किए जाते हैं, दोबारा कार्यान्वित नहीं किए जाते।
  • प्रवर्तन (फ़्रीज़, बलपूर्वक ट्रांसफ़र, रिटायर) प्रत्येक वित्तपोषण और अनुपालन परिदृश्य में मौजूद है और हमेशा एक इवेंट है।
  • व्यक्तिगत डेटा कभी ऑन-चेन दिखाई नहीं देता।