AffixIO Merkle API
The Merkle API from AffixIO — 6 operation(s) for merkle.
The Merkle API from AffixIO — 6 operation(s) for merkle.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/affix-io-com:affix-io-com-merkle-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AffixIO Verification Merkle API
version: 1.8.0
description: Public /v1 and /api surface of the AffixIO verification API (ML-DSA-65 signed yes/no results, Noir/Barretenberg circuits, Merkle audit, spent registry, gates, Agent Trust). Generated from the live MCP endpoint catalogue and the Postman collection at https://api.affix-io.com/openapi.postman.json. Account, key, OAuth, Hub and webhook administration are intentionally omitted. A successful verify spends the proof digest; presenting it again returns 409 double_spend_detected. Send Idempotency-Key on prove/verify to retry safely.
contact:
name: AffixIO
url: https://www.affix-io.com/contact/
servers:
- url: https://api.affix-io.com
tags:
- name: Merkle
paths:
/v1/merkle/audit:
post:
operationId: affix_merkle_audit
summary: Audit a receipt
description: Audit a single verification receipt against the Merkle audit tree (POST /v1/merkle/audit).
security:
- ApiKey: []
- Bearer: []
responses:
'200':
description: Success (JSON).
'400':
description: Invalid request.
'401':
description: API key missing or not accepted.
'409':
description: Conflict, e.g. double_spend_detected on a spent proof.
'429':
description: Rate limited; see Retry-After.
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: true
example:
digest: '{{proofDigest}}'
circuit_id: '{{circuitId}}'
event: verified
tags:
- Merkle
/v1/merkle/audit/batch:
post:
operationId: affix_merkle_audit_batch
summary: Audit receipts in batch
description: Audit multiple verification receipts against the Merkle audit tree (POST /v1/merkle/audit/batch).
security:
- ApiKey: []
- Bearer: []
responses:
'200':
description: Success (JSON).
'400':
description: Invalid request.
'401':
description: API key missing or not accepted.
'409':
description: Conflict, e.g. double_spend_detected on a spent proof.
'429':
description: Rate limited; see Retry-After.
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: true
example:
entries:
- digest: '{{proofDigest}}'
circuit_id: '{{circuitId}}'
event: verified
tags:
- Merkle
/v1/merkle/leaves:
get:
operationId: affix_merkle_leaves
summary: List Merkle audit leaves
description: List leaves of the Merkle audit tree. Supports pagination query parameters.
security:
- ApiKey: []
- Bearer: []
responses:
'200':
description: Success (JSON).
'400':
description: Invalid request.
'401':
description: API key missing or not accepted.
'409':
description: Conflict, e.g. double_spend_detected on a spent proof.
'429':
description: Rate limited; see Retry-After.
tags:
- Merkle
/v1/merkle/proof/{digest}:
get:
operationId: affix_merkle_proof
summary: Get Merkle proof for digest
description: Get the Merkle inclusion proof for a specific receipt digest.
security:
- ApiKey: []
- Bearer: []
responses:
'200':
description: Success (JSON).
'400':
description: Invalid request.
'401':
description: API key missing or not accepted.
'409':
description: Conflict, e.g. double_spend_detected on a spent proof.
'429':
description: Rate limited; see Retry-After.
parameters:
- name: digest
in: path
required: true
schema:
type: string
tags:
- Merkle
/v1/merkle/root:
get:
operationId: affix_merkle_root
summary: Get Merkle audit root
description: Get the current Merkle audit-tree root for the account's proof receipts.
security:
- ApiKey: []
- Bearer: []
responses:
'200':
description: Success (JSON).
'400':
description: Invalid request.
'401':
description: API key missing or not accepted.
'409':
description: Conflict, e.g. double_spend_detected on a spent proof.
'429':
description: Rate limited; see Retry-After.
tags:
- Merkle
/v1/merkle/verify-proof:
post:
operationId: affix_merkle_verify_proof
summary: Verify a Merkle proof
description: Verify a Merkle inclusion proof against the audit root (POST /v1/merkle/verify-proof).
security:
- ApiKey: []
- Bearer: []
responses:
'200':
description: Success (JSON).
'400':
description: Invalid request.
'401':
description: API key missing or not accepted.
'409':
description: Conflict, e.g. double_spend_detected on a spent proof.
'429':
description: Rate limited; see Retry-After.
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: true
example:
digest: '{{proofDigest}}'
leaf_hash: ''
siblings: []
index: 0
root: ''
tags:
- Merkle
components:
securitySchemes:
ApiKey:
type: apiKey
in: header
name: X-API-Key
Bearer:
type: http
scheme: bearer