یہ صفحہ ایک ٹوکن کو صفر سے لے کر Rand پر ایک فعال اور قابلِ منتقلی اثاثے تک پہنچاتا ہے۔ RPL، Rand کا ٹوکن معیار ہے، جو chain 14 پر نیا متعارف ہوا۔ اگر آپ نے کوئی ERC-20 ڈیپلائے کیا ہے یا کوئی SPL mint بنایا ہے تو پہلا حصہ آہستگی سے پڑھنے کا ہے، کیونکہ RPL ٹوکن ان دونوں میں سے کوئی بھی نہیں۔ RPL ٹوکن وہ تصوراتی صفحہ ہے جس پر یہ صفحہ مبنی ہے۔
1. RPL ٹوکن کیا ہے
RPL ٹوکن لیجر کی ٹوکن رجسٹری میں ایک اندراج ہے، اسمارٹ کنٹریکٹ نہیں۔ نہ کوئی کوڈ لکھنا ہے، نہ کمپائل کرنا ہے، نہ آڈٹ کرنا ہے۔ ٹوکن بنانا ایک ٹرانزیکشن ہے جو رجسٹری میں ایک سطر کا اضافہ کرتی ہے، اور اس کے بعد ٹوکن کی اکائیاں عام shielded نوٹس ہوتی ہیں، جو RAND والے ہی پول میں رکھی جاتی ہیں اور اسی طرح خرچ ہوتی ہیں۔
| فیلڈ | قاعدہ |
|---|---|
| asset id | 32 بائٹس، ٹوکن کی شناخت۔ rpl1… کی صورت میں لکھا جاتا ہے: bech32m، 62 حروف، checksum کے ساتھ |
| index | ایک چھوٹا عدد جو چین رجسٹریشن کے وقت تفویض کرتی ہے (1، 2، …؛ 0 سے مراد RAND ہے)۔ اس چین پر id کا مختصر متبادل |
| name | UTF-8 کے 1 سے 32 بائٹس، تخلیق کے وقت طے شدہ |
| symbol | 1 سے 12 قابلِ طباعت ASCII حروف، تخلیق کے وقت طے شدہ |
| decimals | 0 سے 9، تخلیق کے وقت طے شدہ |
| mint authority | کون مزید اکائیاں جاری کر سکتا ہے: کوئی نہیں (None)، ایک کلید (Key)، یا برج (Bridge) |
| total supply | عوامی، اور صرف mint یا burn سے تبدیل ہوتی ہے |
symbol منفرد نہیں ہوتے۔ کوئی بھی USDC نام کا ٹوکن بنا سکتا ہے، بالکل Ethereum اور Solana کی طرح۔ ٹوکن کی شناخت اس کا asset id ہے، اس لیے کسی ٹوکن کو قبول کرنے یا فہرست میں شامل کرنے سے پہلے rpl1… id کی جانچ کریں، symbol کی کبھی نہیں۔ متنی صورت checksum کے ساتھ ہوتی ہے: غلط ٹائپ شدہ id مسترد ہو جاتا ہے، کہیں اور نہیں بھیجا جاتا۔
یہ ERC-20 اور SPL سے کیسے مختلف ہے
| ERC-20 / SPL | RPL | |
|---|---|---|
| ٹوکن کیا ہے | ایک کنٹریکٹ، یا کسی پروگرام کی ملکیت والا اکاؤنٹ | رجسٹری کی ایک سطر؛ ہر ٹوکن کا الگ کوڈ نہیں، اس لیے نہ ٹرانسفر ٹیکس، نہ rebase، نہ hook |
| بیلنس | عوامی، ہر ایڈریس کے حساب سے | shielded نوٹس۔ کوئی کسی حامل کا بیلنس نہیں پڑھ سکتا اور نہ کسی ٹوکن کے حاملین کی فہرست بنا سکتا ہے |
| منتقلی | بھیجنے والا، وصول کنندہ اور رقم عوامی | بھیجنے والے کی طرف سے ثابت شدہ، مکمل طور پر shielded۔ مشاہدہ کرنے والا اسے RAND کی ادائیگی سے الگ نہیں پہچان سکتا |
| فیس | چین کا مقامی سکہ | RAND۔ ٹوکن منتقل کرنے کے لیے حامل کو تھوڑے سے RAND کی ضرورت ہوتی ہے، جیسے ERC-20 کے حامل کو ETH کی |
| وصولی | SPL کے لیے پہلے ٹوکن اکاؤنٹ درکار ہے | کچھ ترتیب دینے کی ضرورت نہیں۔ کوئی بھی rand1… ایڈریس کوئی بھی ٹوکن وصول کر سکتا ہے |
| رقوم | uint256 / u64 | u64، اور زیادہ سے زیادہ 9 decimals |
| approve / transferFrom | ہاں | v1 میں نہیں |
| منجمد کرنا، بلیک لسٹ، توقف | اکثر | کوئی نہیں |
| میٹا ڈیٹا | آف چین یا قابلِ تبدیل | آن چین اور ناقابلِ تبدیل |
| کسی پروگرام کے پاس | ہاں | v1 میں نہیں |
جو عوامی رہتا ہے وہ سرحد ہے: ٹوکن کی رجسٹریشن، ہر mint اور ہر burn، ہر ایک اپنی رقم کے ساتھ۔ یہی چیز total supply کو ہر کسی کے لیے قابلِ آڈٹ بناتی ہے۔ حاملین کے درمیان منتقلیاں کچھ ظاہر نہیں کرتیں، یہ بھی نہیں کہ کون سا ٹوکن منتقل ہوا۔
2. شروع کرنے سے پہلے
| آپ کو درکار ہے | کیسے |
|---|---|
rand کمانڈ لائن | نوڈ چلانا اسے بِلڈ کرتا ہے؛ کمانڈ لائن ہر کمانڈ کی فہرست دیتا ہے |
| ایک والیٹ | rand keygen ایک spend-key فائل لکھتا ہے اور rand address اس کا rand1… ایڈریس پرنٹ کرتا ہے (اکاؤنٹس اور ایڈریس) |
| رابطے کے لیے ایک نوڈ | والیٹ کسی نوڈ سے JSON-RPC کے ذریعے بات کرتا ہے، بطورِ طے شدہ آپ کے اپنے نوڈ سے http://127.0.0.1:8545 پر۔ نوڈ اپنا RPC صرف localhost سے منسلک کرتا ہے، اس لیے عام ترتیب یہ ہے کہ آپ کا اپنا نوڈ chain 20 کی پیروی کر رہا ہو۔ اگر اپنا نوڈ نہ ہو تو --rpc https://rpc.randprotocol.org دیں: عوامی endpoint اس صفحے کی ہر چیز سنبھالتا ہے سوائے rand faucet کے، جسے وہ مسترد کر دیتا ہے (JSON-RPC، عوامی endpoint) |
| فیس کے لیے RAND | والیٹ میں چند RAND۔ faucet کی ایک کال کے 100 RAND اس صفحے کی ہر چیز کے لیے کافی ہیں، لیکن chain 20 پر rand faucet صرف ان 16 والیٹس کو ادائیگی کرتا ہے جنہیں genesis کی اجازتی فہرست (staking.faucet_recipients) میں شامل کیا گیا ہے، اور کسی بھی دوسرے ایڈریس کو the faucet may not mint to this recipient کے ساتھ مسترد کر دیتا ہے؛ کسی بھی دوسرے والیٹ کو RAND اسی شخص سے ملنا ہوگا جس کے پاس کچھ RAND موجود ہوں (Mint اور burn) |
| رجسٹریشن فیس | چین کا ایک genesis پیرامیٹر، 1 سے 10,000 RAND کے درمیان۔ chain 20 پر یہ 1 RAND ہے، اس لیے rand token create کی لاگت 1.001 RAND ہے: 0.001 RAND کی بنیادی فیس جو ہر ٹرانزیکشن ادا کرتی ہے، جمع رجسٹریشن فیس، جسے chain 20 بلاک کے proposer کو ادا کرنے کے بجائے burn کر دیتی ہے۔ یہاں کی ہر دوسری کمانڈ کی لاگت 0.001 RAND کی بنیادی فیس ہے |
| تقریباً 6 GB خالی میموری | ہر ٹرانزیکشن آپ کی اپنی مشین پر ثابت کی جاتی ہے۔ chain 20 پر یہ دو ثبوت ہیں، اور والیٹ ہر ایک کے لیے ایک سطر پرنٹ کرتا ہے: proving the spend authorisation on this machine (tier 10; seconds)…، پھر proving the bundle (tier 14; about a minute and a half on a laptop)…۔ بنڈل کے ثبوت میں تقریباً 100 سیکنڈ لگتے ہیں اور چلنے کے دوران تقریباً 5.7 GB میموری استعمال ہوتی ہے؛ نیٹ ورک پر دونوں کا حجم تقریباً 1.37 MB اور تقریباً 1.5 MB ہے، مجموعی طور پر تقریباً 2.85 MB۔ یہ نیچے کے ہر اس مرحلے پر لاگو ہوتا ہے جو چین میں تبدیلی لاتا ہے: تخلیق، ہر mint، ہر send اور ہر burn |
rand --key wallet.key.json keygen # writes the spend key; refuses to overwrite
rand --key wallet.key.json address # your rand1… address
rand --key wallet.key.json faucet # testnet only, allowlisted wallets only: asks a validator node to mint 100 RAND to this wallet
rand --key wallet.key.json balance # scans the tree, prints the spendable value and the unspent note count
--key بطورِ طے شدہ wallet.key.json ہوتا ہے اور اسے ایک بار RAND_KEY کے طور پر مقرر کیا جا سکتا ہے؛ --rpc (یا RAND_RPC) اس نوڈ کا نام بتاتا ہے جس سے بات کرنی ہے، اور بطورِ طے شدہ http://127.0.0.1:8545 ہوتا ہے۔ نیچے کی کمانڈز میں --key واضح طور پر لکھا گیا ہے۔ کسی ثبوت پر وقت صرف کرنے سے پہلے جانچ لیں کہ نوڈ chain 20 پر ہے: وہاں JSON-RPC میتھڈ rand_chainId کا جواب 20 ہوتا ہے۔ والیٹ کا chain 20 والا بِلڈ، v0.6.8، ہونا ضروری ہے: chain 20 ہر ثبوت اور ہر دستخط شدہ پیغام کو، ٹوکن mint سمیت، اپنے genesis hash سے منسلک کرتی ہے، اس لیے v0.6.7 والا rand ایسے ثبوت اور دستخط بناتا ہے جنہیں chain 20 مسترد کر دیتی ہے۔
3. ٹوکن بنائیں
token create رقوم ٹوکن کی سب سے چھوٹی اکائی میں لیتا ہے۔ --fixed-supply اور --initial بنیادی اکائیوں کے مکمل اعداد ہیں: --decimals 2 کے ساتھ 1000000 کی رقم 10,000.00 ٹوکن ہے۔ اس کے بعد کی ہر کمانڈ (rand send --asset، rand token mint، rand token burn) v0.5.10 سے ٹوکن کی ظاہری اکائیاں لیتی ہے، جیسے RAND کی رقوم RAND میں ہوتی ہیں (1.5): والیٹ ٹوکن کی رجسٹری سطر سے decimals پڑھتا ہے، اور ٹوکن کی حد سے زیادہ کسری ہندسے مسترد کر دیے جاتے ہیں۔ چین پر رقم ہمیشہ بنیادی اکائی کا صحیح عدد ہوتی ہے۔
پہلے ایک بات طے کریں: کیا کبھی مزید اکائیاں جاری کی جا سکیں گی؟ اس کا جواب تخلیق کے وقت ٹوکن میں طے ہو جاتا ہے اور بعد میں وسیع نہیں کیا جا سکتا۔
| مقررہ سپلائی | قابلِ mint | |
|---|---|---|
| mint authority | None | Key: ایک Dilithium2 کلید جو آپ کے پاس ہو |
| سپلائی | پوری سپلائی ایک ہی بار، تخلیقی ٹرانزیکشن میں mint ہوتی ہے | صفر سے، یا --initial سے شروع ہوتی ہے؛ کلید کا حامل وقت کے ساتھ mint کرتا ہے |
| فلیگز | --fixed-supply <N> --to <rand1…> | --authority-key-out <FILE>، اور اختیاری طور پر --initial <N> --to <rand1…> |
| موزوں ہے | محدود ٹوکن، رکنیت یا ووٹنگ کی اکائی | ایسا جاری کنندہ جو سپلائی بڑھاتا ہے، جیسے پوائنٹس یا انعامی ٹوکن |
مقررہ سپلائی والا ٹوکن
rand --key wallet.key.json token create \
--name "Example Credits" \
--symbol EXC \
--decimals 2 \
--fixed-supply 1000000 \
--to rand1…
--to وہ مکمل rand1… ایڈریس ہے جو سپلائی وصول کرتا ہے، مثلاً rand address کا آؤٹ پٹ۔ --fixed-supply بنیادی اکائیوں میں ہے: 2 decimals پر 1000000 کا مطلب 10,000.00 EXC ہے۔
یہ کمانڈ نوڈ سے رجسٹری کا اگلا index اور رجسٹریشن فیس پڑھتی ہے، ابتدائی mint کا نوٹ بناتی ہے، ایک فیس بنڈل ثابت کرتی ہے، رجسٹریشن جمع کراتی ہے اور بلاک کا انتظار کرتی ہے۔ کامیابی پر یہ جمع کرانے کی اطلاع دیتی ہے، پھر index <N>, id <64 hex> (<rpl1…>) کی صورت میں ایک سطر پرنٹ کرتی ہے، پھر committed at height <H>۔ rpl1… id لکھ لیں: یہ ٹوکن کی شناخت ہے، اور بعد کی ہر کمانڈ اسے لیتی ہے۔
طے شدہ فیس بنیادی فیس جمع چین کی رجسٹریشن فیس ہے، chain 20 پر 1.001 RAND، اس لیے کچھ حساب لگانے کی ضرورت نہیں؛ --fee (RAND میں) اسے بڑھاتا ہے۔ --no-wait ٹرانزیکشن جمع ہوتے ہی واپس آ جاتا ہے اور committed والی سطر چھوڑ دیتا ہے۔ --cuda منسلک NVIDIA GPU پر ثابت کرتا ہے، اس کے لیے --features cuda کے ساتھ بِلڈ درکار ہے، اور یہ CPU پر واپس نہیں جاتا۔
اگر آپ کے ٹوکن کے ثبوت کے دوران کوئی اور ٹوکن رجسٹر ہو جائے تو وہ وہی index لے لیتا ہے جس کے لیے آپ کا ٹوکن مہر بند کیا گیا تھا۔ نوڈ رجسٹریشن مسترد کر دیتا ہے اور کمانڈ اصل اعداد کے ساتھ another token took index N first — re-run to register at N+1 پرنٹ کرتی ہے۔ مسترد شدہ رجسٹریشن کبھی بلاک تک نہیں پہنچتی؛ جو ضائع ہوتا ہے وہ ثبوت کا عمل ہے، تقریباً 100 سیکنڈ کا کام۔ کمانڈ دوبارہ چلائیں اور یہ اگلے index کے مطابق ثابت کرے گی۔
پوری سپلائی اب ایک ہی shielded نوٹ میں ہے جس کا مالک --to ایڈریس ہے۔ رجسٹریشن اور اس کی رقم عوامی ہیں؛ اس کے بعد وصول کنندہ اس نوٹ کے ساتھ کیا کرتا ہے، وہ عوامی نہیں۔
قابلِ mint ٹوکن
rand --key wallet.key.json token create \
--name "Example Points" \
--symbol EXP \
--decimals 0 \
--authority-key-out exp-authority.key.json
یہ ایک نئی Dilithium2 کلید exp-authority.key.json میں لکھتا ہے (mode 0600، اور پہلے سے موجود فائل کو اوور رائٹ کرنے سے انکار کرتا ہے) اور ٹوکن کو اسی کلید کو اس کے اجرا کے اختیار کے طور پر اور صفر رسد کے ساتھ رجسٹر کرتا ہے۔ آؤٹ پٹ وہی دو سطریں ہیں جو مقررہ رسد والے ٹوکن کے لیے ہوتی ہیں۔ --fixed-supply اور --authority-key-out میں سے ٹھیک ایک دینا لازم ہے۔
اسی ٹرانزیکشن میں پہلی مقدار جاری کرنے کے لیے --initial اور --to شامل کریں، جو دونوں ایک ساتھ دینا لازم ہیں:
rand --key wallet.key.json token create \
--name "Example Points" \
--symbol EXP \
--decimals 0 \
--authority-key-out exp-authority.key.json \
--initial 5000 \
--to rand1…
جب تک رجسٹریشن زیرِ عمل ہو، کلید exp-authority.key.json.pending میں رہتی ہے۔ چین کے رجسٹریشن قبول کرنے پر اسے exp-authority.key.json بنا دیا جاتا ہے، اور چین کے انکار کی صورت میں اسے ضائع کر دیا جاتا ہے۔ اگر کنکشن ناکام ہو جائے اور نتیجہ معلوم نہ ہو تو فائل .pending ہی میں رہتی ہے: اسے حذف کرنے سے پہلے rand token list دیکھ لیں۔
کلید کی فائل ہی ٹوکن چھاپنے کا اختیار ہے۔ اسے آف لائن اور بیک اپ کے ساتھ رکھیں؛ یہ آپ کے والیٹ کی خرچ کی کلید سے الگ ہے اور بھیجنے یا وصول کرنے کے لیے کبھی درکار نہیں ہوتی۔
پہلے اجرا کا وصول کنندہ id کا حصہ کیوں ہے
رجسٹریشن پر اس کے بنانے والے کے دستخط نہیں ہوتے۔ جو کوئی بھی آپ کی رجسٹریشن کو میم پول میں منتظر دیکھے، وہ اس کی ایک نقل جمع کرا سکتا ہے جس کی ادائیگی وہ اپنے فیس بنڈل سے کرے۔ اگر asset id صرف نام، علامت اور مقدار پر مشتمل ہوتی تو وہ نقل وصول کنندہ کے طور پر نقل کرنے والے کا ایڈریس درج کر کے پہلے بلاک میں پہنچ سکتی تھی: id اس کی ملکیت بن جاتی، اور مقررہ رسد والے ٹوکن کی صورت میں پوری رسد ہمیشہ کے لیے۔
اسی لیے id رجسٹریشن کی ہر چیز پر، ابتدائی اجرا سمیت، ایک ہیش ہے: اس کی مقدار، اس کا وصول کنندہ، اس کی بے ترتیبی، اس کا وقت اور اس کا خفیہ شدہ لفافہ۔ مختلف وصول کنندہ والی نقل کا ہیش ایک مختلف asset id بنتا ہے۔ یہ ایک مختلف ٹوکن ہے جس کی علامت اتفاقاً آپ والی ہے، اور غیر منفرد علامت نے کبھی اس سے زیادہ کا وعدہ کیا ہی نہیں۔ آپ کی id صرف آپ کے وصول کنندہ کے ساتھ ہی رجسٹر ہو سکتی ہے۔
--salt <hex32> وہ 32-byte سالٹ مقرر کرتا ہے جو id میں بھی شامل ہوتا ہے۔ اسے چھوڑ دیں تو والیٹ ایک بے ترتیب سالٹ چن لیتا ہے۔ جب آپ کو id دوبارہ قابلِ حصول درکار ہو، مثلاً ٹوکن کے وجود میں آنے سے پہلے id شائع کرنے کے لیے، تو اسے مقرر کریں۔
اس کی تصدیق کریں
rand token info rpl1… # by id: rpl1… or 64 hex characters
rand token info 2 # or by the index `token create` printed
rand token list --limit 20 # one page of the registry; --from <index> pages on
token info ٹوکن کی قطار JSON کی صورت میں دکھاتا ہے: index، id، id_text (rpl1… صورت)، name، symbol، decimals، authority، mint_nonce، total_supply اور registered_at۔ مقررہ رسد والے ٹوکن کے لیے authority کی قدر {"kind":"none"} اور قابلِ اجرا ٹوکن کے لیے {"kind":"key","key":…,"address":…} ہوتی ہے۔ total_supply بنیادی اکائیوں میں ایک اعشاری سٹرنگ ہے۔ token list میں enabled، registration_fee، next_index اور tokens کی قطاریں دکھائی جاتی ہیں۔ دونوں نوڈ کی پوری فہرست پڑھتے ہیں، اس لیے نوڈ کو معلوم نہیں ہوتا کہ آپ کس ٹوکن میں دلچسپی رکھتے تھے۔
یا JSON-RPC کے ذریعے، جہاں پیرامیٹر اشاریہ، 64 حروف کی hex id یا rpl1… صورت ہو سکتا ہے:
curl -s http://127.0.0.1:8545 -H 'content-type: application/json' -d '{
"jsonrpc": "2.0", "id": 1,
"method": "rand_getToken",
"params": ["rpl1…"]
}'
نتیجہ وہی قطار ہے جو token info دکھاتا ہے، یا اگر ایسا کوئی ٹوکن موجود نہ ہو تو null؛ غلط ساخت والی id (غلط چیک سم، ملے جلے چھوٹے بڑے حروف، غلط لمبائی) پر خرابی -32602 آتی ہے۔ rand_getTokens میں [from_index, limit] دیا جاتا ہے اور یہ ہر رجسٹرڈ ٹوکن کو صفحہ بہ صفحہ دکھاتا ہے، اور rand_getTokenSupply صرف { total_supply, backings } لوٹاتا ہے۔ ان میں سے کسی کو بھی کلید درکار نہیں۔ دیکھیں JSON-RPC۔
آج chain 20 پر موجود ایک قطار zUSD کی ہے، جو اشاریہ 1 پر برج کیا گیا ٹوکن ہے۔ ایکسپلورر نوڈ کی رجسٹری فراہم کرتا ہے، اس لیے آپ کو اپنے نوڈ کی ضرورت نہیں:
curl -s https://randscan.org/api/v1/tokens
chain 14 پر، 2026-09-20 کو، اس نے "registration_fee": 1000000000، "next_index": 2 اور ایک ٹوکن لوٹایا، جسے یہاں اس کی پہلی پشت پناہی تک مختصر کیا گیا ہے:
{
"index": 1,
"id": "32e5ab28c782c663e14da2650a3feb12f16a12db85599f4f62dc169d26f37b1f",
"id_text": "rpl1xtj6k2x8strx8c2d5fjs50ltztck5ykms4ve7nmzmstf6fhn0v0spelqtx",
"name": "Shielded USD",
"symbol": "zUSD",
"decimals": 8,
"authority": {
"kind": "bridge",
"backings": [
{ "chain": 2, "token": "000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7",
"decimals": 6, "locked": "0", "minted_today": "0", "mint_day": 20716,
"mint_cap_per_day": "10000000000000" }
]
},
"mint_nonce": 0,
"total_supply": "0",
"registered_at": 256
}
chain 20 پر اس قطار کی id، id_text، نام، علامت اور پشت پناہیاں وہی ہیں، لیکن zUSD کو height 256 پر رجسٹر کرنے کے بجائے جینیسس میں درج کیا گیا ہے (registered_at 0)، اور اس کی رسد 99 zUSD سے شروع ہوئی: 22 Ethereum USDT پر مقفل، 22 BSC USDT پر، 30 Tron USDT پر اور 25 Solana USDT پر، جو chain 19 سے منتقل ہوئیں۔ (chain 19 کی رسد 10 zUSD سے شروع ہوئی تھی، سب Solana پر؛ chain 18 کی 9 Tron پر اور 1 Solana پر۔) ہر پشت پناہی کی قطار میں رولنگ ونڈو کے فیلڈ minted_in_window، mint_window_secs اور mint_headroom بھی ہوتے ہیں۔
ایکسپلورر کی نقل میں registration_fee ایک JSON عدد ہے؛ نوڈ کا اپنا RPC اسے، ہر مقدار کی طرح، اعشاری سٹرنگ کے طور پر لوٹاتا ہے۔ chain 20 پر، جیسا کہ chain 15 کے بعد سے ہر چین پر، نوڈ کے rand_getTokens میں max_tokens (4096)، burn_registration_fee اور bound_note_value (دونوں true) بھی شامل ہوتے ہیں (RPL ٹوکن)۔
4. اجرا کریں، اور اختیار منتقل کریں
صرف Key اختیار والا ٹوکن ہی جاری کیا جا سکتا ہے، اور وہ بھی صرف اسی کلید سے۔
rand --key wallet.key.json token mint \
--asset rpl1… \
--to rand1… \
--amount 5000 \
--authority-key exp-authority.key.json
--amount ٹوکن کی نمائشی اکائیوں میں ہے: اس 0-اعشاری ٹوکن کے 5000 کا مطلب 5,000 بنیادی اکائیاں ہے، اور 6-اعشاری ٹوکن کے 1.5 کا مطلب 1,500,000 ہوگا۔ نوٹ یا ثبوت بنانے سے پہلے والیٹ ٹوکن کی قطار پڑھتا ہے اور انکار کر دیتا ہے اگر ٹوکن Key کے ذریعے مجاز نہ ہو یا اگر --authority-key وہ کلید نہ ہو جس کا نام رجسٹری میں درج ہے۔ کامیابی پر یہ جمع کرانے کی اطلاع دیتا ہے اور minted <amount> (<base units> units) of asset <index> to <address> دکھاتا ہے۔ --fee (پہلے سے طے شدہ 0.001 RAND)، --no-wait اور --cuda اسی طرح کام کرتے ہیں جیسے token create کے لیے۔
اجرا وصول کنندہ کے لیے ایک نوٹ کا اضافہ کرتا ہے اور کل رسد بڑھاتا ہے۔ مقدار اور وصول کنندہ کی عوامی کلید نیٹ ورک پر ظاہر ہوتی ہیں: اجرا اپنی ساخت کے لحاظ سے ایک عوامی واقعہ ہے، بالکل برج کے ذریعے جمع کرانے کی طرح۔ جب وصول کنندہ نوٹ منتقل کرتا ہے تو یہ باقی ہر چیز کی طرح مخفی ہو جاتا ہے۔ فیس ادا کرنے والا والیٹ (--key) اور اجرا کی اجازت دینے والی کلید (--authority-key) الگ الگ کلیدیں ہیں اور الگ الگ افراد کے پاس ہو سکتی ہیں۔
ہر اجرا پر دستخط chain id، asset id اور رجسٹری کے رکھے ہوئے ایک کاؤنٹر پر ہوتے ہیں، اور chain 20 پر جینیسس ہیش پر بھی (rand-rpl-mint-2)، اس لیے کسی اجرا کو نہ اس چین پر دہرایا جا سکتا ہے اور نہ کسی دوسری چین پر نقل کیا جا سکتا ہے، چاہے وہ یہی chain id رکھتی ہو۔ set-authority بھی اسی طرح پابند ہے۔
اختیار کو نئی کلید پر منتقل کرنے، یا اس سے ہمیشہ کے لیے دستبردار ہونے کے لیے:
rand --key wallet.key.json token set-authority \
--asset rpl1… \
--authority-key exp-authority.key.json \
--new-key next-authority.key.json
rand --key wallet.key.json token set-authority \
--asset rpl1… \
--authority-key exp-authority.key.json \
--renounce
--new-key ایک کلید کی فائل لیتا ہے اور ٹوکن اس فائل کی عوامی کلید کے سپرد کر دیتا ہے؛ --new-key اور --renounce میں سے ٹھیک ایک دینا لازم ہے۔ کمانڈ asset <index>'s mint authority is now <public key hex> یا asset <index>'s mint authority is renounced for good دکھاتی ہے۔ ہر ایک پر 0.001 RAND کی بنیادی فیس اور ثبوت سازی کا ایک دور صرف ہوتا ہے۔ --renounce ٹوکن کو اس کی موجودہ رسد پر مقررہ رسد والا ٹوکن بنا دیتا ہے۔ یہ یک طرفہ ہے: اختیار ایک کلید سے دوسری کلید کو، یا کسی کلید سے کسی کو نہیں، منتقل ہو سکتا ہے، اور اس کے سوا کچھ نہیں۔ مقررہ رسد کے ساتھ بنایا گیا ٹوکن کبھی قابلِ اجرا نہیں بن سکتا۔
5. اسے استعمال کریں
بھیجیں
rand --key wallet.key.json send rand1… 250 --asset rpl1…
یہ ٹوکن کی 250 نمائشی اکائیاں بھیجتا ہے: 0 اعشاریہ پر 250 EXP، یا 2 پر 250.00 EXC (25,000 بنیادی اکائیاں)۔ وصول کنندہ اور مقدار مقامی دلائل ہیں، جیسے RAND کے لیے۔ کوئی بھی ثبوت بنانے سے پہلے والیٹ ایک سطر to fingerprint XXXX-XXXX-XXXX-XXXX · <amount> <symbol> (<base units> units) دکھاتا ہے اور send? [y/N] پوچھتا ہے۔ فنگرپرنٹ کو وصول کنندہ کے فنگرپرنٹ سے، اور بنیادی اکائیوں کو اپنی مطلوبہ مقدار سے ملا لیں۔ --yes سوال چھوڑ دیتا ہے، اور اسکرپٹ کے لیے اسے دینا لازم ہے: اس کے بغیر، ایسا stdin جو ٹرمینل نہ ہو، مسترد کر دیا جاتا ہے۔ --asset اشاریہ، rpl1… id یا 64 حروف کی hex id لیتا ہے، اور اسے چھوڑ دینے پر RAND بھیجا جاتا ہے۔ --memo <text> ادائیگی کے لفافے کے اندر وصول کنندہ کے لیے 510 bytes تک کی تحریر مہر بند کرتا ہے، جس کی اجازت دینے والی پہلی چین chain 18 ہے؛ چین پر کوئی چیز یہ ظاہر نہیں کرتی کہ میمو موجود ہے۔ --fee ہمیشہ RAND میں ہوتی ہے اور پہلے سے طے شدہ قدر 0.001 ہے؛ --no-wait اور --cuda لاگو ہوتے ہیں۔ id کو نوڈ کی پوری رجسٹری فہرست سے اس کے اشاریے میں بدلا جاتا ہے، اور عددی اشاریہ نوڈ تک پہنچتا ہی نہیں، اس لیے نوڈ کو یہ نہیں بتایا جاتا کہ کون سا ٹوکن منتقل ہونے والا ہے۔ یہ وہی rand send ہے جو RAND منتقل کرتا ہے، اور وہی ثبوت سازی۔ ٹرانزیکشن چار nullifier، چار commitment، ایک RAND فیس، ایک وقت، چار خفیہ شدہ لفافے، بنڈل کا ثبوت اور، chain 17 سے، ایک اجازتی commitment اور اس کا ثبوت شائع کرتی ہے، چاہے کوئی بھی اثاثہ منتقل ہوا ہو۔ مشاہدہ کرنے والا ٹوکن کی منتقلی کو RAND کی ادائیگی سے الگ نہیں پہچان سکتا، نہ یہ جان سکتا ہے کہ وہ کون سا ٹوکن تھا، اور اسے نہ بھیجنے والا نظر آتا ہے، نہ وصول کنندہ اور نہ مقدار۔
فیس RAND میں اسی بنڈل سے ادا ہوتی ہے، اس لیے بھیجنے والے والیٹ میں کچھ RAND ہونا لازم ہے۔ والیٹ ثبوت سازی شروع کرنے سے پہلے اس کی جانچ کرتا ہے۔
بیلنس دیکھیں
rand --key wallet.key.json asset-balance 2 # one token, by index
rand --key wallet.key.json asset-balance # a row for every token this wallet holds
دلیل رجسٹری کا اشاریہ ہے۔ ایک ٹوکن کے لیے والیٹ بنیادی اکائیوں میں asset <index> balance: <N> units دکھاتا ہے۔ rand notes والیٹ کے کھولے ہوئے ہر نوٹ کو اس کے asset اشاریے کے ساتھ درج کرتا ہے۔ والیٹ اپنی مشاہداتی کلید سے چین کو اسکین کر کے اپنے نوٹ تلاش کرتا ہے۔ چین پر کوئی ایسا بیلنس محفوظ نہیں جسے وہ دیکھ سکے۔
تلف کریں
rand --key wallet.key.json token burn rpl1… 100
اثاثہ اور مقدار مقامی دلائل ہیں: اثاثہ اشاریے، rpl1… یا hex کی صورت میں، اور مقدار ٹوکن کی نمائشی اکائیوں میں، جیسے send --asset اسے پڑھتا ہے۔ --fee کی پہلے سے طے شدہ قدر 0.001 RAND ہے؛ --no-wait اور --cuda لاگو ہوتے ہیں۔
تلف کرنا اکائیوں کو ختم کرتا ہے اور کل رسد گھٹاتا ہے۔ اجرا کی طرح یہ بھی ایک عوامی حد ہے: مقدار اور ٹوکن نظر آتے ہیں، حامل نہیں۔ zUSD جیسا برج کیا گیا ٹوکن اس طرح تلف نہیں ہوتا: token burn ثبوت سازی سے پہلے ہی اسے مسترد کر دیتا ہے، اور یہ rand bridge-burn کے ذریعے نکلتا ہے، جو اس کے پیچھے موجود سکہ جاری کر دیتا ہے۔
6. ایکسپلورر پر اس کی تصدیق کریں
randscan.org ہر ٹوکن کا عوامی پہلو سب کو دکھاتا ہے: اس کی رجسٹریشن، اس کے مِنٹ اور برن، اور اس کی کل رسد۔ ہر ٹوکن randscan.org/tokens پر درج ہے، اور کسی ایک ٹوکن کا صفحہ /tokens/<rpl1…>، /tokens/<64 hex> یا /tokens/<index> ہے؛ randscan.org/tokens/1 zUSD ہے۔ یہی ڈیٹا GET /api/v1/tokens اور GET /api/v1/tokens/:id پر دستیاب ہے، اور دوسرے میں ٹوکن کی ڈیپلائے ٹرانزیکشن اور رجسٹریشن، مِنٹ اور برن پر مشتمل اس کی رسد کی تاریخ بھی شامل ہے (ایکسپلورر API)۔
کسی منتقلی کا عوامی صفحہ نہ اثاثہ دکھاتا ہے، نہ رقم اور نہ فریقین، کیونکہ چین کے پاس یہ معلومات ہوتی ہی نہیں۔ کسی دوسرے فریق، مثلاً آڈیٹر، معاملے کے فریقِ ثانی یا ایکسچینج، کے سامنے ادائیگی ثابت کرنے کے لیے انہیں ایک کلید دیں:
| کلید | اس کا حامل کیا دیکھتا ہے |
|---|---|
| ٹرانزیکشن کلید | ایک ٹرانزیکشن کا ایک آؤٹ پٹ کھلا ہوا: ٹوکن، رقم اور فریقین |
| ویونگ کلید | ہر وہ نوٹ جو والیٹ نے بھیجا یا وصول کیا، اسی تفصیل کے ساتھ، اور یہ کہ ہر نوٹ خرچ ہو چکا ہے یا نہیں |
rand --key wallet.key.json tx-key <TX_HASH> # the keys for one transaction
rand --key wallet.key.json viewing-key # the wallet's viewing key, 64 hex characters
tx-key اس ٹرانزیکشن کے ہر اس آؤٹ پٹ کے لیے ایک سطر چھاپتا ہے جو اس والیٹ نے بھیجا، وصول کیا یا ریزگاری کے طور پر رکھا: آؤٹ پٹ (bundle:0 سے bundle:3 تک، یعنی بنڈل کے چار خانے)، کردار، رقم (RAND میں، یا ٹوکن کے لیے N (asset I)) اور وہ فی ٹرانزیکشن کلید جس کے تحت وہ آؤٹ پٹ مہر بند کیا گیا تھا۔ sent والی سطر کی کلید حوالے کریں۔ یہ کسی بھی گزشتہ ٹرانزیکشن کے لیے کام کرتی ہے، کیونکہ والیٹ یہ کلید چین سے بازیافت کر لیتا ہے۔
وہ آؤٹ پٹ کھولنے کے لیے ٹرانزیکشن کلید کو randscan پر اس ٹرانزیکشن کے صفحے میں چسپاں کریں؛ ایکسپلورر اثاثے کے اشاریے کو رجسٹری سے ملا کر ٹوکن کو اس کے نام سے اور اس کے اعشاری مقامات کے اطلاق کے ساتھ دکھاتا ہے۔ ویونگ کلید randscan.org/viewing میں درج کی جاتی ہے۔ ایکسپلورر نہ کوئی کلید رکھتا ہے اور نہ اپنے سرور پر کچھ ڈکرپٹ کرتا ہے۔ JSON-RPC کے ذریعے یہی انکشاف rand_checkTransaction(hash, key) ہے۔ دونوں میں سے کوئی بھی کلید کچھ خرچ نہیں کر سکتی۔ ویونگ کلید ایک بار شیئر ہو جائے تو واپس نہیں لی جا سکتی، اس لیے جب صرف ایک ادائیگی ثابت کرنا مقصود ہو تو ٹرانزیکشن کلید کو ترجیح دیں۔
7. برج شدہ ٹوکن
zUSD (“پوشیدہ USD”) بھی ایک RPL ٹوکن ہے، جس کا اختیار Bridge ہے: اس کی اکائیاں صرف تب مِنٹ ہوتی ہیں جب نگہبان Ethereum، Binance Smart Chain، Tron یا Solana پر USDT یا USDC کے ڈپازٹ کی تصدیق کریں، اور اس کی رسد ہمیشہ وہاں مقفل رقم کے برابر رہتی ہے۔ اسے chain 14 پر height 256 کی ٹرانزیکشن کے ذریعے اشاریہ 1 پر سات پشت پناہیوں کے ساتھ رجسٹر کیا گیا، اور اس کے بعد ہر چین کا جینیسس، بشمول chain 20، اسے اسی id، rpl1xtj6k2x8strx8c2d5fjs50ltztck5ykms4ve7nmzmstf6fhn0v0spelqtx، کے تحت دوبارہ درج کرتا ہے۔ chain 15 نے وہ 10 zUSD آگے منتقل کیے جو chain 14 کے رکنے کے وقت گردش میں تھے، chains 16 تا 19 انہی 10 zUSD کے ساتھ شروع ہوئیں، اور chain 20 ان 99 zUSD کے ساتھ شروع ہوئی جو chain 19 پر گردش میں تھے۔ chain 20 پر برج ہر ڈپازٹ اور ہر واپسی کا 10 bps، zUSD میں، خزانے کے ایک نوٹ میں لیتا ہے (برج)۔ zUSD ایک باسکٹ ہے: اس کی پشت پناہیاں اسمی قدر پر یکجا کی جاتی ہیں، اس لیے حامل ہر درج شدہ سکے کا خطرہ اٹھاتا ہے، نہ کہ صرف اس سکے کا جو اس نے جمع کرایا تھا (RPL ٹوکن)۔ اس کی رسد ہر ڈپازٹ اور واپسی کے ساتھ بدلتی ہے؛ rand token info 1 یا ایکسپلورر کا /tokens/1 موجودہ عدد بتاتا ہے۔
chain 14 پر، جو ایک سابقہ testnet تھی، اس کا سفر (ایکسپلورر پر 2026-09-20 کو جانچا گیا)۔ یہ جدول chain 14 کی تاریخ ہے: chain 14 ریٹائر ہو چکی ہے، اس لیے یہ ٹرانزیکشنز chain 20 کے ایکسپلورر پر موجود نہیں:
| کیا | ٹرانزیکشن (chain 14) | height |
|---|---|---|
رجسٹریشن (register_bridged_token) | 7fa28fe6277a82401dcc440ff32da13c5e5763f79826fb17cc508f4c15abdd13 | 256 |
ایک برج مِنٹ (bridge_attest) | f2f24d75bc0e7d84dff1f4e4518a9d4bef115392492a39befca1528a2404851d | 2,572 |
| ایک پوشیدہ zUSD منتقلی | e6ddaca3c852e6c861524a55d00a0fbdcaff6867544b9f19b9bf60ce263c32ed | 3,259 |
ایک برج برن (bridge_burn) | f9f365ca170a5fb51ff9381d7b5cc39538c1a621e5f6e8c1bd74d8751c7bbc49 | 3,481 |
منتقلی کے صفحے نے وہی دکھایا جو کسی بھی ٹوکن کی منتقلی دکھاتی ہے: چار نلیفائر، چار کمٹمنٹ اور ایک فیس، اور کوئی ایسی چیز نہیں جس سے معلوم ہو کہ zUSD منتقل ہوا۔
یہ دکھانے کے لیے کہ کلید کیا ظاہر کرتی ہے، فل نوڈ کے v0.5 ریلیز نوٹس نے chain 14 کی اس منتقلی کے لیے دو کلیدیں شائع کیں، جو اسی مقصد کے لیے بنائے گئے ایک نمائشی والیٹ سے تھیں جس میں اور کچھ نہیں:
| کلید | قدر | یہ کیا کھولتی ہے |
|---|---|---|
| منتقلی کی ٹرانزیکشن کلید | 7f68f57c4f33a3f0fe419f4d1a5df2875461339dbc454af8ced50cbd7f40e4ef | اسی ایک ٹرانزیکشن کا آؤٹ پٹ bundle:0: asset 1 کی رقم 100000000، جو 1 zUSD ہے |
| نمائشی والیٹ کی ویونگ کلید | a93c673ffeff7204447161347828d8e549b7070460813ae1b7e664694e1dcd5d | ہر وہ نوٹ جو اس والیٹ نے بھیجا یا وصول کیا |
chain 14 پر ٹرانزیکشن کلید نے منتقلی کے صفحے پر وہ آؤٹ پٹ کھول دیا، اور JSON-RPC کے ذریعے یہ ایک ہی کال تھی (2026-09-20 کو جانچا گیا)۔ chain 20 پر آپ کی اپنی ٹرانزیکشن کے لیے کال کی شکل یہی ہے؛ chain 14 کی ان قدروں کے ساتھ chain 20 کا نوڈ null جواب دیتا ہے (2026-10-01 کو جانچا گیا)، کیونکہ یہ ٹرانزیکشن کبھی اس کے پاس تھی ہی نہیں:
curl -s https://rpc.randprotocol.org -H 'content-type: application/json' -d '{
"jsonrpc": "2.0", "id": 1, "method": "rand_checkTransaction",
"params": ["e6ddaca3c852e6c861524a55d00a0fbdcaff6867544b9f19b9bf60ce263c32ed",
"7f68f57c4f33a3f0fe419f4d1a5df2875461339dbc454af8ced50cbd7f40e4ef"] }'
جو والیٹ آپ استعمال کرتے ہیں اس کی ویونگ کلید کبھی شائع نہ کریں: یہ اس والیٹ کی پوری تاریخ ہمیشہ کے لیے ظاہر کر دیتی ہے۔
کوئی عام ایڈریس برج شدہ ٹوکن نہیں بنا سکتا۔ rand token create اختیار Bridge کو مسترد کر دیتا ہے، اور برج شدہ ٹوکن رجسٹر کرنے، یا کسی موجودہ ٹوکن کی پشت پر نیا سکہ شامل کرنے، کے لیے برج کے پوسٹ کوانٹم نگہبان سیٹ کے دستخط شدہ کورم کی ضرورت ہوتی ہے۔ جو ٹوکن اس کے بغیر خود کو zUSD کہے وہ مستعار علامت والا محض ایک اور ٹوکن ہے، اور یہ rpl1… id جانچنے کی ایک اور وجہ ہے۔ Rand پر برج شدہ ٹوکنز کے ہمیشہ 8 اعشاری مقامات ہوتے ہیں۔
برج ڈپازٹس، واپسیوں اور نگہبان سیٹ کا احاطہ کرتا ہے۔