Rand Protocol
لاسوندونه
بنسټیز مفاهیم

RPL ټوکنونه

د RPL ټوکن معیار - ټوکن د لیجر د ثبت لړ د یوه ننوت په توګه، د هغه د شتمنۍ پېژندنه، شاخص او د rpl1 متني بڼه، د مینټ واکمنۍ، د جوړولو لګښت، ولې د ټوکن لېږد بالکل د RAND تادیې په څېر ښکاري، مینټونه او سوځونې، او دا چې له ERC-20 او SPL څخه څنګه توپیر لري.

دا پاڼه وکاروئ ترڅو پوه شئ چې پر دې زنځیر ټوکن څه شی دی، مخکې له دې چې یو جوړ کړئ، لیست یې کړئ یا یې انډکس کړئ. RPL د Rand د ټوکن معیار دی چې په زنځیر 14 کې نوی راغلی. ټوکن یو پټ اصلي شتمني ده: د دفتر په راجستر کې یو داخله، چې بیلانسونه یې د عادي نوټونو په توګه په هماغه د ژمنو ونه کې ساتل کېږي چې RAND یې کاروي. دا قرارداد نه دی. د ګام په ګام جوړولو لپاره، یو RPL ټوکن ځای پر ځای کړئ وګورئ.

لامل یې جوړښتي دی. یو Call یوازې رسید لیکي، نو د ERC-20 په بڼه قرارداد د بیلانس ساتلو لپاره هېڅ ځای نه درلود، او عامه بیلانس جدول به ټوکنونه پر یو پټ زنځیر یوازینۍ شفافه شتمني ګرځولې وای. د دې پر ځای RPL ټوکن د دفتر یو لومړۍ درجې شی ګرځوي. زنځیر 20 RPL-2 (v0.6.8) زیاتوي: یو پروګرام کولای شي عامه حالت خونې او عامه خزانه وساتي، او د خپل یو ټوکن د ضرب واک لرونکی کېدای شي (لاندې)؛ هغه بیلانسونه چې خلک یې لري لا هم نوټونه دي.

ټوکن د راجستر یوه داخله ده

TokenRegistry (crates/randprotocol-core/src/ledger/tokens.rs) یو جدول دی چې ټول ټوکنونه، اصلي یا پُل شوي، پکې شریک دي. دا هماغه راجستر دی چې پُل د یوې شتمنۍ انډکس له لارې یې پیدا کوي. هره داخله:

ساحهقاعده
idد شتمنۍ پېژندنه، 32 بایټه، د منځپانګې له مخې پته شوې
indexu32، هغه ارزښت چې د نوټ asset کلمه یې لېږدوي؛ ګڼ، د راجسترېدو په ترتیب له 1 څخه ټاکل کېږي. انډکس 0 RAND دی او هېڅکله نه راجسترېږي
nameله 1 تر 32 بایټه UTF-8، تشې ځایونه اجازه لري، نه بدلېدونکی
symbolله 1 تر 12 ASCII ګرافیکي بایټه (0x21..=0x7e، بې تش ځایه)، نه بدلېدونکی
decimalsله 0 تر 9، نه بدلېدونکی
authorityد ضرب واک، لاندې
mint_nonceد Key واک د بیا لېږلو شمېرونکی
total_supplyu64، کنټرول شوې حساب؛ لوړ اوښتل ضرب ردوي. له زنځیر 15 راهیسې له 2^63 څخه ښکته ساتل کېږي (لاندې)
registered_atد راجسترېدو لوړوالی

لسیز ځایونه په 9 دریږي ځکه چې مقدارونه u64 دي: په 18 لسیزو ځایونو یو u64 یوازې 18.4 بشپړ ټوکنونه ساتي، او 9 د RAND خپل دقت دی. یو پُل شوی ټوکن تل په 8 لسیزو ځایونو راجسترېږي، که د سرچینې سکې یې هر څومره کاروي.

راجستر د پیدایښت په فایل کې د tokens برخې په واسطه فعالېږي، لکه څنګه چې bridge او aggregation د خپلو برخو په واسطه. پرته له هغې د ټوکن هره کړنه له هر بل کنټرول مخکې ردېږي (TokenError::Disabled). د زنځیر 20 پیدایښت دا برخه لري او یو ټوکن لیست کوي، zUSD، له خپلو اوو ملاتړونو سره، چې له زنځیر 14 راهیسې له هرې پرې کولو سره راوړل شوی؛ پر زنځیر هر بل ټوکن د راکړې ورکړې له لارې راځي. (د زنځیر 14 پیدایښت هېڅ نه وو لیست کړي.) کله چې دروازه پرانیستې وي، یو tokens_root (د blake3("rand-token-leaf-1", bincode(TokenInfo)) پاڼو merkle ریښه د انډکس په ترتیب) د حالت په ریښه کې ننوځي. د ریښې ډومېن پر هغه زنځیر چې وروسته پکې هېڅ نه وي فعال شوي rand-state-4 دی؛ د زنځیر 20 ریښه د faucet او د ضمانت د کتار حالت، ژوندي ګاز بیې او د پروګرام د حالت ریښه هم لري، د rand-state-8 لاندې هش کېږي، او یو ځل بیا د منل شویو validators د ټولګې په واسطه پوښل کېږي (اجماع).

