Rand Protocol
دستاویزات
حوالہ

ایکسپلورر API

randscan.org پر RandScan کی REST API اور WebSocket فیڈ کا خلاصہ - ایک شیلڈڈ چین کا ایکسپلورر کیا فراہم کر سکتا ہے، اینڈپوائنٹس، اور درخواستوں کی شرح کی حدود - مکمل رہنما کے لنک کے ساتھ۔

ایکسپلورر کا API استعمال کر کے کسی اسکرپٹ، بوٹ یا بیک اینڈ سے، نوڈ چلائے بغیر، chain 20 کو پڑھیں۔ ہر فیلڈ کے ساتھ مکمل رہنما ایکسپلورر کی ریپوزیٹری میں ہے، randscan.org/docs/api.md؛ یہ صفحہ اس کا خلاصہ ہے۔

بنیادی URLhttps://randscan.org/api/v1
WebSocketwss://randscan.org/ws
گمنامفی IP فی منٹ 60 درخواستیں
API کلید کے ساتھفی منٹ 600 درخواستیں؛ کلیدیں randscan.org/dashboard سے، Authorization: Bearer rsk_… یا X-API-Key کے طور پر بھیجی جاتی ہیں

شیلڈ شدہ چین کا ایکسپلورر کیا دکھا سکتا ہے

اس API میں کہیں بھی اکاؤنٹس، بیلنس، بھیجنے والے یا وصول کنندگان نہیں ہیں، اور chain 14 سے کسی بنڈل پر کوئی عوامی اثاثہ بھی نہیں: RAND کی منتقلی اور کسی بھی RPL ٹوکن کی منتقلی ایک ہی شکل کی ہوتی ہیں۔ یہ جو کچھ فراہم کرتا ہے وہ یہ ہے: ہر بلاک؛ ہر ٹرانزیکشن کا پوشیدہ اثاثے والا بنڈل جیسا شائع ہوا (اینکر، چار نلیفائر، چار کمٹمنٹس، فیس، burn_a، burn_r، burn_asset، وقت، ثبوت اور لفافے کے حجم، اور chain 17 سے auth_commit اور تصدیقی ثبوت کا حجم)؛ ٹرانزیکشن میں شامل عمل اور اس کے عوامی فیلڈز، بشمول کسی RPL ٹوکن کی رجسٹریشن، منٹ اور برن، برج گورننس کے عمل اور کسی RPL-2 invoke کی حالت کی تبدیلی؛ RPL ٹوکن رجسٹری؛ کسی پروگرام کے سیلز اور والٹ؛ کمٹمنٹ ٹری، ایک ایک لیف کر کے؛ نلیفائر سیٹ؛ ویلیڈیٹر رجسٹر؛ سپلائی آڈٹ؛ برج کی عوامی حالت، بشمول اس کا منٹ وقفہ اور PQ نگہبان سیٹ۔ کسی منتقلی نے کون سا اثاثہ منتقل کیا، یہ صرف ویوئنگ کلید یا ٹرانزیکشن کلید کو، براؤزر میں، دکھایا جاتا ہے۔ GET /accounts/:address کا جواب 410 { "error": "no_accounts" } ہوتا ہے۔

روایات: رقوم اکائیوں کی اعشاری سٹرنگز ہوتی ہیں۔ جس رقم کا asset_index RAND (انڈیکس 0) کے علاوہ کسی ٹوکن کی نشاندہی کرے، وہ اسی ٹوکن کی اپنی سب سے چھوٹی اکائی میں ہوتی ہے، RAND کے نو اعشاریوں میں نہیں؛ تقسیم کرنے سے پہلے انڈیکس کو GET /tokens/:id کے ذریعے حل کریں۔ registration_fee اور next_index وہ دو فیلڈز ہیں جو ایکسپلورر سادہ JSON اعداد کے طور پر فراہم کرتا ہے؛ ہیش، پروگرام ids، کمٹمنٹس اور نلیفائرز 64 چھوٹے حروف والے hex حروف ہوتے ہیں؛ ویلیڈیٹر ایڈریسز base58 میں ہوتے ہیں؛ بلندیاں 0 سے شروع ہونے والے اعشاری صحیح اعداد ہیں؛ صرف کمٹ شدہ بلاکس انڈیکس کیے جاتے ہیں، اس لیے API میں موجود بلاک حتمی ہوتا ہے۔ فہرستیں page (1 سے) اور limit (1 سے 100، طے شدہ 20) لیتی ہیں، { "data": [...], "pagination": { page, limit, total, total_pages, has_next, has_prev } } لوٹاتی ہیں، تازہ ترین پہلے۔ غلطیاں { "error", "message", "code" } ہوتی ہیں، ساتھ 400، 404، 410، 429 یا 500۔

