Skip to Content

JSON-RPC

Solidus blok zinciri, ağdan doğrudan blokları, işlemleri, hesapları ve DID belgelerini sorgulamak için bir JSON-RPC 2.0 uç noktası sunar.

Uç nokta: https://rpc.solidus.network

Tüm istekler Content-Type: application/json ile POST kullanır. Kimlik doğrulama gerekmez.

İstek Biçimi

Her istek JSON-RPC 2.0 spesifikasyonunu izler.

{ "jsonrpc": "2.0", "method": "method_name", "params": [], "id": 1 }

Hata Biçimi

Hatalar, JSON-RPC 2.0 hata nesnesi yapısını izler.

{ "jsonrpc": "2.0", "error": { "code": -32602, "message": "Invalid params: DID not found" }, "id": 1 }
CodeMeaning
-32700Ayrıştırma hatası — geçersiz JSON
-32600Geçersiz istek — eksik gerekli alanlar
-32601Yöntem bulunamadı
-32602Geçersiz parametreler
-32603İç hata

Yöntemler

Bir solidus_getAccount yöntemi yoktur — buna bir çağrı {"error":{"code":-32601,"message":"Method not found"}} döndürür. Hesap bakiyesi ve nonce iki ayrı çağrıdır: solidus_getBalance ve solidus_getNonce. Aşağıdaki tüm hash’ler 0x öneki olmadan küçük harfli hex’tir, zaman damgaları Unix milisaniyeleridir (timestamp_ms) ve aşağıdaki yanıt şekilleri rpc.solidus.network’ten canlı olarak yakalanmıştır.

solidus_getBalance

Base58 bir adres için bakiyeyi (en küçük birimlerde) döndürür.

ParamTypeDescription
addressstringBase58 kodlanmış hesap adresi
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_getBalance","params":["3GfjBM7v6LZ1N5zp1b12gfpwCN8j"],"id":1}'
// Response { "jsonrpc": "2.0", "id": 1, "result": 1000000000000 }

solidus_getNonce

Base58 bir adres için geçerli nonce’u (bir sonraki beklenen işlem indeksi) döndürür.

ParamTypeDescription
addressstringBase58 kodlanmış hesap adresi
{ "jsonrpc": "2.0", "id": 1, "result": 0 }

solidus_getLatestBlock

En son onaylanmış bloğu döndürür, hiç blok yoksa null döndürür.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_getLatestBlock","params":[],"id":1}'
// Response (measured live) { "jsonrpc": "2.0", "id": 1, "result": { "height": 82054, "round": 6495, "hash": "7bdd7ba192080a011f4564bae0d065401e2efa6a257f52df0eeb0ae284e01d02", "parent_hash": "261c0ac7955a5359b653f189a720ddd1358650772e35734003093fb2bc324800", "state_root": "c2a009a8fc5f869aee238febb2e362694bd3828748158d758e52420f5a15c89d", "transactions_root": "0000000000000000000000000000000000000000000000000000000000000000", "timestamp_ms": 1785314852140, "tx_count": 0, "proposer": "KoYahYf66hCp2wqTJFCxrzYpQ5r", "transactions": [] } }

transactions is a bare array of hex transaction-hash strings, not an array of objects. round is the consensus round the block was proposed in; tx_count mirrors transactions.length.

solidus_getBlock

Yüksekliğe göre bir blok döndürür, mevcut değilse null döndürür. solidus_getLatestBlock ile aynı yanıt şekli.

ParamTypeDescription
heightnumberAlınacak blok yüksekliği
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_getBlock","params":[1],"id":1}'

solidus_getBlockBySeq

Bir bloğu, bitişik kanonik sıra numarasına göre döndürür (hızlı lider rotasyonu altında kayıplı olabilen height’ten farklı olarak), o seq’te hiçbir şey kanonize edilmemişse null döndürür. Yanıt şekli solidus_getLatestBlock ile eşleşir.

ParamTypeDescription
seqnumberKanonik sıra numarası

solidus_canonHead

Kanonik defterin başını döndürür, hiçbir blok kanonize edilmemişse null döndürür.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_canonHead","params":[],"id":1}'
{ "jsonrpc": "2.0", "id": 1, "result": { "seq": 80335, "hash": "7bdd7ba192080a011f4564bae0d065401e2efa6a257f52df0eeb0ae284e01d02" } }

solidus_blockNumber

Yalnızca en son onaylanmış blok yüksekliğini döndürür.

{ "jsonrpc": "2.0", "id": 1, "result": 82054 }

solidus_chainInfo

Zincir meta verisini döndürür — kimlik, yerel token, genesis hash’i, en son yükseklik, düğüm sürümü.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_chainInfo","params":[],"id":1}'
// Response (measured live) { "jsonrpc": "2.0", "id": 1, "result": { "chain_id": "solidus-testnet-1", "native_token": { "symbol": "SLDS", "name": "Solidus", "decimals": 8 }, "genesis_hash": "fd5c6ad7951a6a0352290e0731feb05e2fc96650030b8280a52518267e23a312", "latest_block": 82054, "version": "0.1.0" } }