هغه زنځیر چې tokens برخه لري دا هم غواړي چې د پیدایښت هر alloc نوټ خپل پرانیستل (pk، time، r) ولري، او نوډ ژمنه بیا محاسبه کوي او هغه فایل ردوي چې سره سمون ونه لري. ژمنه په شتمنۍ 0 کې ده مګر دا چې پرانیستل د هغه ټوکن انډکس ونوموي چې هماغه پیدایښت یې لیست کوي — زنځیر 20 دوه داسې نوټونه لري، 10 او 89 zUSD په انډکس 1 کې — او د هر لیست شوي ټوکن لپاره د پیدایښت نوټونه باید هغه مقدار ته ورسېږي چې ملاتړونه یې پرې په locked کې پیل کوي. کله چې نوټ داسې asset کلمه ولري چې ټوکن نومولای شي، یوه نه پرانیستل شوې د پیدایښت ژمنه به یوازینۍ لار وي چې د هرې شتمنۍ بې ملاتړه نوټ بې کنټروله حوض ته ننباسي.

د شتمنۍ پېژندنه، انډکس او rpl1…

ټوکن دوه نومونه لري، او RPC دواړه ورکوي.

  • د شتمنۍ پېژندنه 32 بایټه ده، د پروګرام د پېژندنې په څېر د منځپانګې له مخې پته شوې. د اصلي ټوکن پېژندنه blake3("rand-rpl-asset", bincode(name, symbol, decimals, authority, initial, salt)) ده، چېرې چې salt هغه 32 بایټه دي چې جوړونکی یې غوره کوي او initial بشپړ لومړنی ضرب دی، که وي. د پُل شوي ټوکن پېژندنه blake3("rand-rpl-asset", bincode(name, symbol, 8, salt)) ده. د داسې پېژندنې راجسترول چې لا شته وي ردېږي (TokenError::AlreadyRegistered).
  • انډکس هغه څه دی چې نوټ یې په رښتیا لېږدوي، ځکه چې 32 بایټیزه پېژندنه په یوه کلمه کې نه ځایېږي. دا یو لنډلیک دی چې یوازې پر دې زنځیر مانا لري.
  • متني بڼه rpl1… د 32 پېژندنې بایټونو پر سر د انسان لپاره د لوستلو وړ برخې rpl سره bech32m (BIP-350) ده: 52 ډېټا توري او 6 توري چکسم، ټول 62 توري. هر چېرې چې ټوکن نومول کېږي د 64-hex پېژندنې تر څنګ ښودل کېږي او هر چېرې چې ټوکن لټول کېږي منل کېږي؛ hex لا هم منل کېږي. تجزیه سخته ده: غلط چکسم، غلط مختاړی، داسې محتوا چې دقیقاً 32 بایټه نه وي، یا ګډ لوی او واړه توري ردېږي، نو یوه لیکنیزه تېروتنه بل ټوکن ته نه شي رسېدای.

سمبولونه یوازیني نه دي. لکه د ERC-20 او SPL په څېر، د ټوکن هویت د هغه د شتمنۍ پېژندنه ده، هېڅکله یې نوم یا ټیکر نه.

پخوانی د هر (chain, token) ارزښت چې rand_bridgeAssetId یې محاسبه کوي او rand_getAssets یې د ملاتړ په هر قطار کې چاپوي، د پُل د تار بڼې لپاره یو تنګ پېژندونکی دی، نه د ټوکن خپله پېژندنه.

د ضرب واکونه

واکڅوک واحدونه صادرولای شيیادښتونه
Noneهېڅوک، له راجسترېدو وروستهثابت عرضه: لومړنی ضرب اړین دی او هغه ټول دي چې هېڅکله به وي
Key(PublicKey)د یوې Dilithium2 کیلي لرونکیوروسته د لاسلیک په واسطه بیا ضرب کوي؛ کولای شي واک بلې کیلي ته وسپاري یا یې پرېږدي
Bridge { backings }یوازې د پُل بندول او خوشې کولهېڅکله مستقیم ضرب نه؛ یوازې د پُل د حکومتولۍ د کړنو له لارې شتون لري
Program(ProgramId)یوازې د هغه پروګرام Invokeونه (RPL-2)پر هغه زنځیر چې program_state برخه لري (زنځیر 20): پرته له لومړني ضرب راجسترېږي، نو عرضه یې له صفر پیلېږي، او یوازې د هغو بدلونونو په واسطه ضرب یا سوځول کېږي چې د پروګرام ثبوت یې تضمین کوي (rand token create --program <id>). پر هغه زنځیر چې دا برخه نه لري په راجسترېدو کې ردېږي

