D

ZKProver

computedeveloper-tools
Preview responses and set spending limits for this service through use.mpp.land Free budget controls, response samples, and reliability routing.

Compliance Checks

All paid ops declare 402 response MUST 10pt
All x-payment-info valid MUST 10pt
- Challenge has Cache-Control: no-store MUST 5pt
- Challenge digest on POST SHOULD 3pt
- Challenge has expires SHOULD 3pt
- Challenge has Problem Details SHOULD 2pt
- Challenge has required params MUST 5pt
- Challenge has WWW-Authenticate MUST 5pt
Challenge returns 402 MUST 10pt
Correct Content-Type MUST 5pt
Has Cache-Control on discovery SHOULD 5pt
Has input schemas SHOULD 5pt
Has llms.txt SHOULD 5pt
Has /openapi.json at root MUST 10pt
Has required top-level fields MUST 10pt
Served over HTTPS MUST 10pt
Uses standard categories SHOULD 2pt
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
Health check

Returns service status, wallet address, and chain info. Free, no payment required.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Parameters

NameInTypeRequiredDescription
format query string No -

Response Schema (200)

FieldTypeDescription
chain string -
chainId integer -
status string -
wallet string -
GET /circuits dynamic
List available circuits and pricing

Returns all supported ZK circuits with constraint counts and per-proof pricing. Free, no payment required.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Parameters

NameInTypeRequiredDescription
format query string No -

Response Schema (200)

FieldTypeDescription
circuits array[object] -
pricing object -
POST /prove/1x2 dynamic
Generate Groth16 proof (1-input, 2-output JoinSplit)

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
Non-standard x-payment-info fields: price: 0.010000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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)

FieldTypeDescription
circuit string -
contractProof array[string] -
generationTimeMs number -
proof object -
publicSignals array[string] -
success boolean -
POST /prove/2x2 dynamic
Generate Groth16 proof (2-input, 2-output JoinSplit)

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
Non-standard x-payment-info fields: price: 0.020000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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)

FieldTypeDescription
circuit string -
contractProof array[string] -
generationTimeMs number -
proof object -
publicSignals array[string] -
success boolean -
POST /verify/{circuit} dynamic
Verify a Groth16 proof

Verifies a previously generated proof. Free, no payment required.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Parameters

NameInTypeRequiredDescription
circuit path string Yes -

Input Schema

FieldTypeRequiredDescription
proof object Yes Groth16 proof object
publicSignals array Yes

Response Schema (200)

FieldTypeDescription
success boolean -
valid boolean -
verificationTimeMs number -
GET /pool dynamic
Privacy pool info

Returns privacy pool contract addresses, chain info, and available circuits. Free.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Parameters

NameInTypeRequiredDescription
format query string No -

Response Schema (200)

FieldTypeDescription
chain string -
chainId integer -
circuits array[string] -
merkleDepth integer -
pool string -
usdc string -
POST /privacy/deposit dynamic
Generate shielded deposit proof

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
Non-standard x-payment-info fields: price: 0.030000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
amount string Yes USDC amount in micro-units (6 decimals). e.g. '10000000' = 10 USDC

Response Schema (200)

FieldTypeDescription
commitment string -
generationTimeMs number -
operation string -
proof object -
publicSignals array[string] -
success boolean -
POST /privacy/transfer dynamic
Generate private transfer proof

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
Non-standard x-payment-info fields: price: 0.030000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
amount string Yes USDC amount in micro-units
recipientPubkey string Yes Recipient Poseidon public key

Response Schema (200)

FieldTypeDescription
changeCommitment string -
generationTimeMs number -
operation string -
paymentCommitment string -
proof object -
publicSignals array[string] -
success boolean -
POST /privacy/withdraw dynamic
Generate withdrawal proof

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
Non-standard x-payment-info fields: price: 0.030000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
amount string Yes USDC amount in micro-units
recipient string Yes Recipient Ethereum address for withdrawal

Response Schema (200)

FieldTypeDescription
generationTimeMs number -
operation string -
proof object -
publicSignals array[string] -
success boolean -
POST /prove/batch dynamic
Batch proof generation (20% discount)

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
Non-standard x-payment-info fields: price: 0.008000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
circuit string Yes Circuit type
enum: 1x2, 2x2
inputs array Yes Array of circuit input objects

Response Schema (200)

FieldTypeDescription
circuit string -
count integer -
pricing object -
results array[object] -
success boolean -
totalTimeMs number -
POST /attest/zk/balance-gt dynamic
ZK proof: balance > threshold

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
Non-standard x-payment-info fields: price: 0.010000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
blinding string Yes Random blinding factor
threshold string Yes Public threshold to prove against
value string Yes Secret value (balance)

Response Schema (200)

FieldTypeDescription
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 ZK attestation

Verify a Groth16 ZK attestation proof. Free.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Input Schema

FieldTypeRequiredDescription
proof object Yes Groth16 proof object
publicSignals array Yes [commitment, threshold]

Response Schema (200)

FieldTypeDescription
publicSignals object -
valid boolean -
verificationTimeMs number -
POST /attest/commitment dynamic
Create Poseidon commitment

