Halaman ini membawa sebuah token dari nol hingga menjadi aset hidup yang dapat ditransfer di Rand. RPL adalah standar token Rand, baru pada chain 14. Jika Anda pernah men-deploy ERC-20 atau membuat SPL mint, bagian pertama perlu dibaca dengan saksama, karena token RPL bukanlah keduanya. Token RPL adalah halaman konsep di balik halaman ini.
1. Apa itu token RPL
Token RPL adalah entri dalam registri token milik ledger, bukan smart contract. Tidak ada kode yang perlu ditulis, dikompilasi, atau diaudit. Membuat token berarti satu transaksi yang menambahkan satu baris ke registri, dan sejak saat itu unit token tersebut adalah note terlindung (shielded) biasa, disimpan di pool yang sama dengan RAND dan dibelanjakan dengan cara yang sama.
| bidang | aturan |
|---|---|
| asset id | 32 byte, identitas token. Ditulis rpl1…: bech32m, 62 karakter, dengan checksum |
| index | angka kecil yang ditetapkan chain saat registrasi (1, 2, …; 0 adalah RAND). Singkatan untuk id pada chain ini |
| name | 1 hingga 32 byte UTF-8, ditetapkan saat pembuatan |
| symbol | 1 hingga 12 karakter ASCII yang dapat dicetak, ditetapkan saat pembuatan |
| decimals | 0 hingga 9, ditetapkan saat pembuatan |
| mint authority | pihak yang boleh menerbitkan unit tambahan: tidak ada (None), sebuah kunci (Key), atau bridge (Bridge) |
| total supply | bersifat publik, dan hanya berubah melalui mint atau burn |
Simbol tidak unik. Siapa pun dapat membuat token bernama USDC, persis seperti di Ethereum dan Solana. Identitas token adalah asset id-nya, maka periksalah id rpl1… sebelum Anda menerima atau mendaftarkan token, jangan pernah berdasarkan simbolnya. Bentuk teksnya dilengkapi checksum: id yang salah ketik akan ditolak, bukan dikirim ke tempat lain.
Perbedaannya dengan ERC-20 dan SPL
| ERC-20 / SPL | RPL | |
|---|---|---|
| apa itu token | sebuah contract, atau akun yang dimiliki oleh sebuah program | satu baris registri; tanpa kode per token, sehingga tidak ada pajak transfer, rebase, atau hook |
| saldo | publik, per alamat | note terlindung (shielded). Tidak seorang pun dapat membaca saldo pemegang atau mendaftar para pemegang suatu token |
| transfer | pengirim, penerima, dan jumlah bersifat publik | dibuktikan oleh pengirim, sepenuhnya terlindung (shielded). Pengamat tidak dapat membedakannya dari pembayaran RAND |
| biaya | koin native chain | RAND. Pemegang membutuhkan sedikit RAND untuk memindahkan token, seperti pemegang ERC-20 membutuhkan ETH |
| penerimaan | SPL memerlukan token account terlebih dahulu | tidak ada yang perlu disiapkan. Alamat rand1… mana pun dapat menerima token apa pun |
| jumlah | uint256 / u64 | u64, dan paling banyak 9 desimal |
| approve / transferFrom | ya | tidak ada di v1 |
| freeze, blacklist, pause | sering ada | tidak ada |
| metadata | di luar chain atau dapat diubah | di dalam chain dan tidak dapat diubah |
| dipegang oleh program | ya | tidak di v1 |
Yang tetap bersifat publik adalah batasnya: registrasi token, setiap mint, dan setiap burn, masing-masing beserta jumlahnya. Itulah yang membuat total supply dapat diaudit oleh siapa pun. Transfer antar pemegang tidak mengungkap apa pun, termasuk token mana yang berpindah.
2. Sebelum memulai
| yang Anda butuhkan | caranya |
|---|---|
command line rand | Menjalankan node membangunnya; Command line mendaftar setiap perintah |
| sebuah wallet | rand keygen menulis file spend key dan rand address mencetak alamat rand1…-nya (Akun dan alamat) |
| node untuk diajak berkomunikasi | wallet berkomunikasi dengan node melalui JSON-RPC, secara default node Anda sendiri di http://127.0.0.1:8545. Node mengikat RPC-nya ke localhost, sehingga pengaturan yang lazim adalah node milik Anda sendiri yang mengikuti chain 20. Tanpa node tersebut, berikan --rpc https://rpc.randprotocol.org: endpoint publik itu mendukung semua yang ada di halaman ini kecuali rand faucet, yang ditolaknya (JSON-RPC, endpoint publik) |
| RAND untuk biaya | beberapa RAND di wallet. Satu panggilan faucet sebesar 100 RAND mencukupi semua yang ada di halaman ini, tetapi pada chain 20 rand faucet hanya membayar 16 wallet yang diizinkan genesis (staking.faucet_recipients) dan menolak alamat lain dengan the faucet may not mint to this recipient; wallet lain memerlukan RAND yang dikirim oleh seseorang yang memilikinya (Mint dan burn) |
| biaya registrasi | parameter genesis chain, antara 1 dan 10.000 RAND. Pada chain 20 biayanya 1 RAND, sehingga rand token create berbiaya 1,001 RAND: dasar 0,001 RAND yang dibayar setiap transaksi, ditambah biaya registrasi, yang pada chain 20 dibakar (burn) dan tidak dibayarkan kepada proposer blok. Setiap perintah lain di sini berbiaya dasar 0,001 RAND |
| sekitar 6 GB memori kosong | setiap transaksi dibuktikan (proved) di mesin Anda sendiri. Pada chain 20 itu berarti dua bukti, dan wallet mencetak satu baris untuk masing-masing: proving the spend authorisation on this machine (tier 10; seconds)…, lalu proving the bundle (tier 14; about a minute and a half on a laptop)…. Bukti bundle memerlukan sekitar 100 detik dan sekitar 5,7 GB memori selama berjalan; kedua bukti berukuran sekitar 1,37 MB dan sekitar 1,5 MB di jaringan, sekitar 2,85 MB bila digabungkan. Hal itu berlaku untuk setiap langkah di bawah ini yang mengubah chain, yaitu create, setiap mint, setiap send, dan setiap 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 secara default bernilai wallet.key.json dan dapat ditetapkan sekali sebagai RAND_KEY; --rpc (atau RAND_RPC) menunjuk node yang diajak berkomunikasi dan secara default bernilai http://127.0.0.1:8545. Perintah-perintah di bawah menuliskan --key secara eksplisit. Sebelum Anda menghabiskan sebuah bukti, pastikan node berada di chain 20: metode JSON-RPC rand_chainId mengembalikan 20 di sana. Wallet harus merupakan build chain 20, v0.6.8: chain 20 mengikat setiap bukti dan setiap pesan bertanda tangan, termasuk mint token, pada genesis hash-nya, sehingga rand v0.6.7 menghasilkan bukti dan tanda tangan yang ditolak chain 20.
3. Membuat token
token create menerima jumlahnya dalam unit terkecil token. --fixed-supply dan --initial adalah bilangan bulat unit dasar: dengan --decimals 2, jumlah 1000000 adalah 10.000,00 token. Setiap perintah berikutnya (rand send --asset, rand token mint, rand token burn) menerima unit tampilan token sejak v0.5.10, seperti jumlah RAND dinyatakan dalam RAND (1.5): wallet membaca decimals dari baris registri token, dan digit pecahan yang lebih banyak daripada yang dimiliki token akan ditolak. Di dalam chain, jumlah selalu berupa bilangan bulat unit dasar.
Putuskan satu hal terlebih dahulu: apakah unit tambahan boleh diterbitkan di kemudian hari? Jawabannya ditetapkan dalam token saat pembuatan dan tidak dapat diperluas kemudian.
| supply tetap | dapat di-mint | |
|---|---|---|
| mint authority | None | Key: kunci Dilithium2 yang Anda pegang |
| supply | seluruh supply di-mint sekali, dalam transaksi pembuatan | dimulai dari nol, atau dari --initial; pemegang kunci melakukan mint dari waktu ke waktu |
| flag | --fixed-supply <N> --to <rand1…> | --authority-key-out <FILE>, dan opsional --initial <N> --to <rand1…> |
| cocok untuk | token dengan batas, unit keanggotaan atau pemungutan suara | penerbit yang menambah supply, seperti token poin atau hadiah |
Token dengan supply tetap
rand --key wallet.key.json token create \
--name "Example Credits" \
--symbol EXC \
--decimals 2 \
--fixed-supply 1000000 \
--to rand1…
--to adalah alamat rand1… lengkap yang menerima supply, misalnya keluaran rand address. --fixed-supply dinyatakan dalam unit dasar: 1000000 pada 2 desimal adalah 10.000,00 EXC.
Perintah ini membaca indeks berikutnya dari registri dan biaya registrasi dari node, membangun note mint awal, membuktikan satu bundle biaya, mengirimkan registrasi, dan menunggu blok. Bila berhasil, perintah melaporkan pengiriman, lalu mencetak satu baris berbentuk index <N>, id <64 hex> (<rpl1…>), kemudian committed at height <H>. Catat id rpl1… tersebut: itulah identitas token, dan setiap perintah berikutnya memerlukannya.
Biaya default adalah biaya dasar ditambah biaya registrasi chain, 1,001 RAND pada chain 20, sehingga tidak ada yang perlu dihitung; --fee (dalam RAND) menaikkannya. --no-wait kembali segera setelah transaksi dikirim dan melewatkan baris committed. --cuda membuktikan pada GPU NVIDIA yang terpasang, memerlukan build dengan --features cuda, dan tidak beralih ke CPU.
Jika token lain terdaftar saat token Anda sedang dibuktikan, token itu mengambil indeks yang telah disegel untuk token Anda. Node menolak registrasi dan perintah mencetak another token took index N first — re-run to register at N+1, dengan angka sebenarnya. Registrasi yang ditolak tidak pernah masuk ke blok; yang hilang adalah proses pembuktiannya, sekitar 100 detik kerja. Jalankan perintah itu lagi dan perintah tersebut akan membuktikan terhadap indeks berikutnya.
Seluruh supply kini berada dalam satu note terlindung (shielded) yang dimiliki oleh alamat --to. Registrasi dan jumlahnya bersifat publik; apa yang dilakukan penerima terhadap note itu setelahnya tidak.
Token yang dapat di-mint
rand --key wallet.key.json token create \
--name "Example Points" \
--symbol EXP \
--decimals 0 \
--authority-key-out exp-authority.key.json
Perintah ini menulis kunci Dilithium2 baru ke exp-authority.key.json (mode 0600, menolak menimpa berkas yang sudah ada) dan mendaftarkan token dengan kunci tersebut sebagai otoritas pencetakan (mint authority) dan pasokan nol. Keluarannya sama dengan dua baris untuk token berpasokan tetap. Tepat satu dari --fixed-supply dan --authority-key-out harus diberikan.
Untuk mencetak jumlah pertama dalam transaksi yang sama, tambahkan --initial dan --to, yang harus diberikan bersamaan:
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…
Selama pendaftaran masih berlangsung, kunci berada di exp-authority.key.json.pending. Kunci dipindahkan ke exp-authority.key.json setelah chain menerima pendaftaran, dan dibuang jika chain menolaknya. Jika koneksi gagal dan hasilnya tidak diketahui, berkas tetap berada di .pending: periksa rand token list sebelum Anda menghapusnya.
Berkas kunci adalah kekuasaan untuk mencetak token. Simpan secara offline dan cadangkan; berkas ini terpisah dari kunci pembelanjaan (spend key) dompet Anda dan tidak pernah diperlukan untuk mengirim atau menerima.
Mengapa penerima pencetakan pertama menjadi bagian dari id
Sebuah pendaftaran tidak ditandatangani oleh pembuatnya. Siapa pun yang melihat pendaftaran Anda menunggu di mempool dapat mengirimkan salinannya, dibayar dengan bundel biaya miliknya sendiri. Seandainya id aset hanya mencakup nama, simbol, dan jumlah, salinan itu dapat mencantumkan alamat si penyalin sebagai penerima dan masuk ke blok lebih dahulu: ia akan memiliki id tersebut dan, untuk token berpasokan tetap, seluruh pasokannya untuk selamanya.
Karena itu id adalah hash atas segala sesuatu dalam pendaftaran, termasuk pencetakan awal: jumlahnya, penerimanya, keacakannya (randomness), waktunya, dan amplop terenkripsinya. Salinan dengan penerima yang berbeda menghasilkan hash id aset yang berbeda. Itu adalah token lain yang kebetulan memiliki simbol yang sama dengan milik Anda, dan hanya itu yang pernah dijanjikan oleh simbol yang tidak unik. Id Anda hanya dapat didaftarkan dengan penerima Anda.
--salt <hex32> menetapkan salt 32 byte yang juga masuk ke dalam id. Jika dihilangkan, dompet memilih salt secara acak. Tetapkan opsi ini ketika Anda memerlukan id yang dapat direproduksi, misalnya untuk mempublikasikan id sebelum token ada.
Konfirmasikan
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 mencetak baris token tersebut sebagai JSON: index, id, id_text (bentuk rpl1…), name, symbol, decimals, authority, mint_nonce, total_supply, dan registered_at. authority adalah {"kind":"none"} untuk token berpasokan tetap dan {"kind":"key","key":…,"address":…} untuk token yang dapat dicetak. total_supply adalah string desimal dalam satuan dasar. token list mencetak enabled, registration_fee, next_index, dan baris tokens. Keduanya membaca seluruh daftar milik node, sehingga node tidak mengetahui token mana yang menarik minat Anda.
Atau melalui JSON-RPC, di mana parameternya dapat berupa indeks, id hex 64 karakter, atau bentuk 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…"]
}'
Hasilnya adalah baris yang sama dengan yang dicetak token info, atau null jika token tersebut tidak ada; id yang salah bentuk (checksum yang salah, huruf besar-kecil bercampur, panjang yang salah) menghasilkan error -32602. rand_getTokens menerima [from_index, limit] dan menelusuri setiap token terdaftar halaman demi halaman, dan rand_getTokenSupply hanya mengembalikan { total_supply, backings }. Tidak satu pun memerlukan kunci. Lihat JSON-RPC.
Satu baris yang ada di chain 20 saat ini adalah zUSD, token hasil bridge pada indeks 1. Explorer menyajikan registri node tanpa Anda perlu memiliki node sendiri:
curl -s https://randscan.org/api/v1/tokens
Pada chain 14, pada 2026-09-20, perintah itu mengembalikan "registration_fee": 1000000000, "next_index": 2, dan satu token, dipersingkat di sini hingga backing pertamanya:
{
"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
}
Pada chain 20 baris tersebut memiliki id, id_text, nama, simbol, dan backing yang sama, tetapi zUSD tercantum dalam genesis alih-alih didaftarkan pada tinggi 256 (registered_at 0), dan pasokannya dimulai pada 99 zUSD: 22 terkunci pada Ethereum USDT, 22 pada BSC USDT, 30 pada Tron USDT, dan 25 pada Solana USDT, dibawa dari chain 19. (Pasokan chain 19 dimulai pada 10 zUSD, seluruhnya di Solana; pasokan chain 18 sebagai 9 di Tron dan 1 di Solana.) Setiap baris backing juga memuat bidang jendela bergulir minted_in_window, mint_window_secs, dan mint_headroom.
Salinan registration_fee milik explorer berupa angka JSON; RPC milik node sendiri mengembalikannya, seperti setiap jumlah, sebagai string desimal. Pada chain 20, seperti pada setiap chain sejak 15, rand_getTokens milik node juga memuat max_tokens (4096), burn_registration_fee, dan bound_note_value (keduanya true) (Token RPL).
4. Cetak, dan serahkan otoritas
Hanya token dengan otoritas Key yang dapat dicetak, dan hanya oleh kunci tersebut.
rand --key wallet.key.json token mint \
--asset rpl1… \
--to rand1… \
--amount 5000 \
--authority-key exp-authority.key.json
--amount dinyatakan dalam satuan tampilan token: 5000 dari token 0-desimal ini adalah 5.000 satuan dasar, dan 1.5 dari token 6-desimal adalah 1.500.000. Sebelum membangun note atau bukti, dompet membaca baris token dan menolak jika token tidak berotoritas Key atau jika --authority-key bukan kunci yang disebutkan registri. Jika berhasil, dompet melaporkan pengiriman dan mencetak minted <amount> (<base units> units) of asset <index> to <address>. --fee (bawaan 0,001 RAND), --no-wait, dan --cuda bekerja seperti pada token create.
Satu pencetakan menambahkan satu note untuk penerima dan menaikkan total pasokan. Jumlah dan kunci publik penerima tercantum di jaringan (on the wire): pencetakan adalah peristiwa publik secara desain, sama seperti setoran melalui bridge. Setelah penerima memindahkan note tersebut, note itu terlindungi (shielded) seperti yang lainnya. Dompet yang membayar biaya (--key) dan kunci yang mengotorisasi pencetakan (--authority-key) adalah kunci yang berbeda dan dapat dipegang oleh orang yang berbeda.
Setiap pencetakan ditandatangani atas id chain, id aset, dan penghitung yang dipelihara registri, dan pada chain 20 juga atas hash genesis (rand-rpl-mint-2), sehingga pencetakan tidak dapat diputar ulang di chain ini atau disalin ke chain lain, bahkan yang berbagi id chain yang sama. set-authority terikat dengan cara yang sama.
Untuk memindahkan otoritas ke kunci baru, atau melepaskannya untuk selamanya:
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 menerima berkas kunci dan menyerahkan token kepada kunci publik berkas tersebut; tepat satu dari --new-key dan --renounce harus diberikan. Perintah ini mencetak asset <index>'s mint authority is now <public key hex>, atau asset <index>'s mint authority is renounced for good. Masing-masing dikenai biaya dasar 0,001 RAND dan satu putaran pembuktian. --renounce mengubah token menjadi token berpasokan tetap pada pasokannya saat ini. Ini bersifat satu arah: otoritas dapat berpindah dari kunci ke kunci atau dari kunci ke tidak seorang pun, dan tidak ada yang lain. Token yang dibuat dengan pasokan tetap tidak akan pernah dapat dicetak.
5. Gunakan
Kirim
rand --key wallet.key.json send rand1… 250 --asset rpl1…
Perintah ini mengirim 250 token dalam satuan tampilan: 250 EXP pada 0 desimal, atau 250,00 EXC (25.000 satuan dasar) pada 2 desimal. Penerima dan jumlah bersifat posisional, seperti pada RAND. Sebelum pembuktian dimulai, dompet mencetak satu baris, to fingerprint XXXX-XXXX-XXXX-XXXX · <amount> <symbol> (<base units> units), dan menanyakan send? [y/N]. Periksa sidik jari (fingerprint) terhadap milik penerima dan satuan dasar terhadap yang Anda maksudkan. --yes melewati pertanyaan tersebut, dan skrip harus menyertakannya: tanpa opsi ini, stdin yang bukan terminal akan ditolak. --asset menerima indeks, id rpl1…, atau id hex 64 karakter, dan jika dihilangkan, yang dikirim adalah RAND. --memo <text> menyegel teks hingga 510 byte untuk penerima di dalam amplop pembayaran, yang untuk pertama kalinya diizinkan oleh chain 18; tidak ada yang di chain yang menunjukkan bahwa memo tersebut ada. --fee selalu dalam RAND dan bawaannya 0,001; --no-wait dan --cuda berlaku. Sebuah id diselesaikan menjadi indeksnya dari seluruh daftar registri milik node, dan indeks numerik tidak pernah sampai ke node sama sekali, sehingga node tidak diberi tahu token mana yang akan dipindahkan. Ini adalah rand send yang sama yang memindahkan RAND, dengan pembuktian yang sama. Transaksi tersebut menerbitkan empat nullifier, empat komitmen, biaya RAND, waktu, empat amplop terenkripsi, bukti bundel, dan, sejak chain 17, komitmen otorisasi beserta buktinya, aset mana pun yang dipindahkan. Pengamat tidak dapat membedakan transfer token dari pembayaran RAND, tidak dapat mengetahui token yang mana, dan tidak melihat pengirim, penerima, ataupun jumlah.
Biaya dibayar dalam RAND dari bundel yang sama, sehingga dompet pengirim harus memegang sejumlah RAND. Dompet memeriksanya sebelum mulai membuktikan.
Memeriksa saldo
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
Argumennya adalah indeks registri. Untuk satu token, dompet mencetak asset <index> balance: <N> units, dalam satuan dasar. rand notes mencantumkan setiap note yang telah dibuka dompet beserta indeks asset-nya. Dompet menemukan note miliknya dengan memindai chain menggunakan viewing key. Tidak ada apa pun di chain yang menyimpan saldo untuk dicari.
Bakar (Burn)
rand --key wallet.key.json token burn rpl1… 100
Aset dan jumlah bersifat posisional: aset sebagai indeks, rpl1…, atau hex, jumlah dalam satuan tampilan token, sebagaimana dibaca oleh send --asset. --fee bawaannya 0,001 RAND; --no-wait dan --cuda berlaku.
Pembakaran memusnahkan satuan dan menurunkan total pasokan. Seperti pencetakan, ini adalah batas publik: jumlah dan token terlihat, pemegangnya tidak. Token hasil bridge seperti zUSD tidak dibakar dengan cara ini: token burn menolaknya sebelum pembuktian, dan token tersebut keluar melalui rand bridge-burn, yang melepaskan koin di belakangnya.
6. Verifikasi di explorer
randscan.org menampilkan sisi publik sebuah token kepada siapa pun: pendaftarannya, mint dan burn-nya, serta total suplainya. Setiap token terdaftar di randscan.org/tokens, dan halaman satu token berada di /tokens/<rpl1…>, /tokens/<64 hex> atau /tokens/<index>; randscan.org/tokens/1 adalah zUSD. Data yang sama tersedia di GET /api/v1/tokens dan GET /api/v1/tokens/:id, yang kedua beserta transaksi deploy token dan riwayat suplainya berupa pendaftaran, mint, dan burn (Explorer API).
Halaman publik sebuah transfer menampilkan tanpa aset, tanpa jumlah, dan tanpa pihak, karena rantai tidak memilikinya. Untuk membuktikan pembayaran kepada pihak lain, seperti auditor, rekanan, atau bursa, berikan sebuah kunci kepada mereka:
| kunci | yang dilihat pemegangnya |
|---|---|
| kunci transaksi | satu output dari satu transaksi dibuka: token, jumlah, dan para pihak |
| kunci pelihat (viewing key) | setiap note yang pernah dikirim atau diterima dompet, dengan rincian yang sama, beserta status apakah masing-masing sudah dibelanjakan |
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 mencetak satu baris untuk setiap output transaksi tersebut yang dikirim, diterima, atau disimpan sebagai kembalian oleh dompet ini: output (bundle:0 hingga bundle:3, empat slot bundle), peran, jumlah (dalam RAND, atau N (asset I) untuk token), dan kunci per-transaksi yang menyegel output tersebut. Serahkan kunci dari baris sent. Kunci ini berlaku untuk transaksi lampau mana pun, karena dompet memulihkan kunci dari rantai.
Tempelkan kunci transaksi pada halaman transaksi di randscan untuk membuka output tersebut; explorer mencocokkan indeks aset dengan registri dan menampilkan token berdasarkan namanya, dengan desimalnya diterapkan. Kunci pelihat dimasukkan di randscan.org/viewing. Explorer tidak menyimpan kunci apa pun dan tidak mendekripsi apa pun di servernya. Melalui JSON-RPC, pengungkapan yang sama dilakukan dengan rand_checkTransaction(hash, key). Kedua kunci tidak dapat membelanjakan apa pun. Kunci pelihat tidak dapat ditarik kembali setelah dibagikan, maka pilih kunci transaksi bila yang perlu dibuktikan hanya satu pembayaran.
7. Token yang dijembatani
zUSD (“Shielded USD”) juga merupakan token RPL, dengan otoritas Bridge: unitnya hanya dicetak ketika para guardian mengesahkan setoran USDT atau USDC di Ethereum, Binance Smart Chain, Tron, atau Solana, dan suplainya selalu sama dengan yang terkunci di sana. Token ini didaftarkan di chain 14 melalui transaksi pada ketinggian 256, pada indeks 1, dengan tujuh agunan, dan genesis setiap rantai sesudahnya, termasuk chain 20, mencantumkannya kembali dengan id yang sama, rpl1xtj6k2x8strx8c2d5fjs50ltztck5ykms4ve7nmzmstf6fhn0v0spelqtx. Chain 15 melanjutkan 10 zUSD yang masih beredar saat chain 14 berhenti, chain 16 hingga 19 dimulai dengan 10 zUSD yang sama, dan chain 20 dimulai dengan 99 zUSD yang beredar di chain 19. Di chain 20, bridge mengambil 10 bps dari setiap setoran dan setiap penebusan, dalam zUSD, ke sebuah note treasury (Bridge). zUSD adalah sebuah keranjang: agunannya dikumpulkan pada nilai nominal, sehingga pemegang menanggung risiko setiap koin yang terdaftar, bukan hanya koin yang ia setorkan (Token RPL). Suplainya bergerak dengan setiap setoran dan penebusan; rand token info 1 atau /tokens/1 di explorer memberikan angka terkini.
Riwayatnya di chain 14, sebuah testnet terdahulu (diperiksa di explorer pada 2026-09-20). Tabel ini adalah riwayat chain 14: chain 14 telah dipensiunkan, sehingga transaksi-transaksi ini tidak ada di explorer chain 20:
| apa | transaksi (chain 14) | ketinggian |
|---|---|---|
pendaftaran (register_bridged_token) | 7fa28fe6277a82401dcc440ff32da13c5e5763f79826fb17cc508f4c15abdd13 | 256 |
sebuah mint bridge (bridge_attest) | f2f24d75bc0e7d84dff1f4e4518a9d4bef115392492a39befca1528a2404851d | 2,572 |
| sebuah transfer zUSD terlindung | e6ddaca3c852e6c861524a55d00a0fbdcaff6867544b9f19b9bf60ce263c32ed | 3,259 |
sebuah burn bridge (bridge_burn) | f9f365ca170a5fb51ff9381d7b5cc39538c1a621e5f6e8c1bd74d8751c7bbc49 | 3,481 |
Halaman transfer tersebut menampilkan apa yang ditampilkan setiap transfer token: empat nullifier, empat komitmen, dan sebuah biaya, dan tidak ada yang menyatakan bahwa zUSD berpindah.
Untuk menunjukkan apa yang diungkapkan sebuah kunci, catatan rilis v0.5 fullnode menerbitkan dua kunci untuk transfer chain 14 tersebut, dari sebuah dompet demo yang dibuat untuk keperluan itu dan tidak menyimpan apa pun selain itu:
| kunci | nilai | yang dibukanya |
|---|---|---|
| kunci transaksi transfer tersebut | 7f68f57c4f33a3f0fe419f4d1a5df2875461339dbc454af8ced50cbd7f40e4ef | output bundle:0 dari satu transaksi itu: jumlah 100000000 dari aset 1, yaitu 1 zUSD |
| kunci pelihat dompet demo | a93c673ffeff7204447161347828d8e549b7070460813ae1b7e664694e1dcd5d | setiap note yang pernah dikirim atau diterima dompet tersebut |
Di chain 14, kunci transaksi membuka output itu pada halaman transfer, dan melalui JSON-RPC cukup satu panggilan (diperiksa 2026-09-20). Panggilan ini berbentuk sama di chain 20 untuk transaksi milik Anda sendiri; dengan nilai-nilai chain 14 ini, node chain 20 menjawab null (diperiksa 2026-10-01), karena node tersebut tidak pernah menyimpan transaksi itu:
curl -s https://rpc.randprotocol.org -H 'content-type: application/json' -d '{
"jsonrpc": "2.0", "id": 1, "method": "rand_checkTransaction",
"params": ["e6ddaca3c852e6c861524a55d00a0fbdcaff6867544b9f19b9bf60ce263c32ed",
"7f68f57c4f33a3f0fe419f4d1a5df2875461339dbc454af8ced50cbd7f40e4ef"] }'
Jangan pernah menerbitkan kunci pelihat dari dompet yang Anda gunakan: kunci itu memperlihatkan seluruh riwayat dompet tersebut, selamanya.
Alamat biasa tidak dapat membuat token yang dijembatani. rand token create menolak otoritas Bridge, dan mendaftarkan token yang dijembatani, atau menambahkan koin di balik token yang sudah ada, memerlukan kuorum bertanda tangan dari himpunan guardian pasca-kuantum milik bridge. Token yang menamai dirinya zUSD tanpa itu hanyalah token lain dengan simbol pinjaman, yang menjadi satu alasan lagi untuk memeriksa id rpl1…. Token yang dijembatani selalu memiliki 8 desimal di Rand.
Bridge membahas setoran, penebusan, dan himpunan guardian.