هغه RegisterToken چې Bridge نوموي ردېږي (TokenError::AuthorityNotAllowed)، لکه څنګه چې هغه چې Program له لومړني ضرب سره یا پر داسې زنځیر چې program_state نه لري نوموي. د Key واک دقیقاً یوه Dilithium2 عامه کیلي ده: د هر بل بایټ اوږدوالي کیلي ردېږي (TokenError::BadAuthorityKey)، او په ضرب کې د ترلاسه کوونکي ML-KEM کیلي هم په همدې ډول خپل اوږدوالي ته پابنده ده. دواړه د اجماع حالت یا د بلاک ځای دي چې په ثابت فیس اخیستل کېږي، نو هېڅ یو یې په خپل سري ډول لوی کېدای نه شي.

د ټوکن جوړول

جوړول اجازې ته اړتیا نه لري. Action::RegisterToken { name, symbol, decimals, authority, initial, salt, index } پر یوه عادي RAND د فیس بنډل سپرېږي او BUNDLE_BASE جمع د راجستر registration_fee ورکوي. د راجسترېدو فیس د پیدایښت یو پارامتر دی چې د 1 RAND او 10,000 RAND ترمنځ محدود دی، نو یو سپام ټوکن تل یو لګښت لري. پر زنځیر 20 دا 1 RAND دی، نو یو راجسترېدل 1.001 RAND لګښت لري، او زنځیر 20 یې سوځوي، لکه څنګه چې له 15 راهیسې هر زنځیر کړي: وړاندیزوونکی یوازې د بنډل بنسټ ساتي (لاندې).

index د راجستر هغه انډکس نوموي چې جوړونکي لومړنی نوټ ورته مهر کړی. که بل راجسترېدل هغه انډکس لومړی ونیسي، راکړه ورکړه ردېږي (TokenError::IndexMismatch) نه دا چې نوټ بې ځایه پاتې شي؛ جوړونکی په راتلونکي انډکس کې بیا ثبوت کوي.

ضرب شوی نوټ د زنځیر په واسطه محاسبه کېږي، نه د سپارونکي په واسطه غوره کېږي: note_commitment(recipient.pk, MINT_FROM, amount, index, time, r). مقدار او د ترلاسه کوونکي pk پر تار عامه دي، نو ترلاسه کوونکی کولای شي نوټ د راکړې ورکړې له خپلو ساحو بیا جوړ کړي، که مهر شوی لفافه بې مانا هم وي. د پُل زېرمه هماغه دفاع لري.

ولې پېژندنه ټول لومړنی ضرب تړي

یو RegisterToken لاسلیک شوی نه دی. د راکړې ورکړې تړون د یوې ثابت شوې کاپي له بدلون مخه نیسي، خو د دې په اړه څه نه وايي چې یوه نوې کاپي څه نومولای شي. که پېژندنې یوازې لومړنی مقدار پوښلی وای، د یوه انتظار کې راجسترېدو یو کتونکی کولای شو له بل ترلاسه کوونکي سره یوه کاپي وسپاري، هغه د هماغې پېژندنې لاندې راجستر کړي، او د ثابتې عرضې د ټوکن ټوله عرضه د لومړي ژمنې په واسطه واخلي. ځکه چې پېژندنه ټول لومړنی ضرب (مقدار، ترلاسه کوونکی، r، time او لفافه) پوښي، یوه بل لور ته اړول شوې کاپي یوې بلې شتمنۍ پېژندنې ته هش کېږي: د هماغه سمبول سره بل ټوکن، چې یو نایوازینی سمبول یې لا دمخه اجازه ورکوي. اصلي یې لا هم د یوه بیا ثبوت په لګښت په راتلونکي انډکس کې ځای نیسي.

لېږدونې د RAND په څېر هماغه بنډل دي

له زنځیر 14 راهیسې د ارزښت لېږدوونکې هره راکړه ورکړه دقیقاً یو بنډل لري، ثابته 4-ننوتل-4-وتل د پټې شتمنۍ بڼه (راکړې ورکړې او کړنې). خونې 0–1 یوه پټه شتمني لېږدوي، RAND یا هر RPL ټوکن، او سرکټ هېڅکله نه پوهېږي چې کومه. خونې 2–3 تل RAND لېږدوي. د هرې شتمنۍ لېږد Action::None دی، هماغه کړنه چې یوه ساده RAND تادیه یې کاروي. د ټوکن د لېږد کړنه نشته او هېڅ عامه ساحه نشته چې ټوکن ونوموي.