اینڈ پوائنٹس

طریقہ اور راستہکیا لوٹاتا ہے
GET /healthایکسپلورر کی حالت اور انڈیکسر کی تاخیر
GET /statschain id، بلندی، ویو، ٹری کا حجم، ویلیڈیٹرز کی تعداد، کل اسٹیک، سپلائی، پروگراموں کی تعداد، اوسط بلاک وقت، ایپوک، جینیسس ہیش اور نوڈ کا بلڈ؛ hc_bundle اور hc_auth؛ limits (جینیسس کی پانچ حدیں، پھر envelope_bytes، hardening_v6، hc_auth، جینیسس کا gas_price اور byte_price، gas_metering، bundle_gas_limit، adjust_bps، اور v0.6.8 سے کسی نوڈ پر program_state)؛ gas_prices، سرے کی موجودہ قیمتیں۔ limits میں v0.6.8 کے دوسرے نئے فیلڈز (binding_domain، proof_window_blocks، قیمت کی بالائی حدیں، admission_by_vote، testnet) شامل نہیں: انہیں نوڈ کے rand_getLimits سے پڑھیں
GET /supplyنوڈ کا سپلائی آڈٹ لفظ بہ لفظ، بشمول چار vesting_* کاؤنٹرز، جو chain 20 پر سب "0" ہیں کیونکہ اس کی جینیسس میں کوئی vesting حصہ نہیں، اور RPL-2 کے program_rand_out اور program_rand_held، یعنی پروگرام والٹس سے ادا کیا گیا RAND اور وہ RAND جو ان کے پاس اب بھی ہے
GET /bridgeبرج کی عوامی حالت: emitter، emitters، guardian_set_index، guardians، pq_guardians، mint_paused، pause_nonce، list_nonce، pause_key، registration_fee، burn_sequence، next_index (chain 14 سے null)، rotation_nonce، rules_v2 (global_minted_in_window اور global_mint_headroom کے ساتھ)، min_inbound_sequence، assets، اور endpoints، یعنی ہر ایمیٹر کی ایکسپلورر کی اپنی پیشکش، جیسے اس کی ماخذ چین اسے لکھتی ہے۔ یہ نوڈ کے v0.6.8 والے fees، rotation_rules یا pending_rotations فراہم نہیں کرتا: انہیں rand_getBridgeState سے پڑھیں
GET /bridge/assetsہر پشت پناہی کے لیے ایک قطار: رجسٹری کی قطار (index، chain، token، asset_id، locked، minted_today، mint_cap_per_day، اور v0.6.8 نوڈ پر minted_in_window، mint_window_secs اور mint_headroom، یعنی وہ سب سے بڑا ڈپازٹ جس کی حدیں اس وقت اجازت دیتی ہیں) جس کے ساتھ symbol، name، decimals اور backings جوڑے گئے ہیں، اور انڈیکس شدہ میزان۔ فی پشت پناہی: burns، burned، outstanding (رجسٹری کا locked)، اور deposits/deposited صرف اس صورت میں جب ٹوکن کی ایک ہی پشت پناہی ہو (ورنہ null: ڈپازٹ اس ٹوکن کا نام لیتا ہے جو اس نے منٹ کیا، اس سکے کا نہیں جو اس کے لیے لاک کیا گیا)۔ فی ٹوکن، ایک ہی index والی ہر قطار پر یکساں: token_deposits، token_deposited، token_burns، token_burned، first_height، last_height؛ میزان نکالتے وقت ہر index کو ایک بار شمار کریں
GET /bridge/tokensٹوکنوں کی اجازت فہرست، ایک جامد فہرست: Ethereum، BSC، Tron اور Solana پر USDT اور USDC، جبکہ Tron پر USDC بند ہے
GET /tokensپوری RPL ٹوکن رجسٹری جیسی نوڈ سے کیش کی گئی: enabled، registration_fee، next_index، tokens
GET /tokens/:idرجسٹری انڈیکس، 64-hex id یا rpl1… متنی شکل سے ایک ٹوکن، ساتھ deploy_tx اور supply_history؛ کوئی مطابقت نہ ہو تو 404
GET /nodesایکسپلورر کا نوڈ اور اس کے ہم سر، جغرافیائی مقام کے ساتھ
GET /proversوہ تفویض شدہ پروورز جن سے ایکسپلورر واقف ہے (اس کی اپنی فہرست؛ چین ان کا کوئی ریکارڈ نہیں رکھتی): آیا ہر ایک اپنے prover_info کا جواب دیتا ہے، اس کی گنجائش اور فیس، اور اس کے ہوسٹس کہاں ہیں
GET /blocks?page&limit&proposer، GET /blocks/latest?limit، GET /blocks/:idبلاکس، بلندی یا ہیش کے لحاظ سے
GET /transactions?page&limit&kind&height&validator&program، GET /transactions/latest، GET /transactions/:hashٹرانزیکشنز؛ kind یہ ہو سکتا ہے: transfer، mint، deploy، call، bond، unbond، withdraw، bridge_attest، bridge_burn، register_token، token_mint، set_authority، token_burn، pause_mints، unpause_mints، register_bridged_token، list_backing، invoke۔ کوئی token_transfer نہیں: کسی بھی RPL ٹوکن کی منتقلی transfer ہے
GET /transactions/:hash/envelopesکسی ٹرانزیکشن کے بنائے ہوئے نوٹس ان کے لفافوں سمیت: بنڈل کے چار خانے، فرضی نوٹس سمیت، اور وہ چین کے حساب کردہ نوٹس جو کوئی bridge_attest ڈپازٹ، کوئی token_mint، کسی register_token کا ابتدائی منٹ یا کسی invoke کی ادائیگیاں شامل کرتی ہیں؛ کال کے لیے h_in اور مہر بند ان پٹ ٹرانسکرپٹ
GET /envelopes?from_leaf&limitلفافوں والے لیفز، پرانے پہلے، فی صفحہ 1,000 تک، تاریخی اسکین کے لیے
GET /notes?page&limit، GET /notes/:idٹری کے لیفز، کمٹمنٹ یا لیف انڈیکس کے لحاظ سے
GET /nullifiers/:nfوہ ٹرانزیکشن جس نے کوئی نلیفائر شائع کیا
GET /validators، GET /validators/:addressرجسٹر، share_percent، blocks_proposed اور آخری تجویز کردہ بلندی کے ساتھ
GET /programs?page&limit، GET /programs/:idڈیپلائے شدہ پروگرام (base_pc، words_len، code_hash، public_words_len، public_digest) کال اور invoke کی تعداد کے ساتھ؛ کسی پروگرام کی حالیہ کالز اور invokes، اور اس کا program_state، جو نوڈ سے براہِ راست پڑھا جاتا ہے: vault (فی اثاثہ)، کلید کی ترتیب میں پہلے 100 cells، اور cells_next
GET /programs/:id/cells?after&limitکلید کی ترتیب میں پروگرام کے سیلز کا ایک صفحہ، نوڈ سے براہِ راست (limit 1 سے 1,000، طے شدہ 100): { "cells", "next" }؛ ایسی چین پر 404 جس میں program_state حصہ نہ ہو
GET /search?q=بلاکس، ٹرانزیکشنز، پروگرام، نوٹس، نلیفائرز اور ویلیڈیٹرز
curl -s https://randscan.org/api/v1/stats
curl -s https://randscan.org/api/v1/tokens/1
curl -s https://randscan.org/api/v1/transactions/8aa13d1f76d28f63a46c30bb09ef44b1ba35083ca80ba7301997f98e5f783666

