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
}| Code | Meaning |
|---|---|
-32700 | Ayrıştırma hatası — geçersiz JSON |
-32600 | Geçersiz istek — eksik gerekli alanlar |
-32601 | Yöntem bulunamadı |
-32602 | Geç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.
| Param | Type | Description |
|---|---|---|
address | string | Base58 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.
| Param | Type | Description |
|---|---|---|
address | string | Base58 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.
| Param | Type | Description |
|---|---|---|
height | number | Alı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.
| Param | Type | Description |
|---|---|---|
seq | number | Kanonik 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.
| Param | Type | Description |
|---|---|---|
tx_hash | string | Hex 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.
| Param | Type | Description |
|---|---|---|
tx_hash | string | Hex 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.
| Param | Type | Description |
|---|---|---|
tx_json | string | JSON 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.
| Param | Type | Description |
|---|---|---|
did | string | Çö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.
| Param | Type | Description |
|---|---|---|
credential_id | string | Kimlik 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ı.
| Param | Type | Description |
|---|---|---|
did | string | Konu 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.
| Param | Type | Description |
|---|---|---|
did | string | Dü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.
| Param | Type | Description |
|---|---|---|
address | string | Base58 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.
| Param | Type | Description |
|---|---|---|
proof_hex | string | Hex kodlanmış BBS+ kanıtı |
pubkey_hex | string | Hex kodlanmış BBS+ açık anahtarı |
header_hex | string | Hex kodlanmış imza başlığı |
ph_hex | string | Hex kodlanmış sunum başlığı |
disclosed_messages | {index: number, message: string}[] | İfşa edilen mesaj indeksleri + hex mesaj baytları |
total_message_count | number | Orijinal 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.
| Param | Type | Description |
|---|---|---|
credential_id | string | Kimlik bilgisi kimliği |
proof_hex | string | Hex kodlanmış BBS+ kanıtı |
header_hex | string | Hex kodlanmış imza başlığı |
ph_hex | string | Hex 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": { "...": "..." } }
}