Gunakan API explorer untuk membaca chain 20 daripada skrip, bot atau backend tanpa menjalankan node. Panduan lengkap dengan setiap medan terdapat dalam repositori explorer, randscan.org/docs/api.md; halaman ini ialah ringkasannya.
| URL asas | https://randscan.org/api/v1 |
| WebSocket | wss://randscan.org/ws |
| tanpa nama | 60 permintaan seminit bagi setiap IP |
| dengan kunci API | 600 permintaan seminit; kunci diperoleh daripada randscan.org/dashboard, dihantar sebagai Authorization: Bearer rsk_… atau X-API-Key |
Apa yang boleh dipaparkan oleh explorer bagi rantaian shielded
Tiada akaun, baki, penghantar atau penerima di mana-mana dalam API ini, dan sejak chain 14 tiada aset awam pada sesuatu bundle: pemindahan RAND dan pemindahan sebarang token RPL mempunyai bentuk yang sama. Apa yang disediakannya ialah setiap blok; bundle aset tersembunyi bagi setiap transaksi seperti yang diterbitkan (anchor, empat nullifier, empat commitment, fi, burn_a, burn_r, burn_asset, masa, saiz bukti dan sampul, dan sejak chain 17 auth_commit serta saiz bukti auth); tindakan yang dibawa oleh sesuatu transaksi beserta medan awamnya, termasuk pendaftaran, pencetakan dan pembakaran token RPL, tindakan tadbir urus jambatan dan peralihan keadaan invoke RPL-2; daftar token RPL; sel dan peti besi sesuatu program; pokok commitment daun demi daun; set nullifier; daftar validator; audit bekalan; keadaan awam jambatan, termasuk jeda pencetakan dan set penjaga PQnya. Aset yang dipindahkan oleh sesuatu pemindahan hanya ditunjukkan kepada kunci pemantauan atau kunci transaksi, dalam pelayar. GET /accounts/:address menjawab 410 { "error": "no_accounts" }.
Konvensyen: jumlah ialah rentetan perpuluhan bagi unit. Jumlah yang asset_indexnya merujuk token selain RAND (indeks 0) adalah dalam unit terkecil token itu sendiri, bukan sembilan tempat perpuluhan RAND; selesaikan indeks itu melalui GET /tokens/:id sebelum membahagi. registration_fee dan next_index ialah dua medan yang disediakan explorer sebagai nombor JSON biasa; hash, id program, commitment dan nullifier ialah 64 aksara heksa huruf kecil; alamat validator ialah base58; ketinggian ialah integer perpuluhan bermula dari 0; hanya blok yang telah dikomit diindeks, jadi blok dalam API adalah muktamad. Senarai menerima page (bermula dari 1) dan limit (1 hingga 100, lalai 20), memulangkan { "data": [...], "pagination": { page, limit, total, total_pages, has_next, has_prev } }, yang terbaharu dahulu. Ralat berbentuk { "error", "message", "code" } dengan 400, 404, 410, 429 atau 500.
Titik akhir
| kaedah dan laluan | pulangan |
|---|---|
GET /health | status explorer dan kelewatan pengindeks |
GET /stats | id chain, ketinggian, view, saiz pokok, bilangan validator, jumlah stake, bekalan, bilangan program, purata masa blok, epoch, hash genesis dan binaan node; hc_bundle dan hc_auth; limits (lima had genesis, kemudian envelope_bytes, hardening_v6, hc_auth, gas_price dan byte_price genesis, gas_metering, bundle_gas_limit, adjust_bps, dan program_state pada node sejak v0.6.8); gas_prices, harga semasa pada hujung rantaian. limits tidak membawa medan baharu v0.6.8 yang lain (binding_domain, proof_window_blocks, siling harga, admission_by_vote, testnet): bacalah daripada rand_getLimits node |
GET /supply | audit bekalan node secara verbatim, termasuk empat pembilang vesting_*, semuanya "0" pada chain 20, yang genesisnya tidak mempunyai bahagian vesting, serta program_rand_out dan program_rand_held RPL-2, iaitu RAND yang dibayar keluar daripada peti besi program dan RAND yang masih dipegangnya |
GET /bridge | keadaan awam jambatan: emitter, emitters, guardian_set_index, guardians, pq_guardians, mint_paused, pause_nonce, list_nonce, pause_key, registration_fee, burn_sequence, next_index (null sejak chain 14), rotation_nonce, rules_v2 (dengan global_minted_in_window dan global_mint_headroom), min_inbound_sequence, assets, dan endpoints, paparan explorer sendiri bagi setiap emitter seperti yang dicetak oleh rantaian sumbernya. Ia tidak menyediakan fees, rotation_rules atau pending_rotations v0.6.8 pada node: bacalah daripada rand_getBridgeState |
GET /bridge/assets | satu baris bagi setiap sandaran: baris daftar (index, chain, token, asset_id, locked, minted_today, mint_cap_per_day, dan pada node v0.6.8 minted_in_window, mint_window_secs dan mint_headroom, deposit terbesar yang dibenarkan oleh had semasa) digabungkan dengan symbol, name, decimals dan backings, serta jumlah terindeks. Bagi setiap sandaran: burns, burned, outstanding (locked daftar), dan deposits/deposited hanya apabila token mempunyai satu sandaran (null jika tidak: sesuatu deposit menamakan token yang dicetaknya, bukan syiling yang dikunci untuknya). Bagi setiap token, sama pada setiap baris dengan index yang sama: token_deposits, token_deposited, token_burns, token_burned, first_height, last_height; kira setiap index sekali sahaja apabila menjumlahkan |
GET /bridge/tokens | senarai dibenarkan token, senarai statik: USDT dan USDC pada Ethereum, BSC, Tron dan Solana, dengan USDC pada Tron telah dihentikan |
GET /tokens | seluruh daftar token RPL seperti yang dicache daripada node: enabled, registration_fee, next_index, tokens |
GET /tokens/:id | satu token mengikut indeks daftar, id 64-heksa atau bentuk teks rpl1…, serta deploy_tx dan supply_history; 404 apabila tiada yang sepadan |
GET /nodes | node explorer dan rakan-rakannya, dengan geolokasi |
GET /provers | prover yang diwakilkan yang diketahui explorer (senarainya sendiri; rantaian tidak menyimpan rekod tentangnya): sama ada setiap satu menjawab prover_infonya, kapasiti dan failah, serta lokasi hostnya |
GET /blocks?page&limit&proposer, GET /blocks/latest?limit, GET /blocks/:id | blok, mengikut ketinggian atau hash |
GET /transactions?page&limit&kind&height&validator&program, GET /transactions/latest, GET /transactions/:hash | transaksi; kind ialah 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. Tiada token_transfer: pemindahan sebarang token RPL ialah transfer |
GET /transactions/:hash/envelopes | note yang dicipta oleh sesuatu transaksi beserta sampulnya: empat slot bundle, termasuk dummy, serta note yang dikira rantaian yang ditambah oleh deposit bridge_attest, token_mint, pencetakan awal register_token atau bayaran keluar invoke; bagi call, h_in dan transkrip input yang dimeterai |
GET /envelopes?from_leaf&limit | daun beserta sampul, yang paling lama dahulu, sehingga 1,000 sehalaman, untuk imbasan sejarah |
GET /notes?page&limit, GET /notes/:id | daun pokok, mengikut commitment atau indeks daun |
GET /nullifiers/:nf | transaksi yang menerbitkan sesuatu nullifier |
GET /validators, GET /validators/:address | daftar, dengan share_percent, blocks_proposed, ketinggian terakhir yang dicadangkan |
GET /programs?page&limit, GET /programs/:id | program yang digunakan (base_pc, words_len, code_hash, public_words_len, public_digest) dengan bilangan call dan invoke; call dan invoke terkini sesuatu program, serta program_statenya, dibaca secara langsung daripada node: vault (bagi setiap aset), 100 cells pertama mengikut tertib kunci, dan cells_next |
GET /programs/:id/cells?after&limit | satu halaman sel program mengikut tertib kunci, secara langsung daripada node (limit 1 hingga 1,000, lalai 100): { "cells", "next" }; 404 pada rantaian tanpa bahagian program_state |
GET /search?q= | blok, transaksi, program, note, nullifier dan validator |
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
Ringkasan transaksi (mint faucet sebanyak 10 RAND pada ketinggian 102,197 chain 18):
{
"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 hanya diisi bagi jenis yang mempunyai jumlah awam — mint, bond, unbond, withdraw, bridge_attest, bridge_burn, token_mint, token_burn, dan register_token dengan pencetakan awal — dan ialah null bagi pemindahan, yang asset_indexnya juga sentiasa null. has_bundle bernilai false bagi mint, unbond, withdraw, pause_mints dan unpause_mints, yang tidak membawa bundle dan tidak membayar fi. Butiran menambah chain_id, bundle, dan bagi setiap jenis: words_len deploy; call_proof_len, input_envelope_len dan receipt call (tx, program, tier, outputs, height, index, h_in, h_pub); registered bagi bond; action_nonce bagi unbond atau withdraw; attestation_len, recipient, note_time, deposit_r, commitment, pq_signers bagi attestation jambatan; relayer_fee, to_chain, bridge_to, bridge_token bagi pembakaran jambatan; token_action bagi tindakan RPL (medan tindakan itu sendiri, ditanda mengikut kind), dengan recipient, note_time, deposit_r bagi note yang dicetak dan action_nonce bagi token_mint atau set_authority; bridge_governance bagi tindakan tadbir urus jambatan, dengan pq_signers pada semua kecuali pause_mints; call_proof_len, input_envelope_len, receipt dan transition bagi invoke (paparan node: sel yang dibaca dan ditulis, inflow, dan setiap note pays dan mints dengan recipient, time, r dan cm). Jenis v0.6.8 yang tidak dikenali oleh binaan explorer ini (admit_validator, slash_equivocation, penggiliran _v2, cancel_rotation) ialah other.
Pada chain 20, dengan fi jambatan, amount bagi bridge_attest dan bridge_burn ialah jumlah kasar: jumlah yang ditandatangani oleh penjaga, atau jumlah yang dibakar oleh bundle. Explorer tidak menyediakan deposit bersih, jumlah yang dikeluarkan atau note fi; bacalah daripada rand_getTransaction node (deposit_amount, release_amount, fee_note) dan rand_getBridgeBurn. Pembakaran 0.999 zUSD pada ketinggian 2,899 dibaca sebagai "amount": "99900000" di sini; penjaga menandatangani pengeluaran sebanyak 99800100.
Bundle dalam butiran transaksi ialah bundle aset tersembunyi, tanpa medan aset dan tanpa bundle kedua pada pembakaran. Yang ini membayar untuk call dalam contoh curl di atas, pada ketinggian 98,335 chain 18; transaksi itu tidak wujud pada chain 20, yang mana curl ketiga menjawab 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 dan auth_proof_len ialah kebenaran terpisah (chain 17 dan seterusnya, apabila limits.hc_auth ditetapkan): bukti bundle dibuat daripada kunci pemantauan dan menerbitkan auth_commit, dan satu bukti kedua yang kecil ke atas kunci perbelanjaan, terikat pada transaksi yang sama, mesti sepadan dengannya. Kedua-dua bukti dilaporkan melalui panjang sahaja. Setiap sampul pada chain 20 berukuran 1,860 bait (limits.envelope_bytes) dan membawa memo yang disulitkan; chain sehingga 17 memeterai 1,348 bait. Had gas yang diisytiharkan oleh sesuatu call ialah nilai awam bagi buktinya, bukan medan resit, jadi explorer tidak menunjukkannya bagi setiap transaksi; fi yang dibayarnya terdapat dalam fee.
burn_a ialah aset peribadi yang dibakar, bukan sifar hanya pada token_burn, bridge_burn atau invoke yang mendepositkan atau membakar token, dengan burn_asset menamakan indeks daftar; burn_r ialah RAND yang dibakar, bukan sifar hanya pada bond atau invoke yang mendepositkan RAND ke dalam peti besi program.
Pada chain 20, zUSD (“Shielded USD”, lapan tempat perpuluhan) berada pada indeks 1, disenaraikan dalam genesis dengan kesemua tujuh sandaran (registered_at 0, maka deploy_tx ialah null) dan dibawa daripada chain 14 di bawah id aset yang sama. Oleh itu, GET /bridge/assets memulangkan tujuh baris di bawah indeks 1. Lima token lagi didaftarkan pada chain 20 pada hari pertamanya, pada indeks 2 hingga 6, tiga daripadanya dengan sebuah program sebagai pihak berautoriti mint; GET /tokens menyenaraikannya. Pada chain 20, GET /bridge melaporkan rules_v2 dengan had mint global sebanyak 4,000 zUSD ("400000000000") bagi setiap tempoh 86,400 saat, rotation_nonce 0, burn_sequence 13 pada genesis, dan min_inbound_sequence sebanyak 3 bagi rantaian sumber 2, 3 dan 4 serta 7 bagi rantaian sumber 5 (1 dan 4 pada chain 19): lantai ulang tayang genesis, iaitu jujukan kunci terendah yang boleh dibawa oleh attestation sesebuah rantaian sumber untuk dimint di sini. Pada chain 14, ia didaftarkan pada ketinggian 256 melalui register_bridged_token, dengan enam sandaran yang lain ditambah melalui transaksi list_backing.
Membuka sampul surat di dalam pelayar
Sampul surat ialah data rantaian awam, dan peneroka tidak memegang sebarang kunci. Halaman transaksi dan halaman History-nya membuka sampul surat di dalam pelayar dengan binaan WebAssembly bagi kod nod itu sendiri (crates/randscan-viewing): tampal kunci pelihat (nk, 64 heks) untuk melihat setiap note yang dihantar atau diterima oleh pihak tersebut, kunci transaksi untuk membuka satu pembayaran, kunci panggilan untuk membuka input satu panggilan, atau fail kunci dompet, yang daripadanya hanya kunci pelihat terbitan disimpan. Sesebuah note yang dibuka disahkan dengan mengira semula komitmennya. asset yang didedahkan ialah indeks daftar token, diselesaikan melalui GET /tokens untuk mendapatkan simbol dan tempat perpuluhan; inilah satu-satunya tempat sesuatu jumlah dikaitkan dengan aset bagi sesuatu pindahan. Slot dummy dibuka tanpa sebarang kunci dan kelihatan sama seperti note yang bukan milik anda. Tiada apa-apa tentang kunci dihantar melalui rangkaian; untuk membina alat yang sama, dapatkan /envelopes dan /transactions/:hash/envelopes dan gunakan crate tersebut.
Suapan WebSocket
Sambung ke wss://randscan.org/ws dan langgan blocks, transactions atau stats:
{ "type": "subscribe", "channel": "blocks" }
{ "type": "new_block", "block": { … BlockSummary … } }
{ "type": "new_transaction", "transaction": { … TransactionSummary … } }
{ "type": "stats_update", "stats": { … } }
Hantar { "type": "ping" } setiap 30 saat melalui proksi. Suapan ini tidak mempunyai ulang tayang: apabila sambungan terputus, sambung semula dan isi semula data dengan GET /transactions?height=.
Menjalankan sendiri
Semua yang terdapat di sini disajikan oleh peneroka sumber terbuka dalam randprotocol/randscan.org; pengindeks hanya memerlukan JSON-RPC rand_* sesebuah nod dan pangkalan data PostgreSQL.