ایک ٹرانزیکشن کا خلاصہ (chain 18 کی بلندی 102,197 پر 10 RAND کا فاسیٹ mint):

{
  "hash": "a20b…feb5", "height": 102197, "block_hash": "f362…a06f", "tx_index": 0,
  "kind": "mint", "fee": "0", "timestamp_ms": 1790777106034,
  "has_bundle": false, "program": null, "validator": "EdrEC2QRQrQF64iRXxF9927jNj6RidiHHByzx5xD6F1e",
  "amount": "10000000000", "asset_index": null
}

amount صرف ان اقسام کے لیے بھرا جاتا ہے جن کی رقم عوامی ہو — mint، bond، unbond، withdraw، bridge_attest، bridge_burn، token_mint، token_burn، اور ابتدائی منٹ والا register_token — اور منتقلی کے لیے null ہوتا ہے، جس کا asset_index بھی ہمیشہ null ہوتا ہے۔ has_bundle کی قدر mint، unbond، withdraw، pause_mints اور unpause_mints کے لیے false ہوتی ہے، جن میں کوئی بنڈل نہیں ہوتا اور جو کوئی فیس ادا نہیں کرتے۔ تفصیل میں chain_id، bundle شامل ہوتے ہیں، اور فی قسم: ڈیپلائے کا words_len؛ کال کا call_proof_len، input_envelope_len اور receipt (tx، program، tier، outputs، height، index، h_in، h_pub)؛ بانڈ کا registered؛ اَن بانڈ یا وِدڈرا کا action_nonce؛ برج تصدیق کے attestation_len، recipient، note_time، deposit_r، commitment، pq_signers؛ برج برن کے relayer_fee، to_chain، bridge_to، bridge_token؛ کسی RPL عمل کا token_action (عمل کے اپنے فیلڈز، kind سے نشان زد)، منٹ شدہ نوٹ کے لیے recipient، note_time، deposit_r کے ساتھ اور token_mint یا set_authority کے لیے action_nonce کے ساتھ؛ برج گورننس کے عمل کا bridge_governance، pause_mints کے سوا سب پر pq_signers کے ساتھ؛ کسی invoke کے call_proof_len، input_envelope_len، receipt اور transition (نوڈ کی پیشکش: پڑھے اور لکھے گئے سیلز، inflow، اور ہر pays اور mints نوٹ اپنے recipient، time، r اور cm کے ساتھ)۔ v0.6.8 کی کوئی قسم جس سے ایکسپلورر کا یہ بلڈ واقف نہیں (admit_validator، slash_equivocation، _v2 روٹیشنز، cancel_rotation) other ہوتی ہے۔

