د explorer API وکاروئ ترڅو زنځیر 20 له یوه سکرېپټ، بوټ یا بکاېنډ څخه ولولئ، پرته له دې چې نوډ وچلوئ. بشپړ لارښود د ټولو فیلډونو سره د explorer په ریپازیټوري کې دی، randscan.org/docs/api.md؛ دا پاڼه یې لنډیز دی.
| بنسټیز URL | https://randscan.org/api/v1 |
| WebSocket | wss://randscan.org/ws |
| بېنومه | په هره دقیقه کې 60 غوښتنې د هر IP لپاره |
| د API کیلي سره | په هره دقیقه کې 600 غوښتنې؛ کیلي له randscan.org/dashboard څخه، د Authorization: Bearer rsk_… یا X-API-Key په توګه لېږل کېږي |
د یوه پټ زنځیر explorer څه ښودلی شي
په دې API کې هېڅ ځای حسابونه، بیلانسونه، لېږونکي یا ترلاسه کوونکي نشته، او له زنځیر 14 راهیسې په بنډل کې عامه شتمني هم نشته: د RAND لېږد او د هر RPL ټوکن لېږد یو شان بڼه لري. هغه څه چې وړاندې کوي دا دي: هر بلاک؛ د هرې راکړې ورکړې د پټې شتمنۍ بنډل لکه څنګه چې خپور شوی (anchor، څلور nullifierونه، څلور commitmentونه، فیس، burn_a، burn_r، burn_asset، وخت، د ثبوت او لفافې اندازې، او له زنځیر 17 راهیسې auth_commit او د اجازې ثبوت اندازه)؛ هغه عمل چې راکړې ورکړې لېږدولی و او د هغه عامه فیلډونه، په شمول د RPL ټوکن ثبت، مینټونه او سوځونې، د پل د ادارې عملونه او د RPL-2 invoke د حالت بدلون؛ د RPL ټوکنونو راجستر؛ د یوه پروګرام سیلونه او خزانه؛ د commitment ونه پاڼه په پاڼه؛ د nullifierونو ټولګه؛ د تاییدوونکو راجستر؛ د عرضې پلټنه؛ د پل عامه حالت، په شمول د هغه د مینټ درول او د PQ ساتونکو ټولګه. دا چې یو لېږد کومه شتمني لېږدولې، یوازې د لیدلو کیلي یا د راکړې ورکړې کیلي ته، په براوزر کې، ښودل کېږي. GET /accounts/:address په 410 { "error": "no_accounts" } ځواب ورکوي.
دودونه: مقدارونه د واحدونو لسیز سټرینګونه دي. هغه مقدار چې asset_index یې له RAND (شاخص 0) پرته بل ټوکن په ګوته کوي، د هماغه ټوکن په خپل تر ټولو کوچني واحد کې دی، نه د RAND په نهو لسیزو کې؛ له وېشلو مخکې شاخص د GET /tokens/:id له لارې معلوم کړئ. registration_fee او next_index هغه دوه فیلډونه دي چې explorer یې د ساده JSON شمېرو په توګه وړاندې کوي؛ هشونه، د پروګرام idګانې، commitmentونه او nullifierونه 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 | د explorer حالت او د indexer ځنډ |
GET /stats | د زنځیر id، لوړوالی، view، د ونې اندازه، د تاییدوونکو شمېر، ټوله ونډه، عرضه، د پروګرامونو شمېر، د بلاک منځنی وخت، epoch، د پیدایښت هش او د نوډ build؛ 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_* شمېرونکو، چې په زنځیر 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 (له زنځیر 14 راهیسې null)، rotation_nonce، rules_v2 (د global_minted_in_window او global_mint_headroom سره)، min_inbound_sequence، assets، او endpoints، د هر emitter د explorer خپله وړاندې کونه هغسې چې د هغه سرچینه زنځیر یې چاپوي. دا د نوډ د 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 | د ټوکنونو اجازه لېست، یو ثابت لېست: USDT او USDC په Ethereum، BSC، Tron او Solana کې، چې په 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 | د explorer نوډ او د هغه ملګري، د جغرافیایي موقعیت سره |
GET /provers | هغه سپارل شوي ثبوت جوړوونکي چې explorer یې پېژني (د هغه خپل لېست؛ زنځیر یې هېڅ ریکارډ نه ساتي): ایا هر یو خپل 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 تادیات یې ورزیاتوي؛ د call لپاره، h_in او د ننوتو مهر شوی ټرانسکرېپټ |
GET /envelopes?from_leaf&limit | د لفافو لرونکې پاڼې، زړې لومړی، په هره پاڼه کې تر 1,000 پورې، د تاریخ د سکن لپاره |
GET /notes?page&limit، GET /notes/:id | د ونې پاڼې، د commitment یا د پاڼې د شاخص له مخې |
GET /nullifiers/:nf | هغه راکړه ورکړه چې یو nullifier یې خپور کړی |
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) د call او invoke د شمېر سره؛ د یوه پروګرام وروستي callونه او invokeونه، او د هغه program_state، چې له نوډ څخه ژوندی لوستل کېږي: vault (د هرې شتمنۍ لپاره)، د کیلي په ترتیب لومړي 100 cells، او cells_next |
GET /programs/:id/cells?after&limit | د پروګرام د سیلونو یوه پاڼه د کیلي په ترتیب، له نوډ څخه ژوندۍ (limit له 1 تر 1,000، ډیفالټ 100): { "cells", "next" }؛ په هغه زنځیر کې چې د program_state برخه نه لري 404 |
GET /search?q= | بلاکونه، راکړې ورکړې، پروګرامونه، نوټونه، nullifierونه او تاییدوونکي |
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
د یوې راکړې ورکړې لنډیز (د 10 RAND د فاسیټ mint د زنځیر 18 په 102,197 لوړوالي کې):
{
"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 ورزیاتوي، او د هر ډول لپاره: د deploy words_len؛ د call call_proof_len، input_envelope_len او receipt (tx، program، tier، outputs، height، index، h_in، h_pub)؛ د bond registered؛ د unbond یا withdraw 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 هغه ډول چې دا explorer build یې نه پېژني (admit_validator، slash_equivocation، د _v2 بدلونونه، cancel_rotation) other دی.
په زنځیر 20 کې، د پل د فیسونو سره، د bridge_attest او bridge_burn amount ناخالص مقدار دی: هغه مقدار چې ساتونکو لاسلیک کړی، یا هغه مقدار چې بنډل سوځولی. explorer خالصه زېرمه، خوشې شوی مقدار یا د فیس نوټ نه وړاندې کوي؛ هغه د نوډ له rand_getTransaction (deposit_amount، release_amount، fee_note) او rand_getBridgeBurn څخه ولولئ. په 2,899 لوړوالي کې د 0.999 zUSD سوځونه دلته "amount": "99900000" ښيي؛ ساتونکو د 99800100 د خوشې کولو لاسلیک کړی.
د راکړې ورکړې په تفصیل کې بنډل د پټې شتمنۍ بنډل دی، چې د شتمنۍ فیلډ نه لري او په سوځونه کې دویم بنډل نه لري. دې بنډل د پورته curl بېلګې د call فیس ورکړی، د زنځیر 18 په 98,335 لوړوالي کې؛ هغه راکړه ورکړه په زنځیر 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 وېشلې اجازه ده (زنځیر 17 او وروسته، چېرې چې limits.hc_auth ټاکل شوی): د بنډل ثبوت د لیدلو له کیلي څخه جوړېږي او auth_commit خپروي، او دویم، کوچنی ثبوت د لګښت پر کیلي، چې له ورته راکړې ورکړې سره تړل شوی، باید ورسره برابر وي. دواړه ثبوتونه یوازې د اوږدوالي له مخې راپور کېږي. په زنځیر 20 کې هره لفافه 1,860 بایټه ده (limits.envelope_bytes) او یو کوډ شوی یادښت لېږدوي؛ تر 17 پورې زنځیرونو 1,348 بایټه مهر کول. د call اعلان شوی ګاز حد د هغه د ثبوت عامه ارزښت دی، نه د رسید فیلډ، نو explorer یې د هرې راکړې ورکړې لپاره نه ښيي؛ هغه فیس چې ورکړی یې دی په fee کې دی.
burn_a هغه خصوصي شتمني ده چې سوځول کېږي. دا یوازې په token_burn، bridge_burn یا هغه invoke کې له صفر پرته وي چې یو ټوکن زېرمه کوي یا یې سوځوي، او burn_asset د راجستر شاخص ښيي. burn_r هغه RAND دی چې سوځول کېږي، او یوازې په bond یا هغه invoke کې له صفر پرته وي چې RAND د پروګرام په زېرمتون (vault) کې زېرمه کوي.
په chain 20 کې zUSD (“Shielded USD”، اته اعشاریه) په شاخص 1 کې دی. په genesis کې د خپلو ټولو اوو ملاتړونو سره ثبت شوی (registered_at 0 دی، نو deploy_tx null دی)، او له chain 14 څخه د همغه asset id لاندې راوړل شوی. له همدې امله GET /bridge/assets د شاخص 1 لاندې اووه قطارونه راګرځوي. په chain 20 کې د هغه په لومړۍ ورځ پنځه نور ټوکنونه په 2 تر 6 شاخصونو کې ثبت شول، او په درېیو کې یې یو پروګرام د mint واک لري. GET /tokens یې لېست کوي. په chain 20 کې GET /bridge دا څه راپور کوي: rules_v2، چې د هرې 86,400 ثانیهيي کړکۍ لپاره د 4,000 zUSD ("400000000000") نړیوال mint حد ټاکي؛ rotation_nonce 0؛ په genesis کې burn_sequence 13؛ او min_inbound_sequence، چې د 2، 3 او 4 سرچینه chainونو لپاره 3 او د 5 سرچینه chain لپاره 7 دی (په chain 19 کې 1 او 4). دا د genesis د بیا لوبولو (replay) لاندینی حد دی، یعنې هغه ټیټه lock ترتیب شمېره چې د یوې سرچینه chain تصدیق باید ولري څو دلته mint شي. په chain 14 کې دا په 256 لوړوالي کې د یو register_bridged_token له لارې ثبت شو، او نور شپږ ملاتړونه د list_backing راکړو ورکړو له لارې ورزیات شول.
په براوزر کې د لفافو پرانیستل
لفافه عامه chain معلومات دي، او explorer هېڅ کیلي نه ساتي. د راکړې ورکړې پاڼه او د History پاڼه لفافې په براوزر کې د node د خپل کوډ (crates/randscan-viewing) د WebAssembly جوړښت له لارې پرانیزي. که د لیدو کیلي (nk، 64 hex) ورکړئ، هر هغه نوټ ښکاري چې هغه لوري لېږلی یا ترلاسه کړی دی. د راکړې ورکړې کیلي یوه تادیه پرانیزي، د call کیلي د یو call ننوتې پرانیزي، او د والټ د کیلي فایل څخه یوازې ترې استخراج شوې د لیدو کیلي ساتل کېږي. پرانیستل شوی نوټ د هغه د commitment په بیا محاسبه کولو تاییدېږي. د هغه افشا شوی asset د ټوکن د راجستر شاخص دی، چې سمبول او اعشاریه یې د GET /tokens له لارې معلومېږي. د لېږد لپاره یوازې همدا ځای دی چې مقدار له یوې شتمنۍ سره تړل کېږي. ډمي ځای (dummy slot) د هېڅ کیلي لپاره نه پرانیستل کېږي، او هغسې ښکاري لکه هغه نوټ چې ستاسو نه وي. د کیلي په اړه هېڅ شی شبکې ته نه ځي. د همدې وسیلې جوړولو لپاره /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": { … } }
د proxyګانو له لارې هرو 30 ثانیو کې { "type": "ping" } ولېږئ. فیډ بیا لوبول (replay) نه لري. که اړیکه پرې شي، بیا وصل شئ او تشه د GET /transactions?height= له لارې ډکه کړئ.
خپل explorer چلول
دلته هر څه د randprotocol/randscan.org په پرانیستې سرچینې explorer کې وړاندې کېږي. indexer یوازې د یو node rand_* JSON-RPC او یو PostgreSQL ډیټابېس ته اړتیا لري.