ZKProver
Compliance Checks
8 issues
- Missing 402 response declaration on GET /health
- Missing 402 response declaration on GET /circuits
- Missing 402 response declaration on POST /verify/{circuit}
- Missing 402 response declaration on GET /pool
- Missing 402 response declaration on POST /attest/zk/verify
- Missing 402 response declaration on POST /attest/verify
- Missing 402 response declaration on POST /merkle/verify
- Endpoint GET /health returned 200 without payment
Paid Operations (32)
GET /health dynamic
Returns service status, wallet address, and chain info. Free, no payment required.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| format | query | string | No | - |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| chain | string | - |
| chainId | integer | - |
| status | string | - |
| wallet | string | - |
GET /circuits dynamic
Returns all supported ZK circuits with constraint counts and per-proof pricing. Free, no payment required.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| format | query | string | No | - |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| circuits | array[object] | - |
| pricing | object | - |
POST /prove/1x2 dynamic
Generates a Groth16 ZK proof for a 1x2 JoinSplit circuit. Requires MPP payment of $0.01 USDC.
- Amount
- 0.010000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.010000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| extDataHash | string | Yes | External data hash |
| inAmount | array | Yes | |
| inBlinding | array | Yes | |
| inPathElements | array | Yes | |
| inPathIndices | array | Yes | |
| inPrivateKey | array | Yes | |
| inputNullifiers | array | Yes | |
| outAmount | array | Yes | |
| outBlinding | array | Yes | |
| outPubkey | array | Yes | |
| outputCommitments | array | Yes | |
| protocolFee | string | No | Protocol fee |
| publicAmount | string | Yes | Public amount for deposit/withdrawal |
| root | string | Yes | Merkle tree root |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| circuit | string | - |
| contractProof | array[string] | - |
| generationTimeMs | number | - |
| proof | object | - |
| publicSignals | array[string] | - |
| success | boolean | - |
POST /prove/2x2 dynamic
Generates a Groth16 ZK proof for a 2x2 JoinSplit circuit. Requires MPP payment of $0.02 USDC.
- Amount
- 0.020000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.020000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| extDataHash | string | Yes | External data hash |
| inAmount | array | Yes | |
| inBlinding | array | Yes | |
| inPathElements | array | Yes | |
| inPathIndices | array | Yes | |
| inPrivateKey | array | Yes | |
| inputNullifiers | array | Yes | |
| outAmount | array | Yes | |
| outBlinding | array | Yes | |
| outPubkey | array | Yes | |
| outputCommitments | array | Yes | |
| protocolFee | string | No | Protocol fee |
| publicAmount | string | Yes | Public amount for deposit/withdrawal |
| root | string | Yes | Merkle tree root |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| circuit | string | - |
| contractProof | array[string] | - |
| generationTimeMs | number | - |
| proof | object | - |
| publicSignals | array[string] | - |
| success | boolean | - |
POST /verify/{circuit} dynamic
Verifies a previously generated proof. Free, no payment required.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| circuit | path | string | Yes | - |
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| proof | object | Yes | Groth16 proof object |
| publicSignals | array | Yes |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| success | boolean | - |
| valid | boolean | - |
| verificationTimeMs | number | - |
GET /pool dynamic
Returns privacy pool contract addresses, chain info, and available circuits. Free.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| format | query | string | No | - |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| chain | string | - |
| chainId | integer | - |
| circuits | array[string] | - |
| merkleDepth | integer | - |
| pool | string | - |
| usdc | string | - |
POST /privacy/deposit dynamic
Generates a Groth16 ZK proof for a shielded deposit (public to private). Requires MPP payment of $0.03 USDC.
- Amount
- 0.030000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.030000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| amount | string | Yes | USDC amount in micro-units (6 decimals). e.g. '10000000' = 10 USDC |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| commitment | string | - |
| generationTimeMs | number | - |
| operation | string | - |
| proof | object | - |
| publicSignals | array[string] | - |
| success | boolean | - |
POST /privacy/transfer dynamic
Generates a Groth16 ZK proof for a private transfer (private to private). Requires MPP payment of $0.03 USDC.
- Amount
- 0.030000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.030000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| amount | string | Yes | USDC amount in micro-units |
| recipientPubkey | string | Yes | Recipient Poseidon public key |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| changeCommitment | string | - |
| generationTimeMs | number | - |
| operation | string | - |
| paymentCommitment | string | - |
| proof | object | - |
| publicSignals | array[string] | - |
| success | boolean | - |
POST /privacy/withdraw dynamic
Generates a Groth16 ZK proof for a withdrawal (private to public). Requires MPP payment of $0.03 USDC.
- Amount
- 0.030000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.030000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| amount | string | Yes | USDC amount in micro-units |
| recipient | string | Yes | Recipient Ethereum address for withdrawal |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| generationTimeMs | number | - |
| operation | string | - |
| proof | object | - |
| publicSignals | array[string] | - |
| success | boolean | - |
POST /prove/batch dynamic
Generate multiple Groth16 proofs in a single request at $0.008/proof (20% discount vs individual). Min 2, max 20.
- Amount
- 0.008000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.008000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| circuit | string | Yes |
Circuit type
enum: 1x2, 2x2 |
| inputs | array | Yes | Array of circuit input objects |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| circuit | string | - |
| count | integer | - |
| pricing | object | - |
| results | array[object] | - |
| success | boolean | - |
| totalTimeMs | number | - |
POST /attest/zk/balance-gt dynamic
Generate a Groth16 ZK proof that a committed balance exceeds a threshold. Trustless — anyone can verify. $0.01.
- Amount
- 0.010000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.010000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| blinding | string | Yes | Random blinding factor |
| threshold | string | Yes | Public threshold to prove against |
| value | string | Yes | Secret value (balance) |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| circuit | string | - |
| commitment | string | - |
| curve | string | - |
| generationTimeMs | number | - |
| proof | object | - |
| protocol | string | - |
| publicSignals | array[string] | - |
| threshold | string | - |
| verified | boolean | - |
POST /attest/zk/verify dynamic
Verify a Groth16 ZK attestation proof. Free.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| proof | object | Yes | Groth16 proof object |
| publicSignals | array | Yes | [commitment, threshold] |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| publicSignals | object | - |
| valid | boolean | - |
| verificationTimeMs | number | - |
POST /attest/commitment dynamic
Create a Poseidon hash commitment from a value and blinding factor. $0.001.
- Amount
- 0.001000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.001000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| blinding | string | Yes | Random blinding factor |
| value | string | Yes | Value to commit |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| commitment | string | - |
| computeTimeMs | number | - |
| value | string | - |
POST /attest/balance-gt dynamic
Server-signed attestation that a committed balance exceeds a threshold. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| blinding | string | Yes | |
| commitment | string | Yes | |
| threshold | string | Yes | |
| value | string | Yes |
Response Schema (200)
{
"type": "object"
}
POST /attest/range dynamic
Server-signed attestation that a committed value falls within [min, max]. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| blinding | string | Yes | |
| commitment | string | Yes | |
| max | string | Yes | |
| min | string | Yes | |
| value | string | Yes |
Response Schema (200)
{
"type": "object"
}
POST /attest/membership dynamic
Server-signed attestation that a committed value is a member of a Merkle set. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| blinding | string | Yes | |
| commitment | string | Yes | |
| leaves | array | Yes | Set of leaf values |
| value | string | Yes |
Response Schema (200)
{
"type": "object"
}
POST /attest/verify dynamic
Verify a server-signed attestation. Free.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| attestation | object | Yes | Attestation object to verify |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| valid | boolean | - |
POST /attest/onchain/balance dynamic
Verify that an address holds a token balance above a threshold on Tempo chain. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Wallet address |
| threshold | string | Yes | Minimum balance threshold |
| token | string | No | Token contract address (optional, native if omitted) |
Response Schema (200)
{
"type": "object"
}
POST /attest/onchain/nft dynamic
Verify that an address owns a specific NFT on Tempo chain. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Wallet address |
| nftContract | string | Yes | NFT contract address |
| tokenId | string | Yes | Token ID |
Response Schema (200)
{
"type": "object"
}
POST /attest/onchain/interaction dynamic
Verify that an address has interacted with a specific contract on Tempo chain. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| address | string | Yes | Wallet address |
| contractAddress | string | Yes | Contract address |
Response Schema (200)
{
"type": "object"
}
POST /stealth/generate-keys dynamic
Generate an ERC-5564 stealth meta-address keypair. No input required — returns a fresh keypair. $0.002.
- Amount
- 0.002000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.002000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| label | string | No | Optional label for the keypair |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| computeTimeMs | number | - |
| metaAddress | string | - |
| spendingKey | string | - |
| spendingPubKey | string | - |
| success | boolean | - |
| viewingKey | string | - |
| viewingPubKey | string | - |
POST /stealth/derive-address dynamic
Derive a one-time stealth address from a stealth meta-address. $0.002.
- Amount
- 0.002000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.002000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| metaAddress | string | Yes | Stealth meta-address (e.g. 'st:eth:0x...') |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| computeTimeMs | number | - |
| ephemeralPubKey | string | - |
| stealthAddress | string | - |
| success | boolean | - |
POST /stealth/scan dynamic
Scan a list of ephemeral public keys to find stealth payments addressed to you. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| ephemeralPubKeys | array | Yes | Ephemeral public keys to scan |
| spendingPubKey | string | Yes | Spending public key (hex) |
| viewingKey | string | Yes | Viewing private key (hex) |
Response Schema (200)
{
"type": "object"
}
POST /stealth/compute-key dynamic
Compute the private key for a stealth address using spending key, viewing key, and ephemeral public key. $0.002.
- Amount
- 0.002000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.002000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| ephemeralPubKey | string | Yes | Ephemeral public key (hex) |
| spendingKey | string | Yes | Spending private key (hex) |
| viewingKey | string | Yes | Viewing private key (hex) |
Response Schema (200)
{
"type": "object"
}
POST /merkle/build dynamic
Build a Poseidon Merkle tree from an array of leaves. Returns root and tree data. $0.01.
- Amount
- 0.010000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.010000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| depth | integer | No | Tree depth (optional) |
| leaves | array | Yes | Leaf values |
Response Schema (200)
{
"type": "object"
}
POST /merkle/prove dynamic
Generate a Merkle inclusion proof for a leaf at a given index. $0.005.
- Amount
- 0.005000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.005000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| depth | integer | No | Tree depth (optional) |
| leafIndex | integer | Yes | Index of the leaf to prove |
| leaves | array | Yes | Leaf values |
Response Schema (200)
{
"type": "object"
}
POST /merkle/verify dynamic
Verify a Merkle inclusion proof. Free.
- Amount
- 0
- Currency
- -
- Method
- mpp
- Intent
- -
price: 0 pricingMode: fixed protocols: [mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| leaf | string | Yes | |
| pathElements | array | Yes | |
| pathIndices | array | Yes | |
| root | string | Yes |
Response Schema (200)
{
"type": "object"
}
POST /hash/poseidon dynamic
Compute a ZK-friendly Poseidon hash. $0.001.
- Amount
- 0.001000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.001000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| inputs | array | Yes | Field element strings to hash |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| computeTimeMs | number | - |
| hash | string | - |
| inputCount | integer | - |
| success | boolean | - |
POST /hash/mimc dynamic
Compute a MiMC sponge hash (1 or 2 inputs). $0.001.
- Amount
- 0.001000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.001000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| inputs | array | Yes | 1 or 2 field element strings |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| algorithm | string | - |
| computeTimeMs | number | - |
| hash | string | - |
| inputCount | integer | - |
POST /hash/pedersen dynamic
Compute a Pedersen hash over BabyJubJub. $0.001.
- Amount
- 0.001000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.001000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| inputs | array | Yes | Field element strings |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| algorithm | string | - |
| computeTimeMs | number | - |
| hash | string | - |
| inputCount | integer | - |
POST /hash/keccak256 dynamic
Compute an Ethereum-compatible Keccak256 hash. Accepts hex (0x...) or plaintext. $0.001.
- Amount
- 0.001000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.001000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| data | string | Yes | Hex string (0x...) or plaintext to hash |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| algorithm | string | - |
| computeTimeMs | number | - |
| hash | string | - |
| inputSize | integer | - |
POST /proof/compress dynamic
Compress a Groth16 proof to minimal 256-byte format and generate Solidity calldata. $0.002.
- Amount
- 0.002000
- Currency
- -
- Method
- x402, mpp
- Intent
- -
- 402 Declared
- Yes
price: 0.002000 pricingMode: fixed protocols: [x402 mpp]
Input Schema
| Field | Type | Required | Description |
|---|---|---|---|
| proof | object | Yes | Groth16 proof with pi_a, pi_b, pi_c |
| publicSignals | array | Yes |
Response Schema (200)
| Field | Type | Description |
|---|---|---|
| compressed | string | - |
| compressedSize | integer | - |
| compressionRatio | string | - |
| computeTimeMs | number | - |
| format | string | - |
| originalSize | integer | - |
| solidityCalldata | string | - |
Payment Methods
- Methods
- -
- Intents
- -
- Currencies (discovery)
- -
- Multiple Challenges
- No
Security
- TLS Version
- TLSv1.2
- Challenge ID Unique
- -
- Challenge ID Length
- -
- Digest Binding
- -
Uptime
- Discovery
- Reachable (562ms)
- Challenge
- Reachable (311ms)
- Last Checked
Schema Completeness
- Paid Operations
- 32
- With Input Schema
- 29
- With Description
- 32
3 missing schema
- GET /health
- GET /circuits
- GET /pool
Documentation
- Homepage
- https://github.com/Himess/zk-proof-service
- API Reference
- -
- llms.txt
- https://himess-zk-proof-service.hf.space/llms.txt reachable
Discovery
- OpenAPI URL
- https://himess-zk-proof-service.hf.space/openapi.json
- OpenAPI Version
- 3.1.0
- Service Version
- 3.0.0
- Document Size
- 30865 bytes
- Document Hash
- d56e3e7d5119b347c03bc4e565faaffca738aa44084b417cd9ba11ae21296158
Version History (2 snapshots)
Scan snapshots
| Date | Grade | Score | Response | Status |
|---|---|---|---|---|
| 2026-04-06 | D | 57% | 498ms | Up |
| 2026-04-07 | D | 57% | 373ms | Up |