{"id":"ct-merkle-root-compute","version":"1.0.0","description":"Compute the RFC 6962 v1 domain-separated Merkle Tree Hash of raw leaves.","supported_operations":["compute an RFC 6962 v1 certificate transparency tree root","hash raw CT leaves with RFC 6962 domain separation","calculate a certificate transparency v1 Merkle root","reproduce a CT log tree hash from leaves","apply CT leaf and node hash prefixes","check a batch of CT leaves against a root"],"unsupported_operations":["RFC 9162 tile hashing","building inclusion or consistency proofs"],"semantics":["Raw leaves are lowercase hex bytes. MTH({})=SHA-256(empty), MTH({d})=SHA-256(0x00||d), and larger trees split at the largest power of two smaller than n and hash SHA-256(0x01||left||right), per RFC 6962 section 2.1.","At most 4096 leaves and 65536 decoded bytes total are accepted."],"limits":{"max_leaves":4096,"max_total_leaf_bytes":65536},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["leaves"],"properties":{"leaves":{"type":"array","maxItems":4096,"items":{"type":"string","maxLength":131072,"pattern":"^([0-9a-f]{2})*$"}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["root","leaf_count","standard","reference"],"properties":{"root":{"type":"string","pattern":"^[0-9a-f]{64}$"},"leaf_count":{"type":"integer","minimum":0},"standard":{"type":"string","enum":["RFC 6962"]},"reference":{"type":"string","enum":["RFC 6962 sections 2.1 and 2.1.1"]}}},"examples":[{"input":{"leaves":[]},"output":{"root":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","leaf_count":0,"standard":"RFC 6962","reference":"RFC 6962 sections 2.1 and 2.1.1"}},{"input":{"leaves":[]},"output":{"root":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","leaf_count":0,"standard":"RFC 6962","reference":"RFC 6962 sections 2.1 and 2.1.1"}}],"execute_url":"/v1/tools/ct-merkle-root-compute/versions/1.0.0/execute"}