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.
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
Verilen DID’in konu olduğu tüm kimlik bilgilerini düz bir dizi olarak döndürür (hiçbiri yoksa boş dizi).
| Param | Type | Description |
|---|---|---|
did | string | Konu DID’i |
solidus_credentialsByIssuer
Verilen DID’in düzenleyici olduğu tüm kimlik bilgilerini düz bir dizi olarak döndürür.
solidus_credentialsBySubject ile aynı kayıt şekli.
| 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": { "...": "..." } }
}