solidus_nodeInfo

Süreç düzeyinde düğüm gözlemlenebilirliğini döndürür: sürüm, çalışma süresi, yerleşik bellek.

// Response (measured live) { "jsonrpc": "2.0", "id": 1, "result": { "version": "0.1.0", "uptime_seconds": 1244870, "rss_bytes": 165449728 } }

solidus_getReceipt

Bir işlem hash’i için yürütme makbuzunu döndürür, bulunamazsa null döndürür.

ParamTypeDescription
tx_hashstringHex işlem hash’i (0x öneki olmadan)
{ "jsonrpc": "2.0", "id": 1, "result": { "tx_hash": "<hex>", "status": "success", "block_height": 82054, "fee_paid": 10000, "events": [{ "type": "Transfer", "from": "...", "to": "...", "amount": 500 }] } }

status is either "success" or "failed: <reason>".

solidus_getTransaction

Bir hash için tam işlem JSON’unu döndürür (en sondan geriye doğru blokları tarayarak — testnet’te kabul edilebilir), bulunamazsa null döndürür.

ParamTypeDescription
tx_hashstringHex işlem hash’i
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_getTransaction","params":["<hex tx hash>"],"id":1}'

Sonuç, ham imzalanmış işlemdir — {sender_pubkey, nonce, payload, signature} — bir {tx, receipt} sarmalayıcısı değil. Yürütme durumu için ayrıca solidus_getReceipt kullanın.

⚠ Adresler ve anahtarlar burada base58 değil, HAM BAYT DİZİLERİ olarak dönüyor. Bu uç noktada 2026-08-26’da ölçüldü: sender_pubkey 32 baytlık bir dizi, signature 64 bayt ve bir Transfer yükünün to alanı 20 baytlık bir dizi. Bu sayfadaki diğer bütün yöntemler aynı türden değeri base58 dize olarak alıyor ve döndürüyor: solidus_getBalance, solidus_getNonce, solidus_getValidators ve solidus_getValidator, 3GfjBM7v6LZ1N5zp1b12gfpwCN8j gibi 28 karakterlik biçimi kullanıyor.

İkisi aynı adresin farklı kılığıdır. to alanındaki 20 baytı base58 ile kodlamak tam olarak o 28 karakterlik biçimi veriyor, dolayısıyla iki yüzeyi birlikte okuyan bir istemcinin karşılaştırmadan önce dönüştürmesi gerekiyor. İki yanıtın hiçbiri hangi gösterimi döndürdüğünü söylemiyor; bu yüzden kodlamayı alan adının değil, YÖNTEMİN bir özelliği olarak görün.

solidus_sendTransaction

Ağa imzalanmış bir işlem (bir nesne değil, JSON kodlanmış bir dize) gönderir. İşlem hash’ini hex dizesi olarak döndürür.

ParamTypeDescription
tx_jsonstringJSON dizgesine dönüştürülmüş imzalanmış işlem
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_sendTransaction","params":["<JSON-stringified signed tx>"],"id":1}'
{ "jsonrpc": "2.0", "id": 1, "result": "<hex tx hash>" }

İşlem mempool’a eklenir. Bir bloğa dahil edildiğinde kontrol etmek için döndürülen hash ile solidus_getReceipt kullanın. Pratikte, ham işlemler oluşturmak yerine SDK’yı kullanın — nonce yönetimini, imzalamayı ve serileştirmeyi halleder.

solidus_didResolve

Bir DID’i DID Belgesine çözümler, mevcut değilse null döndürür.

ParamTypeDescription
didstringÇözümlenecek DID
curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_didResolve","params":["did:solidus:testnet:7Hk3mRtQZvXp2nBw9Lj4K"],"id":1}'

Sonuç, DID belgesinin kendisidir (bir document alanına sarmalanmamış), active, created_ms, updated_ms ve version_id dahil. Bu yöntemin tam olarak eşleştiği alan alan şekil için DID’ler’e bakın.

solidus_credentialVerify

Kimliğe göre bir kimlik bilgisini doğrular. Geçerliliği ve kimlik bilgisi kaydını döndürür, kimlik bilgisi mevcut değilse null döndürür.

ParamTypeDescription
credential_idstringKimlik bilgisi kimliği (ör. urn:solidus:credential:...)
{ "jsonrpc": "2.0", "id": 1, "result": { "valid": true, "credential": { "id": "...", "issuer_did": "...", "subject_did": "...", "credential_type": "Email", "hash": "<hex>", "issued_ms": 0, "revoked": false, "revoked_ms": null }, "revoked": false } }

solidus_credentialsBySubject

