Add report proof

POST/reports/{id}/proofsSubmit a signed proof to a report record.

Appends a signed proof to the report record. The proof must be signed against the record's current hash — see About Proofs for how signing and validation work.

Proofs drive the report through its status lifecycle: createdpendingcompletedsettled. Reports can be rejected at any stage before completion. When transitioning to completed, the proof may include generated report assets.

Returns the updated record with the new proof in meta.proofs.

Broadcasts the report-proofs-added signal. Use effects to subscribe.

POST
/reports/{id}/proofs

Usage Examples

curl -X POST "http://localhost:3000/v2/reports/<HANDLE>/proofs" \  -H "x-ledger: <YOUR LEDGER HANDLE>" \  -H "Content-Type: application/json" \  -d '{    "method": "ed25519-v2",    "public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=",    "digest": "4fe8083ac02ee001b49e6a519c1f2af78bf1d4ba8a0c0e50cec9a30ce68636f0",    "result": "GD90bmf7LH43pH/jWHoSm065B1TLlX7jSmzPU9AdYzmER5N9D3k7fZUYlyIVNVwD5y2sqOH2i3CAl5p1b+QRBw==",    "custom": {      "moment": "2025-04-05T14:30:10.000Z",      "status": "pending"    }  }'
{
  "luid": "$rep.-01xK7xYzA8jY0CD9",
  "hash": "1f95c06af953019eac2885bb205fd815efe1995409a3fab1a9c17ea9af932eca",
  "data": {
    "handle": "payments-2025-01-01",
    "schema": "trans_details_rep",
    "custom": {
      "start_timestamp": "2025-01-01T00:00:00.000Z",
      "end_timestamp": "2025-01-02T00:00:00.000Z"
    }
  },
  "meta": {
    "status": "pending",
    "moment": "2025-04-05T14:30:10.020Z",
    "owners": [
      "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk="
    ],
    "proofs": [
      {
        "signer": "tesla-bank-admin",
        "method": "ed25519-v2",
        "digest": "862f76b92b821a86169318ef9770260dae9a7d979809ae66db48d19f74f3d064",
        "public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=",
        "result": "/Xnf8iu5lLRaJ/lr3xc7LnjI5fv0X7p+L9qqQqCXlRinIG6pM1QIjqDkk05I1E9h6827oINKwY/viGRuQ5u1CQ==",
        "custom": {
          "moment": "2025-04-05T14:30:00.000Z",
          "status": "created"
        }
      },
      {
        "signer": "system",
        "method": "ed25519-v2",
        "digest": "eee006f4b0cf9fd8db46cc41cb45b73aa9ce2aeb78bfd57188e55a40024b8a0a",
        "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
        "result": "LgzSu4n2SiuphFlQNQxVGuZVGChYUXCo1KUDo3flnD+m3P2vBT/bRyxLff8S8puy5POc8sfvggcvs/9eriHjBQ==",
        "custom": {
          "luid": "$rep.-01xK7xYzA8jY0CD9",
          "moment": "2025-04-05T14:30:00.050Z",
          "status": "created"
        }
      },
      {
        "signer": "tesla-bank-admin",
        "method": "ed25519-v2",
        "digest": "4fe8083ac02ee001b49e6a519c1f2af78bf1d4ba8a0c0e50cec9a30ce68636f0",
        "public": "dsZvr0rEw9sIffHlv1VP65x1NB8GeXezIv6HONk1SIk=",
        "result": "GD90bmf7LH43pH/jWHoSm065B1TLlX7jSmzPU9AdYzmER5N9D3k7fZUYlyIVNVwD5y2sqOH2i3CAl5p1b+QRBw==",
        "custom": {
          "moment": "2025-04-05T14:30:10.000Z",
          "status": "pending"
        }
      }
    ]
  }
}
{
  "hash": "b7eb7ccf5ffc126951e13e29a8dcfdaf95db859715d4edfc2d16f59a79d4cd58",
  "data": {
    "reason": "auth.unauthorized",
    "detail": "Invalid token."
  },
  "meta": {
    "proofs": [
      {
        "signer": "system",
        "method": "ed25519-v2",
        "digest": "3acece870c4118bfe4223118e4d2f3cfd5b8947a7093785b66d49aa57fa2890a",
        "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
        "result": "gnK63DqqWDY/UXvnZHixDKPKS6tfeGHgdARylnPiJLwQGyYxuD97TYbSg2wrzsf/bDrHwQYZaf8Gu5ryYP0UAA==",
        "custom": {
          "moment": "2025-04-05T14:30:00.000Z"
        }
      }
    ]
  }
}
{
  "hash": "9ec02726b50650add8acfd124c6defeb978a9ac252a5de888f9493ddc701e927",
  "data": {
    "reason": "auth.forbidden",
    "detail": "Request is not authorized"
  },
  "meta": {
    "proofs": [
      {
        "signer": "system",
        "method": "ed25519-v2",
        "digest": "4f8cbdc38d73348de0c31805c783c84a0fecc6be736d7e187004ba68cd00e675",
        "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
        "result": "P3hRnveehtuobb4AIO56XBmiduvmYJbpdmOHltG/IifBEH7QSWdv/0pqled4SO9x1Ne3oXuWxJy40DzMvx1MBA==",
        "custom": {
          "moment": "2025-04-05T14:30:00.000Z"
        }
      }
    ]
  }
}
{
  "hash": "d6c59a6df7165fa4a75159799ca5f5e26e544cbb8769eced3d35d8021f6f7935",
  "data": {
    "reason": "record.not-found",
    "detail": "Signer not found"
  },
  "meta": {
    "proofs": [
      {
        "signer": "system",
        "method": "ed25519-v2",
        "digest": "78cf86f34aefcf9da6ed4167a38aac0a2739f68f7bafb1d3e033c01ed1b6cdf1",
        "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
        "result": "9Ledk+/iAAtj+uLjGe2afq4kID7n8UQD6UpRpLBCujxFjxddq0uZ2tnYRTAXmYdHDkbF0uXqtNM9qO3xhEtpAA==",
        "custom": {
          "moment": "2025-04-05T14:30:00.000Z"
        }
      }
    ]
  }
}

