PrivateDAO Blind Policy Verification API

Prove that a private policy (e.g. a credit-capacity rule over private records, risk score and liabilities) was satisfied without revealing the inputs. Groth16 proofs over the private_dao_blind_policy_overlay circuit; endpoints for status, a safe sample payload, prove, verify (hash recompute + expiry check) and an on-chain Solana receipt.

Operations 5

GET /proof-workflows/blind-policy/status Get Blind Policy proof status
GET /proof-workflows/blind-policy/sample Get sample private input and sample proof package
POST /proof-workflows/blind-policy/prove Generate a Groth16 Blind Policy proof package
POST /proof-workflows/blind-policy/verify Verify a public Blind Policy proof package
POST /proof-workflows/blind-policy/onchain-receipt Store verified Blind Policy receipt hashes in the Solana Anchor receipt registry

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/blind-policy-verification-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

privatedao-org-blind-policy-openapi.yml Raw ↑
x-source: https://privatedao.org/blind-policy-openapi.json
x-fetched: '2026-09-19'
x-note: Verbatim provider-published document, re-serialized from JSON to YAML only; the byte-exact original is in openapi/_original/.
openapi: 3.0.3
info:
  title: PrivateDAO Blind Policy Verification API
  version: 0.1.0
  description: API for proving and verifying that a private policy was satisfied without exposing private policy inputs.
servers:
- url: https://api.privatedao.org/api/v1
paths:
  /proof-workflows/blind-policy/status:
    get:
      summary: Get Blind Policy proof status
      responses:
        '200':
          description: Status response
  /proof-workflows/blind-policy/sample:
    get:
      summary: Get sample private input and sample proof package
      responses:
        '200':
          description: Sample response
  /proof-workflows/blind-policy/prove:
    post:
      summary: Generate a Groth16 Blind Policy proof package
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - privateInputs
              properties:
                workflowId:
                  type: string
                privateInputs:
                  $ref: '#/components/schemas/BlindPolicyPrivateInputs'
      responses:
        '200':
          description: Proof issued
        '422':
          description: Proof not issued because the private policy was not satisfied or input validation failed
  /proof-workflows/blind-policy/verify:
    post:
      summary: Verify a public Blind Policy proof package
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - publicProofPackage
              properties:
                publicProofPackage:
                  type: object
      responses:
        '200':
          description: Proof package verified
        '422':
          description: Proof package mismatch or invalid proof
  /proof-workflows/blind-policy/onchain-receipt:
    post:
      summary: Store verified Blind Policy receipt hashes in the Solana Anchor receipt registry
      description: The API first verifies the Groth16 proof package and hash match. If verification passes, it stores proofIdHash,
        proofHash, policyCommitmentHash, inputCommitmentHash, verificationKeyHash, circuitVersionHash, and policyVersionHash
        in a Solana PDA receipt account and returns Explorer links.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - publicProofPackage
              properties:
                publicProofPackage:
                  $ref: '#/components/schemas/BlindPolicyProofPackage'
      responses:
        '200':
          description: Receipt stored or already exists on Solana
        '422':
          description: Proof package failed verification or on-chain receipt submission failed
components:
  schemas:
    BlindPolicyProofPackage:
      type: object
      required:
      - proofId
      - nonce
      - issuedAt
      - expiresAt
      - circuitId
      - circuitVersion
      - policyVersion
      - policyCommitment
      - inputCommitment
      - verificationKeyHash
      - originalProofHash
      - groth16Proof
      properties:
        proofId:
          type: string
        nonce:
          type: string
        issuedAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
        circuitId:
          type: string
          enum:
          - private_dao_blind_policy_overlay
        circuitVersion:
          type: string
          enum:
          - groth16-v1
        policyVersion:
          type: string
        policyCommitment:
          type: string
        inputCommitment:
          type: string
        verificationKeyHash:
          type: string
        originalProofHash:
          type: string
        groth16Proof:
          type: object
    BlindPolicyPrivateInputs:
      type: object
      required:
      - organizationId
      - subjectId
      - membershipVerified
      - records
      - riskScore
      - liabilitiesUsd
      properties:
        organizationId:
          type: string
        subjectId:
          type: string
        membershipVerified:
          type: boolean
        records:
          type: array
          minItems: 3
          items:
            type: object
            required:
            - amountUsd
            properties:
              amountUsd:
                type: number
        riskScore:
          type: number
        liabilitiesUsd:
          type: number