chain 20 پر، برج فیسوں کے ساتھ، کسی bridge_attest اور کسی bridge_burn کا amount مجموعی رقم ہے: وہ رقم جس پر نگہبانوں نے دستخط کیے، یا وہ رقم جو بنڈل نے برن کی۔ ایکسپلورر خالص ڈپازٹ، جاری کردہ رقم یا فیس نوٹ فراہم نہیں کرتا؛ انہیں نوڈ کے rand_getTransaction (deposit_amount، release_amount، fee_note) اور rand_getBridgeBurn سے پڑھیں۔ بلندی 2,899 پر 0.999 zUSD کا برن یہاں "amount": "99900000" دکھاتا ہے؛ نگہبانوں نے 99800100 کے اجرا پر دستخط کیے۔

ٹرانزیکشن کی تفصیل میں بنڈل پوشیدہ اثاثے والا بنڈل ہے، جس میں نہ کوئی اثاثہ فیلڈ ہے اور نہ برن پر کوئی دوسرا بنڈل۔ اس بنڈل نے اوپر کی curl مثال والی کال کی ادائیگی کی، chain 18 کی بلندی 98,335 پر؛ وہ ٹرانزیکشن chain 20 پر موجود نہیں، جہاں تیسرا curl 404 جواب دیتا ہے:

"bundle": {
  "anchor": "b814…b1ed",
  "nullifiers": ["49d4…a766", "3363…61ea", "aac0…fcfc", "546c…3efd"],
  "commitments": ["b52b…4f7b", "9ddd…0448", "5fa7…1630", "2827…8343"],
  "fee": "6191437", "burn_a": "0", "burn_r": "0", "burn_asset": 0, "time": 98185,
  "proof_len": 1504260, "envelope_len": [1860, 1860, 1860, 1860],
  "auth_commit": "0bda…6512", "auth_proof_len": 1367303
}

auth_commit اور auth_proof_len منقسم اجازت ہیں (chain 17 اور بعد کی چینز، جہاں limits.hc_auth مقرر ہو): بنڈل کا ثبوت ویوئنگ کلید سے بنایا جاتا ہے اور auth_commit شائع کرتا ہے، اور خرچ کلید پر ایک دوسرا، چھوٹا ثبوت، جو اسی ٹرانزیکشن سے بندھا ہو، اس سے مطابقت رکھنا ضروری ہے۔ دونوں ثبوتوں کی اطلاع صرف لمبائی سے دی جاتی ہے۔ chain 20 پر ہر لفافہ 1,860 بائٹ (limits.envelope_bytes) کا ہوتا ہے اور ایک خفیہ کردہ میمو رکھتا ہے؛ chain 17 تک کی چینز 1,348 بائٹ مہر بند کرتی تھیں۔ کسی کال کی اعلان کردہ گیس حد اس کے ثبوت کی ایک عوامی قدر ہے، رسید کا فیلڈ نہیں، اس لیے ایکسپلورر اسے فی ٹرانزیکشن نہیں دکھاتا؛ اس کی ادا کردہ فیس fee میں ہے۔

burn_a وہ نجی اثاثہ ہے جو جلایا گیا۔ یہ صرف token_burn، bridge_burn، یا کسی ٹوکن کو جمع کرنے یا جلانے والے invoke پر غیر صفر ہوتا ہے، اور burn_asset اس کا رجسٹری اشاریہ بتاتا ہے۔ burn_r جلایا گیا RAND ہے۔ یہ صرف bond پر، یا اس invoke پر غیر صفر ہوتا ہے جو RAND کو پروگرام کے خزانے میں جمع کرتا ہے۔

چین 20 پر zUSD (“Shielded USD”، آٹھ اعشاری مقامات) اشاریہ 1 پر ہے۔ یہ اپنی ساتوں پشت پناہیوں کے ساتھ جینیسس میں درج ہے (registered_at 0 ہے، اس لیے deploy_tx null ہے) اور چین 14 سے اسی اثاثہ شناخت کے تحت منتقل ہوا ہے۔ اس لیے GET /bridge/assets اشاریہ 1 کے تحت سات قطاریں لوٹاتا ہے۔ چین 20 پر اس کے پہلے دن پانچ مزید ٹوکن اشاریہ 2 تا 6 پر رجسٹر ہوئے، جن میں سے تین کا منٹ اختیار ایک پروگرام کے پاس ہے۔ GET /tokens ان کی فہرست دیتا ہے۔ چین 20 پر GET /bridge درج ذیل اقدار کے ساتھ rules_v2 رپورٹ کرتا ہے: ہر 86,400 سیکنڈ کے دورانیے میں 4,000 zUSD ("400000000000") کی مجموعی منٹ حد، rotation_nonce 0، جینیسس پر burn_sequence 13، اور min_inbound_sequence جو ماخذ چین 2، 3 اور 4 کے لیے 3 اور ماخذ چین 5 کے لیے 7 ہے (چین 19 پر 1 اور 4 تھا)۔ یہ جینیسس کی ری پلے حد ہے، یعنی کم سے کم لاک ترتیب نمبر جو کسی ماخذ چین کے تصدیق نامے میں ہونا چاہیے تاکہ وہ یہاں منٹ ہو سکے۔ چین 14 پر یہ بلندی 256 پر ایک register_bridged_token کے ذریعے رجسٹر ہوا تھا، اور باقی چھ پشت پناہیاں list_backing ٹرانزیکشنز کے ذریعے شامل کی گئی تھیں۔