{
  "hash": "1c084e8dcfb9bb84bc8ea96e9e137b149a34b2bbd85f8e60b4263f5aba980476",
  "data": {
    "custom": {
      "errors": [
        {
          "instancePath": "/handle",
          "schemaPath": "#/properties/handle/pattern",
          "keyword": "pattern",
          "params": {
            "pattern": "^[a-zA-Z0-9_\\-+.]+$"
          },
          "message": "must match pattern \"^[a-zA-Z0-9_\\-+.]+$\""
        }
      ]
    },
    "reason": "record.schema-invalid",
    "detail": "Schema validator error: data.handle must match pattern \"^[a-zA-Z0-9_\\-+.]+$\""
  },
  "meta": {
    "proofs": [
      {
        "signer": "system",
        "method": "ed25519-v2",
        "digest": "7a5febb431719b6f43d7e88e79211308e16ac651b71b339276373fdb4e7c3760",
        "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
        "result": "2/1zYw4AaIzsIHfOIC6V/CHw6owbjYHt48cwmFOig0ibeT0IbojLmj1RCRi8W00ka0udPa9WsacWDd7ObMY8CA==",
        "custom": {
          "moment": "2025-04-05T14:30:00.000Z"
        }
      }
    ]
  }
}

{
  "hash": "93a5f4d97a42c2df97f827c58ff7768d02568c15aca931e22b81fa3160ba0df3",
  "data": {
    "reason": "api.unexpected-error",
    "detail": "An unexpected error occurred"
  },
  "meta": {
    "proofs": [
      {
        "signer": "system",
        "method": "ed25519-v2",
        "digest": "efaf5360143b586917d9636779ad6e08571c5b06909a20dd0f5eba4bf3be7eae",
        "public": "bctQzN7mjMUNBIx4aSC8WYn03GJWoJjL/KrDb38oU5c=",
        "result": "hERh6Aecj59iR+Fb25OQsHJScOi4t8EiffKSfjlMQdjHMccTnfDlgZFdaJzXzUtpSwy/NHq0l+7ydh3HSWCoAg==",
        "custom": {
          "moment": "2025-04-05T14:30:00.000Z"
        }
      }
    ]
  }
}

Path Parameters

id*|

The unique identifier of the record - it is luid or handle (address).

Header Parameters

x-ledger?|

The unique identifier of ledger in context for multi tenant requests.

Request Body

application/json

Proof body

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json