Get a signed root commitment
Changed onReturn the signed Merkle Sum Tree root commitment for one asset in your platform's tree.
The tree is always your own: the platform is taken from your authenticated identity and cannot be supplied in the request, so another platform's roots are not addressable through this endpoint.
Verify the response by checking signature over the raw bytes of commitment_cbor using the key whose key_id matches signing_key_id in GET /por/keys, then decoding commitment_cbor and reading the committed values from it. The sibling JSON fields are an unsigned convenience view, and they are not a complete rendering of the signed payload.
This API does not cache these responses and sets no Cache-Control, but responses do carry a weak ETag, so a request sending If-None-Match can receive 304 Not Modified with no body. Nothing here suppresses caching by an intermediary, so treat latest as a moving target.
No rate limit is applied on these routes by this API. Edge limits may still apply, so handle 429 and honour Retry-After rather than assuming an unlimited budget.
Request
- Base URLhttps://api.cert.zerohash.com
- URLhttps://api.cert.zerohash.com/por/roots/{asset}/{snapshot}
- AuthAPI key in header X-SCX-API-KEY and API key in header X-SCX-PASSPHRASE
Path parameters
Chain-qualified asset identifier. A bare symbol denotes the asset on its home chain; a dotted form denotes the bridged asset on that chain.
Which root to return. Either the literal latest or a db_snapshot_id hex string to pin a specific historical snapshot.
latest resolves to the commitment with the highest publication_seq for this tree. To pin: take db_snapshot_id from a prior response and pass it here — the service looks up that exact snapshot.
Headers
HMAC-SHA256 signature of the request, base64-encoded. See the Authentication guide for the exact signing formula.
Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.
Optional client-supplied request ID used for tracing and idempotency. Must be a UUID v4. When omitted, zerohash generates one and returns it in the response X-Request-Id header.
Response
Signed root commitment
Example response
{
"platform_code": "FP2F20",
"asset": "ETH",
"spec_version": "1.0.0",
"publication_seq": "1",
"db_snapshot_id": "10edfd6c58bcae73b5c6bf9f9e88b69cb47173271cb5fc1362121b1544d04f3c",
"snapshot_ts": "1970-01-01T00:00:00Z",
"root_hash": "b72605925891e8d8f9c1a9b28f662f34b66f7f9ee9ece8c187cc206c06ac49c4",
"root_sum": "000000000005a9d6eb0ecc04a85ed3a0",
"commitment_cbor": "rGhhc3NldF9pZGNFVEhocm9vdF9zdW1QAAAAAAAFqdbrDswEqF7ToGlyb290X2hhc2hYILcmBZJYkejY+cGpso9mLzS2b3+e6ezowYfMIGwGrEnEa3BsYXRmb3JtX2lkZkZQMkYyMGtzbmFwc2hvdF90cwBsYWNjb3VudF90eXBlaWF2YWlsYWJsZWxzcGVjX3ZlcnNpb25lMS4wLjBuZGJfc25hcHNob3RfaWRYQDEwZWRmZDZjNThiY2FlNzNiNWM2YmY5ZjllODhiNjljYjQ3MTczMjcxY2I1ZmMxMzYyMTIxYjE1NDRkMDRmM2NvYXNzZXRfcHJlY2lzaW9uAG9wdWJsaWNhdGlvbl9zZXEAc2V2aWRlbmNlX3BrZ19zaGEyNTZYIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdGFzc2V0X2NvbmZpZ192ZXJzaW9uYA==",
"signature": "vcJ7xd0OSR75rkBKW/yc5pO0n3FYdjjExFz+8CqgHvIPtZlQ9vf37wkntHgVCTDFNBttRJCfnNct9sI7W4DxDQ==",
"signing_key_id": "Wallet:3b779fac-a9c2-4bef-a7b2-05ee8807af96"
}Changes
- info
endpoint added
- info