# API — deneysel devnet

## V2 (`sis-private` 0.2.1)

RPC yalnız loopback 18880/18881 adresindedir; token gerektiren uçlar internete proxy edilmez. GET `/status`, `/blocks` (son 30 blok) ve `/explorer` kamuya açık salt okunur sitede bulunur. GET `/account/{sisdev2-adresi}`, `/chain`, `/mempool`, `/template/{sisdev2-madenci}`; POST `/transactions`, `/blocks`, `/sync` özel bearer token gerektirir. Shielded kullanıcı bakiyesi node API'sinde bulunmaz; view/spending key alınmaz.

`POST /sync`: JSON `{ "network":"sis-shielded-devnet-2", "locator":[[height,"block_id"],...], "target":null }`. Locator en çok 32 adet canonical hex hash ile yükseklik taşır. Cevap `{network,start,tip,height,blocks}`. İlk sayfa sonrası `target:[height,tip]` verilerek eşin ilerlemesi sırasında sabit zincir sonuna kadar alınır. Ortak atadan sonra en çok 16 blok/2 MiB döner. Her sayfa yerelde tam doğrulanır; hedef değişirse/reorg olursa başarısız olur. Sonraki istek önceki doğrulanmış tip locator'ını kullanır; ağdan gelen durum/arz beyanına güvenilmez. Bu SPV veya anonimlik kanıtı değildir.

Request body sınırı 1 MiB, tam snapshot 32 MiB, mempool 64 tx, blok 8 tx, işlem 8 Orchard action, zincir 8192 blok sınırındadır. RPC token ve istemci verilerini örnek komutlarda açık argüman olarak paylaşmayın. Error gövdeleri protokol hata nedenlerini içerir, kullanıcı seed/key içermez.

## V1 tarihsel referansı

# HTTP API v1

Base URL `http://127.0.0.1:18780`. Bind loopback ile sınırlandırılır. TLS yerine yerel HTTP + uzak kullanımda SSH tüneli; açık internete HTTP token göndermeyin. `SIS_RPC_TOKEN` en az 32 karakter ve whitespace içermemeli. Yetkili istek: `Authorization: Bearer <TOKEN>`; örnek token gerçek bir sır değildir, dosyaya gömmeyin.

| Yöntem / yol | Yetki | Sonuç |
|---|---|---|
| GET / | Yok | Statik proje sitesi |
| GET /explorer | Yok | Watch-only explorer |
| GET /status | Yok | Ağ, height, tip, genesis, issued_atoms, max_supply_atoms, zorluk, work, mempool, tahmini H/s |
| GET /blocks | Yok | Son 30 bloğun kimlik/zaman/ödül/işlem sayısı özeti |
| GET /account/{address} | Yok | Şeffaf balance_atoms, locked_atoms, nonce ve onaylı işlem geçmişi |
| GET /chain | Bearer | Tam kanonik zincirin JSON array'i |
| GET /mempool | Bearer | Bekleyen işlemler |
| GET /template/{miner_address} | Bearer | PoW araması için Block JSON nesnesi |
| POST /blocks | Bearer | Body: Block; sonuç `{ "accepted": true }` |
| POST /transactions | Bearer | Body: Transaction; sonuç id ve accepted |

Tüm para değerleri atom cinsinden integer; maksimum 2.1e15 olduğundan JS Number exact integer aralığında kalır. Hatalar genellikle 400, chain yetkisiz 401, JSON tür/şema hataları Axum 4xx, payload sınırı 413. Diğer auth hataları bu prototipte 400 döner; üretim öncesi hata standardizasyonu gerekir. Bilinmeyen alanlar reddedilir. Gelen JSON <=16 MiB; işlem başına küçük body alt sınırı/rate limit yoktur. Chain maksimum 4096 blok; büyüyen public ağ için bu snapshot API uygun değildir.

```sh
curl --fail http://127.0.0.1:18780/status
curl --fail http://127.0.0.1:18780/blocks
# Aynı makinede, shell tracing kapalıyken:
curl --fail -H "Authorization: Bearer $SIS_RPC_TOKEN" http://127.0.0.1:18780/chain
```

İşlem alanları ve imza formatı CONSENSUS.md'dedir; elle imza üretmek yerine CLI kullanın. Özel anahtar, mnemonic veya vault hiçbir API body'sine ait değildir. Explorer yalnız onaylı açık veriyi okur. Gizli işlem RPC'si yoktur. Aktif peer sayısı veya global ağ node sayısı iddiası sunulmaz; `configured_peers` statik yapılandırma sayısıdır.
