Skip to main content

Proof Packages

A proof package is a shareable evidence bundle built from a vault: a frozen selection of files, optionally their signatures and on-chain proofs, a Proof of Attestation PDF and a machine-readable manifest — zipped and handed over through a token-protected link.

Reach for it when someone outside Filedgr — an auditor, a regulator, a customer — needs verifiable evidence about specific files, without being given access to the vault itself.

Creating one​

curl -X POST "https://api.filedgr.network/proof-packages" \
-H "x-api-key: $FILEDGR_API_KEY" -H "x-api-secret: $FILEDGR_API_SECRET" \
-H "Content-Type: application/json" \
-d '{
"vault_id": "9b1d7c40-5e2a-4c33-9f10-77a0b3c4d5e6",
"file_ids": ["c31f8a92-77bd-4a01-9d34-0b5e6f7a8b90"],
"include_signatures": true,
"expires_in_days": 7,
"download_limit": 1,
"password": "optional-passphrase"
}'
FieldRequiredNotes
vault_idyesThe vault the files belong to
file_idsyes1 to 1000 file ids. Selection is per file, not per attachment
include_signaturesnoDefaults to true
expires_in_daysnoDefaults to 7, maximum 90
download_limitnonull unlimited, 1 single use, N capped
passwordnoOnly its hash is stored

Returns 201 with proof_package_id, share_url and a token.

danger

The token is returned exactly once, at creation. Only a hash of it is stored, so it cannot be recovered. Capture it from the create response or the link is unusable.

Two statuses, not one​

Building the bundle is asynchronous, so a package tracks its build and its link separately:

FieldValuesMeaning
package_statusPENDING READY FAILEDHas the bundle finished building
statusACTIVE USED EXPIRED REVOKEDIs the link still usable

A package is downloadable only when package_status is READY and status is ACTIVE. Expect PENDING immediately after creation, and poll before handing the link over.

Managing packages​

EndpointPurpose
GET /me/proof-packagesList your packages (cursor pagination: limit 1–200, default 50)
GET /me/proof-packages/{id}Detail for one package
POST /me/proof-packages/{id}/extendPush the expiry out, up to 90 days
POST /me/proof-packages/{id}/downloadOwner download, no token required

One package means one link, one token, one set of counters — there is no way to issue a second link for the same package. To share the same files on different terms, create another package.

What the recipient does​

Redemption needs no Filedgr account; the link is the credential. Both routes live on the Explorer API, not the partner API:

GET https://explorer-api.filedgr.network/proof-packages/{proof_package_id}
POST https://explorer-api.filedgr.network/proof-packages/{proof_package_id}/redeem

Fetching returns metadata only — file count, total size, both statuses, whether a password is required. Redeeming with the token (and password, if set) returns {proof_package_id, download_url, expires_in_seconds}, a presigned link valid for one hour.

Each redemption increments the download counter; once download_limit is reached the link moves to USED and stops working.

Choosing between a package and publishing​

A proof package is scoped to files you pick, expires, and can be download-limited. Publishing to the Explorer is open to everyone, indefinitely. Use a package for a named counterparty, and publishing when the record should be publicly checkable.

Full reference​