Skip to content
LogoLogo

REST API reference

Full-node REST API for the Arrekta post-quantum, multi-asset blockchain.

Stability: v1 is frozen. Within v1 only additive changes are made (new optional fields, new endpoints); clients must ignore unknown fields. Hashes are lowercase hex; amounts are decimal strings of base units; errors are RFC 9457 problem+json with a stable code. Both node implementations (Rust and the Python reference) serve this contract.

Caching: every successful GET /v1/… response except the event stream carries a weak ETag; send it back in If-None-Match and an unchanged resource answers 304 Not Modified with no body.

APIArrekta Node API
Version1.0.0
OpenAPI3.1.0
LicenceMIT OR Apache-2.0
Path prefix/v1 (a breaking change would get a new prefix, see §15 Versioning)
Live schemaevery node serves /openapi.json

Default local base URL: http://127.0.0.1:28332 (regtest API port). Through the platform gateway the same routes are under /v1/* with an X-API-Key header.

Groups

GroupEndpoints
Chain7
Blocks4
Transactions6
Addresses3
Assets4
Mempool2
Mining2
Light Clients2
Events1
Network1
Ops3
Admin6

Conventions

  • Amounts are decimal strings in base units (1 ARRK = 10⁸ base units), so they survive JSON number limits.
  • Hashes are lowercase hex in natural byte order; Arrekta never byte-reverses hashes (merged-mining RPC values are the documented exception).
  • Raw objects (transactions, blocks, checkpoints) are posted as hex in a {"hex": …} body.
  • The merged-mining JSON-RPC endpoint POST /rpc is not part of the OpenAPI document; see Merged mining for pools.

Error model

Errors are RFC 9457 problem details, media type application/problem+json, with a stable machine-readable code. Branch on code, never on title or detail.

{
  "type": "https://docs.arrekta.com/errors/missing-inputs",
  "title": "consensus rule violated",
  "status": 422,
  "code": "missing-inputs",
  "detail": "…"
}

Problem

RFC 9457 problem details (media type application/problem+json).

FieldTypeRequiredNotes
codestringyesstable machine-readable code (PROTOCOL.md error codes)
detailstringno
statusintegeryes
titlestringyes
typestringyesURI reference identifying the problem type

Unknown fields may be added within v1; clients must ignore them.

StatusMeaning
400bad encoding, bad hex, bad address
401 / 403admin authentication (Bearer token) missing or wrong, admin disabled
404block, transaction, asset or filter not found
409rejected by node policy (mempool conflict, already known, fee too low)
422consensus rule violated (the code is the rule's error code)
429rate limited
503node not ready

Every code has a page in the error code reference, and the type URI resolves to it. The SDKs map problems to ArrektaError { status, code, title, detail } (see TypeScript errors and Python errors).