څه چې د ټوکن د لېږد کتونکی ویني، دقیقاً هغه دي چې د RAND یوه تادیه یې خپروي: یو لنګر، څلور باطلوونکي، څلور ژمنې، د RAND fee، burn_a = burn_r = burn_asset = 0، یو time، د پوښ څلور کوډ شوي متنونه او د بنډل ثبوت. له 17م زنځیر (جلا واکمنول) راهیسې هر بنډل یو auth_commit او دویم، کوچنی د واکمنولو ثبوت هم لېږدوي، چې بیا هم د هرې شتمنۍ لپاره یو شان دی. په 20م زنځیر کې هر پوښ دقیقاً 1,860 بایټه دی او د یوې کوډ شوې یادداشت (rand send --memo) لپاره ځای لري، که یادداشت ولېږل شي او که نه. کتونکی لېږونکی، ترلاسه کوونکی، مقدار، دا چې کومه شتمني خوځېدلې، کوم ځایونه ډمي وو، او پاتې بدل نه ویني.

والټ په 0–1 ځایونو کې د ټوکن تر دوو نوټونو پورې او د فیس لپاره په 2–3 ځایونو کې د RAND تر دوو نوټونو پورې لګوي. فیس تل RAND دی، نو هغه څوک چې ټوکن لري خو RAND نه لري، د ثبوت جوړولو مخکې رد کېږي. لګښت د RAND د یوې تادیې سره یو شان دی (فیسونه). په 20م زنځیر کې دا د لېږونکي په ماشین جوړ شوي دوه STARK ثبوتونه دي: د لګښت واکمنول (tier 10، شاوخوا 7 s، شاوخوا 1.37 MB) او بنډل (tier 14، شاوخوا 100 s، شاوخوا 1.5 MB)، چې په شبکه کې ټول شاوخوا 2.85 MB کېږي. هر یو د یوه ثبوت لپاره د زنځیر له 4 MiB حد څخه کم دی. له 17م زنځیر مخکې یو لېږد یوازې د بنډل ثبوت لېږداوه، چې هغه وخت شاوخوا 1.42 MB اندازه شوی و.

ضربول او واک

TokenMint { asset, amount, recipient, r, time, envelope, nonce, signature } د Key په واک د یوه ټوکن نور مقدار ضربوي. SetAuthority { asset, new, nonce, signature } واک بلې کیلي ته سپاري، یا یې کله چې new نه وي پرېږدي؛ له پرېښودلو وروسته هېڅ کیلي بیا هېڅکله دا ټوکن نه شي ضربولی. په هغه ټوکن چې واک یې Key نه وي، هر یو عمل ردېږي (TokenError::NotKeyAuthority).

واک blake3("rand-rpl-mint-1" | "rand-rpl-authority-1", chain_id ‖ asset_id ‖ nonce ‖ body) لاسلیکوي. nonce باید د ټوکن له mint_nonce سره برابر وي، چې بیا یو زیاتېږي، نو یو لاسلیک شوی ضرب نه په دې زنځیر بیا تکرارېدای شي او نه بل زنځیر ته وړل کېدای شي. د ضرب body د پوښ ډایجسټ لري: یوازې ژمنه یې نه پوښي، او له ډایجسټ پرته یو دریم اړخ کولای شي یو خپور شوی ضرب د بې‌ګټې پوښ سره بیا ونغاړي او nonce مصرف کړي.

دواړه عملونه د RAND فیس پر یوه بنډل سپاره دي چې BUNDLE_BASE ورکوي. هغه والټ چې فیس ورکوي او هغه کیلي چې ضرب واکمنوي جلا دي او کېدای شي د بېلابېلو کسانو وي.

سوځول

Action::TokenBurn { asset, amount } پر همغه یوازیني بنډل سپور دی: د بنډل burn_asset باید له asset سره برابر وي، burn_a باید له amount سره برابر وي، او burn_r صفر دی. ټوکن د شتمنۍ له ځایونو او د RAND فیس د همغه ثبوت له 2–3 ځایونو څخه حوض پرېږدي. total_supply دقیقاً په amount کمېږي. د Bridge واک لرونکی ټوکن دلته ردېږي (TokenError::BridgedToken)؛ هغه د پل د سوځولو له لارې وځي.

فیسونه

هر RPL عمل په RAND ورکړه کوي.

عملد فیس لږ تر لږه حدپه 20م زنځیر کې
د هرې شتمنۍ لېږد (Action::None)BUNDLE_BASE0.001 RAND
RegisterTokenBUNDLE_BASE + registration_fee1.001 RAND، چې 1 RAND یې سوځول کېږي
TokenMintBUNDLE_BASE0.001 RAND
SetAuthorityBUNDLE_BASE0.001 RAND
TokenBurnBUNDLE_BASE0.001 RAND

د 20م زنځیر جنسیس یوه gas برخه لري، او هغه یوازې د پروګرامونو غوښتنې او invoke ګانې بیه کوي. دا لږترلږه حدونه ثابت دي: هېڅ RPL عمل د ګاز یا بایټ له مخې ورکړه نه کوي.