Create a Poseidon hash commitment from a value and blinding factor. $0.001.

Amount
0.001000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
blinding string Yes Random blinding factor
value string Yes Value to commit

Response Schema (200)

FieldTypeDescription
commitment string -
computeTimeMs number -
value string -
POST /attest/balance-gt dynamic
Attest balance > threshold

Server-signed attestation that a committed balance exceeds a threshold. $0.005.

Amount
0.005000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
blinding string Yes
commitment string Yes
threshold string Yes
value string Yes

Response Schema (200)

{
  "type": "object"
}
POST /attest/range dynamic
Attest value in range

Server-signed attestation that a committed value falls within [min, max]. $0.005.

Amount
0.005000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
blinding string Yes
commitment string Yes
max string Yes
min string Yes
value string Yes

Response Schema (200)

{
  "type": "object"
}
POST /attest/membership dynamic
Attest set membership

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
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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 attestation

Verify a server-signed attestation. Free.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Input Schema

FieldTypeRequiredDescription
attestation object Yes Attestation object to verify

Response Schema (200)

FieldTypeDescription
valid boolean -
POST /attest/onchain/balance dynamic
Verify token balance on Tempo

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
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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 NFT ownership

Verify that an address owns a specific NFT on Tempo chain. $0.005.

Amount
0.005000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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 contract interaction

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
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
address string Yes Wallet address
contractAddress string Yes Contract address

Response Schema (200)

{
  "type": "object"
}
POST /stealth/generate-keys dynamic
Generate stealth meta-address

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
Non-standard x-payment-info fields: price: 0.002000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
label string No Optional label for the keypair

Response Schema (200)

FieldTypeDescription
computeTimeMs number -
metaAddress string -
spendingKey string -
spendingPubKey string -
success boolean -
viewingKey string -
viewingPubKey string -
POST /stealth/derive-address dynamic
Derive one-time stealth address

Derive a one-time stealth address from a stealth meta-address. $0.002.

Amount
0.002000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.002000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
metaAddress string Yes Stealth meta-address (e.g. 'st:eth:0x...')

Response Schema (200)

FieldTypeDescription
computeTimeMs number -
ephemeralPubKey string -
stealthAddress string -
success boolean -
POST /stealth/scan dynamic
Scan for stealth payments

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
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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
Recover stealth private key

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
Non-standard x-payment-info fields: price: 0.002000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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 Poseidon Merkle tree

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
Non-standard x-payment-info fields: price: 0.010000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
depth integer No Tree depth (optional)
leaves array Yes Leaf values

Response Schema (200)

{
  "type": "object"
}
POST /merkle/prove dynamic
Generate Merkle inclusion proof

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
Non-standard x-payment-info fields: price: 0.005000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
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 Merkle inclusion proof

Verify a Merkle inclusion proof. Free.

Amount
0
Currency
-
Method
mpp
Intent
-
Non-standard x-payment-info fields: price: 0 pricingMode: fixed protocols: [mpp]

Input Schema

FieldTypeRequiredDescription
leaf string Yes
pathElements array Yes
pathIndices array Yes
root string Yes

Response Schema (200)

{
  "type": "object"
}
POST /hash/poseidon dynamic
Poseidon hash

Compute a ZK-friendly Poseidon hash. $0.001.

Amount
0.001000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
inputs array Yes Field element strings to hash

Response Schema (200)

FieldTypeDescription
computeTimeMs number -
hash string -
inputCount integer -
success boolean -
POST /hash/mimc dynamic
MiMC sponge hash

Compute a MiMC sponge hash (1 or 2 inputs). $0.001.

Amount
0.001000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
inputs array Yes 1 or 2 field element strings

Response Schema (200)

FieldTypeDescription
algorithm string -
computeTimeMs number -
hash string -
inputCount integer -
POST /hash/pedersen dynamic
Pedersen hash

Compute a Pedersen hash over BabyJubJub. $0.001.

Amount
0.001000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
inputs array Yes Field element strings

Response Schema (200)

FieldTypeDescription
algorithm string -
computeTimeMs number -
hash string -
inputCount integer -
POST /hash/keccak256 dynamic
Keccak256 hash

Compute an Ethereum-compatible Keccak256 hash. Accepts hex (0x...) or plaintext. $0.001.

Amount
0.001000
Currency
-
Method
x402, mpp
Intent
-
402 Declared
Yes
Non-standard x-payment-info fields: price: 0.001000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
data string Yes Hex string (0x...) or plaintext to hash

Response Schema (200)

FieldTypeDescription
algorithm string -
computeTimeMs number -
hash string -
inputSize integer -
POST /proof/compress dynamic
Compress proof + Solidity calldata

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
Non-standard x-payment-info fields: price: 0.002000 pricingMode: fixed protocols: [x402 mpp]

Input Schema

FieldTypeRequiredDescription
proof object Yes Groth16 proof with pi_a, pi_b, pi_c
publicSignals array Yes

Response Schema (200)

FieldTypeDescription
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 (409ms)
Challenge
Reachable (559ms)
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