براؤزر میں لفافے کھولنا

لفافہ عوامی چین ڈیٹا ہے، اور ایکسپلورر کے پاس کوئی کلید نہیں ہوتی۔ اس کا ٹرانزیکشن صفحہ اور History صفحہ لفافوں کو براؤزر میں کھولتے ہیں، نوڈ کے اپنے کوڈ (crates/randscan-viewing) کے WebAssembly بِلڈ کے ذریعے۔ آپ ان میں سے کوئی ایک کلید چسپاں کر سکتے ہیں:

  • مشاہداتی کلید (nk، 64 ہیکس): اس فریق کا بھیجا یا وصول کیا ہوا ہر نوٹ دکھاتی ہے۔
  • ٹرانزیکشن کلید: ایک ادائیگی کھولتی ہے۔
  • کال کلید: ایک کال کے ان پٹ کھولتی ہے۔
  • والٹ کلید فائل: اس میں سے صرف اخذ شدہ مشاہداتی کلید رکھی جاتی ہے۔

کھولے گئے نوٹ کی تصدیق اس کی کمٹمنٹ دوبارہ شمار کر کے کی جاتی ہے۔ اس کا ظاہر کردہ asset ٹوکن رجسٹری کا اشاریہ ہے، جسے علامت اور اعشاری مقامات کے لیے GET /tokens کے ذریعے حل کیا جاتا ہے۔ کسی منتقلی میں صرف یہی وہ جگہ ہے جہاں رقم کسی اثاثے سے جڑتی ہے۔ فرضی سلاٹ کسی بھی کلید سے نہیں کھلتا اور ایسا ہی دکھائی دیتا ہے جیسے کوئی نوٹ جو آپ کا نہیں۔ کلید سے متعلق کوئی چیز نیٹ ورک پر نہیں جاتی۔ یہی ٹول خود بنانے کے لیے /envelopes اور /transactions/:hash/envelopes حاصل کریں اور یہ crate استعمال کریں۔

WebSocket فیڈ

wss://randscan.org/ws سے جڑیں اور blocks، transactions یا stats کو سبسکرائب کریں:

{ "type": "subscribe", "channel": "blocks" }
{ "type": "new_block", "block": { … BlockSummary … } }
{ "type": "new_transaction", "transaction": { … TransactionSummary … } }
{ "type": "stats_update", "stats": { … } }

پراکسیز سے گزرتے وقت ہر 30 سیکنڈ بعد { "type": "ping" } بھیجیں۔ فیڈ پچھلے پیغامات دوبارہ نہیں بھیجتی: کنکشن ٹوٹنے پر دوبارہ جڑیں اور چھوٹا ہوا ڈیٹا GET /transactions?height= سے پورا کریں۔

اپنا ایکسپلورر خود چلانا

یہاں کی ہر چیز randprotocol/randscan.org میں موجود اوپن سورس ایکسپلورر فراہم کرتا ہے۔ انڈیکسر کو صرف کسی نوڈ کے rand_* JSON-RPC اور ایک PostgreSQL ڈیٹا بیس کی ضرورت ہوتی ہے۔

آخری بار 2026-10-12 کو fullnode کمٹ c0878c3f (چین 21)، اور randscan commit fffa404 (docs/api.md), the live API at randscan.org, 2026-09-20, the live API at randscan.org on chain 18, 2026-09-30, the live API at randscan.org on chain 19, 2026-10-01, randscan commit 4390731 (docs/api.md: RPL-2, BRG-19 and `/provers`) and the live API at randscan.org on chain 20, 2026-10-01; `/stats` on chain 21, 2026-10-12 کے مقابل تصدیق کی گئی۔ جہاں کوڈ اور یہ صفحہ ایک دوسرے سے مختلف ہوں، وہاں کوڈ درست ہے؛ ہمیں مطلع کریں۔