څه عامه دي او څه پټ

عامهپټ
ثبتولنوم، سمبول، اعشاریه، واک، د شتمنۍ id، د لومړني ضرب مقدار او ترلاسه کوونکیهېڅ؛ همدا لار ده چې د ټوکن عرضه له لومړي بلاک څخه د پلټنې وړ ده
بل ضربمقدار، د ترلاسه کوونکي پټه پته، د نوي نوټ ساحېچا د RAND فیس ورکړ
لېږدهېڅ داسې څه نه چې ووایي کوم ټوکن خوځېدلی دیلېږونکی، ترلاسه کوونکی، مقدار، کومه شتمني
سوځولشتمني او مقدارچا سوځول شوي نوټونه درلودل
د واک بدلوننوې کیلي، یا دا چې واک پرېښودل شو—

له دې امله total_supply تل د پلټنې وړ دی: هغه څه دي چې ثبتولو او هر ضرب زیات کړي، منفي هر سوځول. د لرونکو ترمنځ لېږد هېڅ نه څرګندوي، حتی دا هم نه چې د RAND پر ځای یو ټوکن لاس په لاس شوی دی.

افشا کول همداسې کار کوي لکه د RAND لپاره. د نوټ ساده متن شتمني لېږدوي، نو د هرې معاملې کیلي (rand tx-key <hash>) یا د لیدلو کیلي د ټوکن نوټ دقیقاً هماغسې پرانیزي لکه د RAND نوټ، او rand_checkTransaction او rand_getViewingNotes په هغه نوټ کې چې افشا کوي asset بېرته ورکوي. د داسې کیلي په درلودلو سره، randscan شاخص د راجستر په وړاندې حل کوي او لېږد د نوم لرونکي ټوکن په توګه ښيي؛ د همغې معاملې عامه پاڼه له دې هېڅ نه ښيي.

پل شوي ټوکنونه

د Bridge واک لرونکی ټوکن لا هم RPL ټوکن دی: همغه د راجستر ننوتنه، همغه پټ لېږد، همغه د سوځولو میکانیزم. عرضه یې یوازې د سرچینې په زنځیر د تړلو (BridgeAttest) یا خوشې کولو (BridgeBurn) له لارې بدلېږي. یو پل شوی ټوکن کولای شي ډېر ملاتړونه ولري، هر یو د (chain, token) جوړه چې خپل د سرچینې اعشاریه، تړل شوی مقدار او د ضرب حد لري، او total_supply تل د هغه څه له مجموعې سره برابر دی چې ملاتړونو یې تړلي دي. پل شوی ټوکن ثبتېږي، او ملاتړ ورزیاتېږي، یوازې د پل د پوسټ‌کوانټم ساتونکو د نصاب لاندې.

په 20م زنځیر کې د راجستر لومړی ټوکن zUSD (“Shielded USD”) دی، شاخص 1، 8 اعشاریه، چې په جنسیس دوتنه کې د اوو ملاتړونو سره لېست شوی (USDT او USDC په Ethereum، Binance Smart Chain او Solana، او USDT په Tron). دا هغه د شتمنۍ id ساتي چې په 14م زنځیر کې یې درلود، چېرې چې په 256 لوړوالي کې د معاملې له لارې ثبت شوی و: له 15م تر 20م زنځیر پورې هر یو یې په جنسیس کې د همغه نوم، سمبول او مالګې (salt) سره لېست کوي. 20م زنځیر یې په دوو جنسیس نوټونو (10 او 89) کې د 99 zUSD سره پیل کړ، چې ملاتړ یې په Ethereum کې 22 تړل شوي USDT، په Binance Smart Chain کې 22، په Tron کې 30 او په Solana کې 25 دي، چې د 19م زنځیر د پل له حالت څخه راوړل شوي. 19م زنځیر د 10 zUSD سره پیل شو، چې ملاتړ یې په Solana کې 10 USDT و؛ 18م زنځیر په Tron کې د 9 تړل شوو USDT او په Solana کې د 1 سره. ټوله عرضه یې د هغه څه سره برابره ده چې ملاتړونه یې تړلي ساتي او د هرې زېرمې او بېرته اخیستلو سره بدلېږي. id یې rpl1xtj6k2x8strx8c2d5fjs50ltztck5ykms4ve7nmzmstf6fhn0v0spelqtx دی. پل ملاتړونه، د خوشې کولو واحدونه، د ضرب حدونه، ځنډول او ګډ لاسلیک پوښي.

