---
title: "POST /didcomm/proofs/propose-proof"
method: POST
path: "/didcomm/proofs/propose-proof"
tags: ["DIDComm Proofs"]
---

# POST /didcomm/proofs/propose-proof

`POST /didcomm/proofs/propose-proof`

Initiate a new presentation exchange as prover by sending a presentation proposal request
to the connection with the specified connection id.

## Headers

- `x-tenant-id` string

## Request body

- DidCommProofsProposeProofOptions
  - `connectionId` string, required
  - `goalCode` string
  - `parentThreadId` string
  - `autoAcceptProof` 'always' | 'contentApproved' | 'never' — Typing of the state for auto acceptance
  - `comment` string
  - `protocolVersion` 'v1' | 'v2', required
  - `proofFormats` object, required
    - `anoncreds` AnonCredsProposeProofFormat — Interface for creating an anoncreds proof proposal.
      - `name` string
      - `version` string
      - `attributes` AnonCredsPresentationPreviewAttribute[]
        - `name` string, required
        - `credentialDefinitionId` string
        - `mimeType` string
        - `value` string
        - `referent` string
      - `predicates` AnonCredsPresentationPreviewPredicate[]
        - `name` string, required
        - `credentialDefinitionId` string, required
        - `predicate` '>=' | '>' | '<=' | '<', required
        - `threshold` number, double, required
      - `nonRevokedInterval` AnonCredsNonRevokedInterval
        - `from` number, double
        - `to` number, double
    - `indy` AnonCredsProposeProofFormat — Interface for creating an anoncreds proof proposal.
      - `name` string
      - `version` string
      - `attributes` AnonCredsPresentationPreviewAttribute[]
        - `name` string, required
        - `credentialDefinitionId` string
        - `mimeType` string
        - `value` string
        - `referent` string
      - `predicates` AnonCredsPresentationPreviewPredicate[]
        - `name` string, required
        - `credentialDefinitionId` string, required
        - `predicate` '>=' | '>' | '<=' | '<', required
        - `threshold` number, double, required
      - `nonRevokedInterval` AnonCredsNonRevokedInterval
        - `from` number, double
        - `to` number, double

## Response `200`

Ok

- DidCommProofExchangeRecord
  - `id` string, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time
  - `type` string, required
  - `connectionId` string
  - `threadId` string, required
  - `parentThreadId` string
  - `state` 'proposal-sent' | 'proposal-received' | 'request-sent' | 'request-received' | 'presentation-sent' | 'presentation-received' | 'declined' | 'abandoned' | 'done', required — Present Proof protocol states as defined in RFC 0037
  - `role` 'verifier' | 'prover', required
  - `autoAcceptProof` 'always' | 'contentApproved' | 'never' — Typing of the state for auto acceptance
  - `errorMessage` string
  - `protocolVersion` string, required

---

[API](https://skmtc.net/openwallet-foundation/apis/credo-rest-api.md) · [All operations](https://skmtc.net/openwallet-foundation/apis/credo-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openwallet-foundation/credo-rest-api/revisions/33596742b733/schema)