Öntanımlı olarak kapalıdır. Bir DID’in taşıdığı bütün kimlik bilgilerini listelemek, tek bir tanıtıcıyı o kişinin profiline çevirir. Bu yüzden düğüm, işletmecisi açıkça izin vermediği sürece bu çağrıyı reddeder.

Kapalı bir düğüm -32001 hatası ve reddin gerekçesini açıklayan bir mesaj döndürür. Boş dizi döndürmez: boş dizi “bu kişide hiç kimlik bilgisi yok” demek olurdu ve düğüm buna hiç bakmadı.

ParamTypeDescription
didstringKonu DID’i

Elinizde bir kimlik bilgisi kimliği varsa bunun yerine solidus_credentialVerify kullanın. Her düğümde yanıt verir ve aynı kayıt şeklini döndürür.

Kendi çalıştırdığınız bir düğümde açmak için solidus-node başlamadan önce SOLIDUS_RPC_ALLOW_SUBJECT_ENUMERATION=1 ortam değişkenini tanımlayın. Boş değer dahil başka her değer kapalı bırakır. Açıkken düğüm başlangıçta bir uyarı kaydı yazar.

solidus_credentialsByIssuer

Verilen DID’in düzenleyici olduğu tüm kimlik bilgilerini düz bir dizi olarak döndürür (hiçbiri yoksa boş dizi). solidus_credentialsBySubject ile aynı kayıt şekli. Bu çağrı kapalı değildir: düzenleyici, tür ve zaman damgası birlikte, konu sorgusunun yaptığı gibi tek bir kişiyi işaret etmez, ve tarayıcıların buna ihtiyacı var.

ParamTypeDescription
didstringDüzenleyici DID’i

solidus_getValidators

Aktif doğrulayıcı kümesini düz bir dizi olarak döndürür — {validators: [...]} içine sarmalanmamış.

curl -X POST https://rpc.solidus.network \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"solidus_getValidators","params":[],"id":1}'
// Response (measured live — 5 validators currently active) { "jsonrpc": "2.0", "id": 1, "result": [ { "address": "3GfjBM7v6LZ1N5zp1b12gfpwCN8j", "staked": 1000000000000, "unbonding": 0, "reputation": 1000, "active": true }, { "address": "28gvczeVVVQjy6MpP4yexmd3xEsm", "staked": 0, "unbonding": 0, "reputation": 0, "active": true }, { "address": "2ddrNYxwr5V42QJmDgpphzGuWrAK", "staked": 0, "unbonding": 0, "reputation": 0, "active": true }, { "address": "2VnFvB9X8BW5QxDAD1wJjjd8AJvT", "staked": 0, "unbonding": 0, "reputation": 0, "active": true }, { "address": "KoYahYf66hCp2wqTJFCxrzYpQ5r", "staked": 0, "unbonding": 0, "reputation": 0, "active": true } ] }

Bir public_key, isLeader, totalStake veya quorum alanı yoktur. Her giriş address, staked, unbonding (21 günlük unbonding kilidindeki miktar) ve reputation (0–1000) ile active taşır.

solidus_getValidatorStake

Base58 bir adres için tek bir doğrulayıcının bilgisini döndürür, bulunamazsa null döndürür. solidus_getValidators’taki bir girdiyle aynı kayıt şekli.

ParamTypeDescription
addressstringBase58 doğrulayıcı adresi

solidus_bbsVerifyProof

Bir BBS+ seçici ifşa kanıtını durumsuz olarak doğrular (zincir araması yok). Tüm hex girdileri küçük harfli olmalıdır.

ParamTypeDescription
proof_hexstringHex kodlanmış BBS+ kanıtı
pubkey_hexstringHex kodlanmış BBS+ açık anahtarı
header_hexstringHex kodlanmış imza başlığı
ph_hexstringHex kodlanmış sunum başlığı
disclosed_messages{index: number, message: string}[]İfşa edilen mesaj indeksleri + hex mesaj baytları
total_message_countnumberOrijinal olarak imzalanan vektördeki toplam mesaj sayısı

Kanıt kriptografik olarak geçerliyse true döndürür.

solidus_bbsVerifyCredentialProof

Bir BBS+ kanıtını zincir üstü bir kimlik bilgisi kaydına karşı doğrular — kimlik bilgisini kimliğine göre arar, zincir durumundan bbs_pubkey/bbs_message_count’ünü çeker, ardından doğrular. Kanıt geçerliliğini iptal durumuyla birleştirir.

ParamTypeDescription
credential_idstringKimlik bilgisi kimliği
proof_hexstringHex kodlanmış BBS+ kanıtı
header_hexstringHex kodlanmış imza başlığı
ph_hexstringHex kodlanmış sunum başlığı
disclosed_messages{index: number, message: string}[]İfşa edilen mesaj indeksleri + hex mesaj baytları
{ "jsonrpc": "2.0", "id": 1, "result": { "valid": true, "proof_valid": true, "is_bbs": true, "revoked": false, "credential": { "...": "..." } } }
Last updated on