zUSD یوه ټوکرۍ ده، نه اووه جلا ادعاوې. ملاتړونه یې په ظاهري ارزښت سره یوځای شوي دي، نو لرونکی د هر لېست شوي ملاتړ خطر په غاړه لري، نه یوازې د هغې سکې چې ده زېرمه کړې ده: هغه ملاتړ چې خپل ثابت نرخ یې له لاسه ورکړی، کېدای شي په برابر ارزښت زېرمه شي او zUSD د یوه سالم ملاتړ په لور وسوځول شي، تر هغه چې سالم ملاتړونه تش شي. هغه څه چې زیان محدودوي، د ضرب ښوییدونکې کړکۍ ده (په 20م زنځیر کې، په ټولو ملاتړونو کې په هرو 24 ساعتونو کې 4,000 zUSD، سربېره پر 100,000 د هر ملاتړ لپاره) او هغه ساتنه چې په رښتیا تړل شوې ده. کړکۍ کچه محدودوي او د ضربونو د ځنډولو لپاره وخت ورکوي. ټول مقدار نه محدودوي. ملاتړ یوازې د پوسټ‌کوانټم ساتونکو د نصاب لاندې لېست کېږي، او نه هغه وخت چې ضربونه ځنډول شوي وي.

د پل فیسونه، په zUSD (20م زنځیر). د 20م زنځیر جنسیس bridge.fees ټاکي: په زېرمه 10 bps او په سوځولو 10 bps، هر یو د ملاتړ تر بشپړ خوشې کولو واحد پورې ښکته ګرد شوی (د 6-اعشاریه USDT لپاره 100 بنسټیز واحدونه)، چې د zUSD د نوټ په توګه هغې خزانې پتې ته ورکول کېږي چې جنسیس یې نوموي (v0.6.8، fullnode docs/bridge.md §25). د g زېرمه دوه نوټونه زیاتوي: د زېرمه کوونکي g − fee او د خزانې fee؛ 1 USDT ننوتل زېرمه کوونکي ته 0.999 zUSD دي. د amount سوځول fee د خزانې د نوټ په توګه ساتي او په سرچینې زنځیر amount − fee خوشې کوي؛ ساتونکي همدا د خوشې کولو مقدار لاسلیکوي، او rand_getBridgeBurn، amount، release_amount او fee وړاندې کوي. د فیس نوټ صادر شوی او ملاتړ شوی دی، نو total_supply لا هم د ملاتړونو د locked له مجموعې سره برابر دی: زېرمه دواړه په g بدلوي، سوځول دواړه په amount − fee کموي. د فیس نوټ هېڅ پوښ نه لري. هره کلمه یې عامه ده (مقدار له معاملې او د جنسیس له نرخ څخه، شتمني او time، یو ړندوونکی چې د تصدیق له ډایجسټ یا د سوځولو د معاملې له id څخه اخیستل شوی، مالک له جنسیس څخه)، نو د خزانې والټ یې له عامه ساحو څخه بیا جوړوي (نوټونه). BRIDGE_BURN_FEE، هغه 0.01 RAND چې سوځول یې وړاندیز کوونکي ته ورکوي، نه دی بدل شوی. له 14م تر 19م زنځیر پورې په Rand کې د پل فیس نه و.

راجستر له 15م زنځیر راهیسې

له 15م زنځیر راهیسې جنسیس د راجستر درې داسې قاعدې فعالوي چې 14م زنځیر نه درلودې، او د 20م زنځیر جنسیس همغه درې ارزښتونه ټاکي. هر یو د جنسیس هش او د ټوکن ریښې ته ژمن شوی دی.

د genesis ساحه20 زنځیراغېز
tokens.max_tokens4096رجستري له دې شمېر څخه زیات توکنونه نه ساتي؛ کله چې حد ته ورسېږي، RegisterToken او RegisterBridgedToken د RegistryFull په خطا ردېږي. ListBacking هېڅ توکن نه زیاتوي او له دې حد څخه اغېزمن نه دی
tokens.burn_registration_feetrueد ثبتولو registration_fee وړاندیز کوونکي ته نه ورکول کېږي، بلکې سوځول کېږي؛ وړاندیز کوونکی یوازې fee − registration_fee ساتي. rand_getSupply دا مقدار په burned او registration_fees_burned کې شمېري (عرضه)
tokens.bound_note_valuetrueیو TokenMint، لومړنی ضربول یا د پل زیرمه چې 2^63 یا تر هغه زیاته وي د AmountTooLarge په خطا ردېږي. هغه چې د یوه توکن total_supply 2^63 ته یا تر هغه پورته ورسوي، د SupplyTooLarge په خطا ردېږي

د یادښت د ارزښت دا حد ځکه ټاکل شوی چې د بنډل سرکټ هر مقدار تر 63 بټونو پورې د حد له مخې ازمويي. هغه یادښت چې ارزښت یې 2^63 یا تر هغه زیات وي، ژمنه یې ثبتېدای شي خو هېڅکله نشي لګول کېدای، او بیا هم د توکن په عرضه کې شمېرل کېږي. هر نوډ هم په هر زنځیر کې داسې مقدار د منلو پر مهال ردوي، که د هغه زنځیر genesis هر څه وايي.

