Create delegation
Issue a delegation: your proven domain (the control_proof) authorizes an artifact — a package (purl) or an https endpoint (url) — for a set of capability scopes. Mints a signed delegation token (ES256 — same key and JWKS as proof tokens) carrying principal, delegate, scope, control_proof and its own revocation handle. The token is what you publish; the record is what you revoke. A requested lifetime longer than the control proof's remaining one is rejected, never truncated. Each mint consumes 1 proof from your plan quota (re-issuance included).
Request
- Base URL: https://api.proof.holdings
- URL: https://api.proof.holdings/api/v1/delegations
- Auth: one of:
- HTTP bearer
- API key in cookie auth_token
Request body
Example request
{
"control_proof": "ph_ctl_0123456789abcdef0123456789abcdef",
"delegate": {
"value": "pkg:npm/postmark-mcp"
},
"scope": [
"send-email"
]
}Response
Delegation created — the response carries the publishable signed token AND the same derived effective_status/is_valid the reads carry, so the shape of a delegation does not depend on which verb produced it (m-fix-proof-api-consistency)
Example response
{
"id": "507f1f77bcf86cd799439011",
"delegation_id": "ph_dlg_0123456789abcdef0123456789abcdef",
"principal": "postmark.com",
"delegate": {
"value": "pkg:npm/postmark-mcp"
},
"scope": [
"send-email"
],
"control_proof": "ph_ctl_0123456789abcdef0123456789abcdef"
}Changes
No recorded changes to this operation across all 1 revision of this API.