Sigil exposes a JSON-RPC 2.0 endpoint over HTTP POST and a parallel WebSocket endpoint for subscriptions. Every public method on the mainnet, canary, and testnet endpoints uses the same shape.

Endpoint matrix

URLNetworkNotes
https://rpc.sigil.ml/rpcMainnetCloudflare-fronted. 25 req/s sustained, 100 burst per IP.
https://rpc-direct.sigil.ml/rpcMainnetNo middlebox. 10 req/s sustained, 25 burst per IP.
https://canary-rpc.sigil.ml/rpcCanaryCloudflare-fronted.
https://testnet-rpc.sigil.ml/rpcTestnetCloudflare-fronted.
wss://rpc.sigil.ml/wsMainnetWebSocket subscriptions.

Request shape

All methods accept a JSON-RPC 2.0 envelope:
{
  "jsonrpc": "2.0",
  "method": "sigil_<verb><Noun>",
  "params": { /* method-specific */ },
  "id": 1
}
Method names are camelCase under the sigil_ namespace.

Response shape

Success:
{
  "jsonrpc": "2.0",
  "result": { /* method-specific */ },
  "id": 1
}
Error:
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32602,
    "message": "invalid params",
    "data": { "field": "amount", "reason": "negative_value" }
  },
  "id": 1
}
See errors for the full code matrix. Error messages are sanitised before leaving the node; absolute paths and host:port substrings are redacted.

Batches

The JSON-RPC server accepts batched requests as a JSON array. Batch responses preserve request ordering. Batch envelope cap is 16 MiB.
[
  {"jsonrpc":"2.0","id":1,"method":"sigil_getNodeInfo","params":{}},
  {"jsonrpc":"2.0","id":2,"method":"sigil_height","params":{}}
]

Size limits

LimitValue
Single request body64 KiB
sigil_sendTransaction request body4 MiB
Batch envelope16 MiB
Response body32 MiB

Rate limits

The default rate limit is 25 requests/second sustained with a 100-request burst per source IP. The direct endpoint has stricter limits (10 req/s, 25 burst). Premium tiers with JWT-authenticated higher limits are available; see authentication. Rate-limited responses use HTTP 429 with Retry-After and a JSON-RPC error body:
{ "jsonrpc": "2.0", "error": { "code": -32005, "message": "rate limited" }, "id": 1 }

Method classes

ClassExamplesNotes
Node introspectionsigil_getNodeInfo, sigil_getSyncStatus, sigil_heightCheap; safe for polling.
State queriessigil_getBalance, sigil_getAccount, sigil_getDexPoolRead-only. See state queries.
Transactionssigil_sendTransaction, sigil_getTransaction, sigil_getReceiptSee transactions.
Subscriptionssigil_subscribe, sigil_unsubscribeWebSocket only. See subscriptions.
Mempoolsigil_getMempoolStatus, sigil_getMempoolTransactionLive mempool inspection.
Consensussigil_getValidators, sigil_getEpoch, sigil_getNetworkActivationStatusRead-only consensus view.
The canonical method table lives in node/sigil-rpc/src/methods.rs and is asserted by the conformance test node/sigil-node/tests/rpc_conformance.rs.

Health and metrics

  • GET https://rpc.sigil.ml/health returns 200 when healthy, 503 with the failed-probe list otherwise.
  • GET https://rpc.sigil.ml/metrics returns Prometheus-format metrics; intended for in-cluster scrape and rate-limited from outside.
See run an RPC node for the operator configuration.