RPC او CLI

مېتودپارامیټرونهپایله
rand_getTokens[from_index, limit]، اختیاري، ډیفالټ یې 0 او 1000 دي، او تر 1000 پورې محدودېږي{ enabled, registration_fee, next_index, max_tokens, burn_registration_fee, bound_note_value, tokens }، د شاخص له مخې په صعودي ترتیب، له from_index څخه په لړۍ لوستل کېږي
rand_getToken[token]: یو شاخص، یو 64-hex پېژند یا rpl1…د یوه توکن قطار، یا null؛ ناسم جوړ شوی پېژند -32602 ورکوي
rand_getTokenSupply[token]، په همغو بڼو{ total_supply, backings }؛ د اصلي توکن لپاره backings تش وي

په دې پایلو کې هر مقدار (total_supply، registration_fee، د یوې ملاتړ locked، mint_cap_per_day او minted_today) لسیز متني تار دی، ځکه چې د JSON شمېره له 2⁵³ وروسته دقیقه نه پاتې کېږي. index، next_index، mint_day او max_tokens ساده بشپړ عددونه دي (په هغه زنځیر کې چې حد نه لري max_tokens null دی). burn_registration_fee او bound_note_value بولیني ارزښتونه دي. د یوه قطار authority یو له دې بڼو لري: {"kind":"none"}، {"kind":"key","key","address"}، {"kind":"bridge","backings":[…]} یا {"kind":"program","program"}. بشپړ جزییات په JSON-RPC کې دي.

محرمیت. د rand_getTokens لګښت یو شان دی، غوښتونکی که هر توکن په ذهن کې ولري. خو rand_getToken او rand_getTokenSupply نوډ ته ښيي چې غوښتونکی کوم توکن ته پاملرنه لري. دا د بلاکونو سپړونکي لپاره سمه ده، خو د هغه والټ لپاره ناسمه ده چې لېږد ته چمتو وي. له همدې امله والټ هر --asset له بشپړ لېست څخه پېژني، او عددي شاخص هېڅکله نوډ ته نه ورلېږل کېږي.

کمانډڅه کوي
rand token createد رجستري په راتلونکي شاخص کې یو توکن ثبتوي، چې یا ثابته عرضه لري یا د Key له لارې واک لري
rand token mintد داسې توکن نور واحدونه ضربوي چې د Key له لارې واک لري؛ لاسلیک یې د هغه د واک په کیلي کېږي
rand token set-authorityواک بلې کیلي ته سپاري (--new-key) یا ترې تېرېږي (--renounce)
rand token burn <ASSET> <AMOUNT>هغه واحدونه سوځوي چې دا والټ یې لري
rand token info <ASSET>د یوه توکن بشپړ قطار
rand token listد رجستري یوه پاڼه
rand send <TO> <AMOUNT> --asset <INDEX|rpl1…|hex>یو توکن په یوه بنډل کې لېږي؛ که --asset ورنه کړل شي، RAND لېږي. د ترلاسه کوونکي ګوتنښه او مقدار چاپوي او د ثبوت له جوړولو مخکې send? [y/N] پوښتي (--yes دا پوښتنه پرېږدي)
rand asset-balance [INDEX]دا والټ له یوې شتمنۍ څومره لري، یا د هرې شتمنۍ لپاره یو قطار ښيي
rand token register-bridged، rand token list-backingد پل د لېست کولو دوه کړنې؛ هره یوه یې د PQ ساتونکو د کورم فایل ته اړتیا لري

له v0.5.10 راهیسې د rand send --asset، rand token mint او rand token burn مقدارونه د توکن په نندارې واحدونو کې لیکل کېږي. دا مقدارونه د توکن د رجستري قطار د خپل decimals له مخې لوستل کېږي: د یوه 6-لسیز توکن 1.5 د هغه د کوچني واحد له 1,500,000 سره برابر دی، او که کسري عددونه د توکن له لسیزو څخه زیات وي، ردېږي. د send تایید دواړه بڼې چاپوي (1.500000 USDX (1500000 units)). د rand token create --fixed-supply او --initial لا هم مقدار په بشپړو کوچنیو واحدونو کې اخلي، rand bridge-burn هم همداسې کوي، او rand asset-balance کوچني واحدونه چاپوي. په زنځیر کې مقدار تل د کوچني واحد بشپړ عدد دی. بیرغونه او ډیفالټونه په کمانډ لاین کې دي.

له ERC-20 او SPL سره توپیرونه

ERC-20 / SPLRPL
بیلانسونهعامه نقشه یا حسابپټ یادښتونه؛ یوازې د کیلي خاوند یې لیدلی شي
د لېږد پېښېعامه، له لېږونکي، ترلاسه کوونکي او مقدار سرهنشته؛ لېږد هېڅ داسې څه نه خپروي چې د پېژندنې وړ وي
د هر توکن ځانګړی کوډممکن دی: مالیه، د عرضې بیا تنظیم، هوکونه، کنګلولنشته؛ هر توکن د یو شان ثابتو قواعدو تابع دی
د پروګرام له خوا ساتلهوپه 20 زنځیر کې (RPL-2): د پروګرام عامه خزانه، چې د بلنې د سوځولو ساحې یې ډکوي او تادیه یې د زنځیر له خوا محاسبه شوي یادښتونو په بڼه کېږي
مقدارونهتر 256-bit پورې (ERC-20)، 64-bit (SPL)u64، تر ټولو ډېر 9 لسیزې
ترلاسه کولERC-20 هېڅ تنظیم ته اړتیا نه لري؛ SPL یو تړلي توکن حساب ته اړتیا لريتنظیم ته اړتیا نشته؛ هره پټه پته هر څه ترلاسه کولی شي
د لېږد لګښتساده EVM یا SVM اجرالېږونکی یې ثبوت جوړوي: د پټې شتمنۍ ګډ بنډل، او له 17 زنځیر راهیسې ورسره یو کوچنی د اجازې ثبوت
اجازېapprove / transferFromلا نشته
مېټاډېټاپه ځینو پلي کولو کې د بدلون وړپه زنځیر کې ثبتېږي او نه بدلېږي
کنګلول، تور لېستپه ځینو توکنونو کې ممکنپه قصدي ډیزاین له ساحې بهر

پېژندل شوي محدودیتونه

  • اجازې نشته. approve او transferFrom د RPL په مشخصاتو کې د ځانګړو اجازې حسابونو په توګه ډیزاین شوي، خو لا نه دي جوړ شوي.
  • د پروګرام شتمنۍ عامه دي. په 20 زنځیر کې پروګرام کولی شي توکنونه په خپله خزانه کې وساتي او خپل توکن ضرب کړي (RPL-2)، خو د خزانې بیلانس د توکن د عرضې په څېر عامه دی؛ یوازې یادښتونه محرم دي. له 20 مخکې زنځیرونو هېڅ ډول د پروګرام حالت نه درلود.
  • فیسونه یوازې په RAND ورکول کېږي. توکن خپله فیس نشي ورکولی؛ هغه والټ چې یوازې توکن لري، هېڅ لېږد نشي کولی.
  • u64 مقدارونه او تر ټولو ډېر 9 لسیزې. هغه سرچینه سکه چې 18 لسیزې لري، په ټیټ دقت ښودل کېږي؛ پل دا ستونزه په 8 لسیزو او د هرې ملاتړ لپاره د خوشې کولو په یوه واحد حل کوي.
  • د هر لېږد ثبوت جوړېږي. دا د لېږونکي پر ماشین شاوخوا 100 s وخت او څو GB حافظه غواړي؛ د توکن لپاره له RAND څخه ارزانه لاره نشته.
  • کنګلول، تور لېست یا ودرول نشته. دا د اصلي توکن لپاره د پرېکړې له مخې دي. د پل د ضربولو ودرول یوازې پر هغو توکنونو پلي کېږي چې د پل له لارې ضربېږي.
  • د هر توکن لټون علاقه افشا کوي. rand_getToken، rand_getTokenSupply او د سپړونکي /tokens/:id سرور ته ښيي چې د کوم توکن په اړه پوښتنه شوې.

وروستی ځل د 2026-10-12 په نېټه د fullnode د c0878c3f کمېټ (زنځیره 21) پر وړاندې تایید شوی، او fullnode `docs/tokens.md`, `docs/cli.md`, `docs/rpc.md`, `docs/superpowers/specs/2026-09-19-rpl-token-standard-design.md`, and the live registry at `randscan.org/api/v1/tokens` on 2026-09-20; updated for chain 15 against fullnode `8abf85e` (v0.5.9) `docs/tokens.md` §§14–16 and `deploy/genesis-chain15.json`; updated for chain 18 on 2026-09-30 against fullnode `90e7716` (the fleet runs v0.6.7 `86941a1`) `docs/tokens.md`, `docs/cli.md`, `docs/shielded.md` §2, `docs/bridge.md` §13.1, `crates/randprotocol-core/src/gas.rs` and `deploy/genesis-chain18.json`; updated for chain 20 on 2026-10-01 against fullnode v0.6.8 `c9c9bd3c` `docs/bridge.md` §25, `docs/program-state.md`, `crates/randprotocol-core/src/ledger/tokens.rs`, `crates/randprotocol-client/src/wallet.rs` (`rebuilt_notes_with`), the committed `deploy/genesis-chain20.json` and `rand_getLimits` on chain 20. چېرې چې کوډ او دا پاڼه سره توپیر ولري، کوډ سم دی؛ موږ ته خبر راکړئ.