Sovereign Agent BFF — UIC BBS+ & Information Vault — OpenAPI 1.0.0
<!-- GENERATED by scripts/render-platform-map-api-docs.mjs — do not hand-edit; edit apps/agent-bff/openapi/<spec>.json and re-run. --> Scope: The published reference for Sovereign Agent BFF — UIC BBS+ & Information Vault. 14 paths — the measured spec-vs-implementation coverage lives in the complete API inventory. Status: rendered 2026-11-09 from the OpenAPI source for Sovereign Agent BFF — UIC BBS+ & Information Vault — regenerate with node scripts/render-platform-map-api-docs.mjs. See also: the OpenAPI spec index.
Servers
| URL | Notes |
|---|---|
| http://127.0.0.1:3030 | Local dev (DEV_SKIP_AUTH=1) |
Tags
| Tag | Summary |
|---|---|
| uic-bbs-plus | BLS12-381 BBS+ mint, present, verify |
| vault-bbs-plus | Information vault file, present, share, redeem |
| attestation | Attestation co-mint with UIC BBS+ vault |
Paths — 14 paths / 14 operations
| Method | Path | Operation ID | Summary |
|---|---|---|---|
| POST | /v1/identity/uic/mint-sealed/bbs-plus | mintSealedBbsPlus | Mint co-signed UIC envelope with BBS+ commitments |
| POST | /v1/identity/uic/present/bbs-plus | presentBbsPlus | Create BBS+ verifiable presentation |
| POST | /v1/identity/uic/verify-presentation/bbs-plus | verifyPresentationBbsPlus | Verify BBS+ presentation |
| POST | /v1/vault/bbs-plus/file | vaultBbsPlusFile | File minted BBS+ envelope into vault |
| GET | /v1/vault/bbs-plus/claims/{vaultId}/{vaultClaimId} | getVaultBbsPlusClaim | Load vault claim with BBS+ metadata |
| POST | /v1/vault/bbs-plus/claims/{vaultId}/{vaultClaimId}/present | vaultBbsPlusPresent | Build selective-disclosure presentation from vault claim |
| POST | /v1/vault/bbs-plus/shares | createVaultBbsPlusShare | Create verifiable share with presentation |
| GET | /v1/vault/bbs-plus/shares/{shareId} | getVaultBbsPlusShare | Load share metadata (no holder secrets) |
| POST | /v1/vault/bbs-plus/shares/{shareId}/verify | verifyVaultBbsPlusShare | Verify share presentation without redeeming |
| POST | /v1/vault/bbs-plus/shares/{shareId}/redeem | redeemVaultBbsPlusShare | Redeem share and return disclosed attributes |
| GET | /v1/vault/bbs-plus/policies | listVaultBbsPlusPolicies | List disclosure policy catalog |
| POST | /v1/vault/bbs-plus/secrets/backup | backupBbsPlusSecrets | Export passphrase-encrypted holder secrets (transient) |
| POST | /v1/vault/bbs-plus/secrets/restore | restoreBbsPlusSecrets | Restore holder secrets from backup compact |
| POST | /v1/attest/tokens/mint-with-uic-bbs-plus-vault | mintAttestWithUicBbsPlusVault | Co-mint aaas_token + BBS+ UIC envelope + optional vault file |
Operations
POST /v1/identity/uic/mint-sealed/bbs-plus
Summary: Mint co-signed UIC envelope with BBS+ commitments
Tags: uic-bbs-plus Operation ID: mintSealedBbsPlus Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 201 | Minted envelope with optional vault filing |
POST /v1/identity/uic/present/bbs-plus
Summary: Create BBS+ verifiable presentation
Tags: uic-bbs-plus Operation ID: presentBbsPlus Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 200 | Presentation compact token |
POST /v1/identity/uic/verify-presentation/bbs-plus
Summary: Verify BBS+ presentation
Tags: uic-bbs-plus Operation ID: verifyPresentationBbsPlus Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 200 | Verification result |
POST /v1/vault/bbs-plus/file
Summary: File minted BBS+ envelope into vault
Tags: vault-bbs-plus Operation ID: vaultBbsPlusFile Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 201 | Vault claim created |
GET /v1/vault/bbs-plus/claims/{vaultId}/{vaultClaimId}
Summary: Load vault claim with BBS+ metadata
Tags: vault-bbs-plus Operation ID: getVaultBbsPlusClaim
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| vaultId | path | yes | string | |
| vaultClaimId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Claim with envelope and attribute keys |
POST /v1/vault/bbs-plus/claims/{vaultId}/{vaultClaimId}/present
Summary: Build selective-disclosure presentation from vault claim
Tags: vault-bbs-plus Operation ID: vaultBbsPlusPresent
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| vaultId | path | yes | string | |
| vaultClaimId | path | yes | string |
Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 200 | Presentation compact |
POST /v1/vault/bbs-plus/shares
Summary: Create verifiable share with presentation
Tags: vault-bbs-plus Operation ID: createVaultBbsPlusShare Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 201 | Share created |
GET /v1/vault/bbs-plus/shares/{shareId}
Summary: Load share metadata (no holder secrets)
Tags: vault-bbs-plus Operation ID: getVaultBbsPlusShare
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| shareId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Share metadata |
POST /v1/vault/bbs-plus/shares/{shareId}/verify
Summary: Verify share presentation without redeeming
Tags: vault-bbs-plus Operation ID: verifyVaultBbsPlusShare
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| shareId | path | yes | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Verification result |
POST /v1/vault/bbs-plus/shares/{shareId}/redeem
Summary: Redeem share and return disclosed attributes
Tags: vault-bbs-plus Operation ID: redeemVaultBbsPlusShare
Parameters:
| Name | In | Required | Type | Notes |
|---|---|---|---|---|
| shareId | path | yes | string |
Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| expected_audience | string | |
| issuer_public_key_pem | string | |
| subject_public_key_pem | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | Redeemed disclosed attributes |
GET /v1/vault/bbs-plus/policies
Summary: List disclosure policy catalog
Tags: vault-bbs-plus Operation ID: listVaultBbsPlusPolicies Responses:
| Status | Meaning |
|---|---|
| 200 | Policy names and descriptions |
POST /v1/vault/bbs-plus/secrets/backup
Summary: Export passphrase-encrypted holder secrets (transient)
Tags: vault-bbs-plus Operation ID: backupBbsPlusSecrets Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| bbs_plus_secrets | object | |
| passphrase | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | backup_compact string |
POST /v1/vault/bbs-plus/secrets/restore
Summary: Restore holder secrets from backup compact
Tags: vault-bbs-plus Operation ID: restoreBbsPlusSecrets Request body:
Content type: application/json
| Field | Type | Notes |
|---|---|---|
| backup_compact | string | |
| passphrase | string |
Responses:
| Status | Meaning |
|---|---|
| 200 | bbs_plus_secrets object |
POST /v1/attest/tokens/mint-with-uic-bbs-plus-vault
Summary: Co-mint aaas_token + BBS+ UIC envelope + optional vault file
Tags: attestation Operation ID: mintAttestWithUicBbsPlusVault Request body:
Content type: application/json
| Field | Type | Notes |
|---|
Responses:
| Status | Meaning |
|---|---|
| 201 | Token, envelope, secrets, optional vault claim |
Full specification — verbatim source of truth
{
"openapi": "3.1.0",
"info": {
"title": "Sovereign Agent BFF — UIC BBS+ & Information Vault",
"version": "1.0.0",
"description": "OpenAPI 3.1 fragment for Universal Identity BBS+ selective disclosure and information vault share routes (Waves 29–33). Canonical BFF :3030. Human-readable: docs/vault/VAULT_API_REFERENCE.md, docs/universal_identity/UIC_BBS_API_REFERENCE.md."
},
"servers": [
{
"url": "http://127.0.0.1:3030",
"description": "Local dev (DEV_SKIP_AUTH=1)"
}
],
"tags": [
{
"name": "uic-bbs-plus",
"description": "BLS12-381 BBS+ mint, present, verify"
},
{
"name": "vault-bbs-plus",
"description": "Information vault file, present, share, redeem"
},
{
"name": "attestation",
"description": "Attestation co-mint with UIC BBS+ vault"
}
],
"paths": {
"/v1/identity/uic/mint-sealed/bbs-plus": {
"post": {
"tags": [
"uic-bbs-plus"
],
"summary": "Mint co-signed UIC envelope with BBS+ commitments",
"operationId": "mintSealedBbsPlus",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MintSealedBbsPlusRequest"
}
}
}
},
"responses": {
"201": {
"description": "Minted envelope with optional vault filing",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MintSealedBbsPlusResponse"
}
}
}
}
}
}
},
"/v1/identity/uic/present/bbs-plus": {
"post": {
"tags": [
"uic-bbs-plus"
],
"summary": "Create BBS+ verifiable presentation",
"operationId": "presentBbsPlus",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PresentBbsPlusRequest"
}
}
}
},
"responses": {
"200": {
"description": "Presentation compact token",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PresentBbsPlusResponse"
}
}
}
}
}
}
},
"/v1/identity/uic/verify-presentation/bbs-plus": {
"post": {
"tags": [
"uic-bbs-plus"
],
"summary": "Verify BBS+ presentation",
"operationId": "verifyPresentationBbsPlus",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyPresentationBbsPlusRequest"
}
}
}
},
"responses": {
"200": {
"description": "Verification result",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyResult"
}
}
}
}
}
}
},
"/v1/vault/bbs-plus/file": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "File minted BBS+ envelope into vault",
"operationId": "vaultBbsPlusFile",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VaultFileRequest"
}
}
}
},
"responses": {
"201": {
"description": "Vault claim created"
}
}
}
},
"/v1/vault/bbs-plus/claims/{vaultId}/{vaultClaimId}": {
"get": {
"tags": [
"vault-bbs-plus"
],
"summary": "Load vault claim with BBS+ metadata",
"operationId": "getVaultBbsPlusClaim",
"parameters": [
{
"name": "vaultId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "vaultClaimId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Claim with envelope and attribute keys"
}
}
}
},
"/v1/vault/bbs-plus/claims/{vaultId}/{vaultClaimId}/present": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "Build selective-disclosure presentation from vault claim",
"operationId": "vaultBbsPlusPresent",
"parameters": [
{
"name": "vaultId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "vaultClaimId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VaultPresentRequest"
}
}
}
},
"responses": {
"200": {
"description": "Presentation compact"
}
}
}
},
"/v1/vault/bbs-plus/shares": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "Create verifiable share with presentation",
"operationId": "createVaultBbsPlusShare",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateShareRequest"
}
}
}
},
"responses": {
"201": {
"description": "Share created"
}
}
}
},
"/v1/vault/bbs-plus/shares/{shareId}": {
"get": {
"tags": [
"vault-bbs-plus"
],
"summary": "Load share metadata (no holder secrets)",
"operationId": "getVaultBbsPlusShare",
"parameters": [
{
"name": "shareId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Share metadata"
}
}
}
},
"/v1/vault/bbs-plus/shares/{shareId}/verify": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "Verify share presentation without redeeming",
"operationId": "verifyVaultBbsPlusShare",
"parameters": [
{
"name": "shareId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Verification result"
}
}
}
},
"/v1/vault/bbs-plus/shares/{shareId}/redeem": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "Redeem share and return disclosed attributes",
"operationId": "redeemVaultBbsPlusShare",
"parameters": [
{
"name": "shareId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"expected_audience": {
"type": "string"
},
"issuer_public_key_pem": {
"type": "string"
},
"subject_public_key_pem": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Redeemed disclosed attributes"
}
}
}
},
"/v1/vault/bbs-plus/policies": {
"get": {
"tags": [
"vault-bbs-plus"
],
"summary": "List disclosure policy catalog",
"operationId": "listVaultBbsPlusPolicies",
"responses": {
"200": {
"description": "Policy names and descriptions"
}
}
}
},
"/v1/vault/bbs-plus/secrets/backup": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "Export passphrase-encrypted holder secrets (transient)",
"operationId": "backupBbsPlusSecrets",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"bbs_plus_secrets",
"passphrase"
],
"properties": {
"bbs_plus_secrets": {
"type": "object"
},
"passphrase": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "backup_compact string"
}
}
}
},
"/v1/vault/bbs-plus/secrets/restore": {
"post": {
"tags": [
"vault-bbs-plus"
],
"summary": "Restore holder secrets from backup compact",
"operationId": "restoreBbsPlusSecrets",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"backup_compact",
"passphrase"
],
"properties": {
"backup_compact": {
"type": "string"
},
"passphrase": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "bbs_plus_secrets object"
}
}
}
},
"/v1/attest/tokens/mint-with-uic-bbs-plus-vault": {
"post": {
"tags": [
"attestation"
],
"summary": "Co-mint aaas_token + BBS+ UIC envelope + optional vault file",
"operationId": "mintAttestWithUicBbsPlusVault",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MintWithUicBbsPlusVaultRequest"
}
}
}
},
"responses": {
"201": {
"description": "Token, envelope, secrets, optional vault claim",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MintWithUicBbsPlusVaultResponse"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"MintSealedBbsPlusRequest": {
"type": "object",
"required": [
"issuer_id",
"subject_id",
"attributes"
],
"properties": {
"issuer_id": {
"type": "string"
},
"subject_id": {
"type": "string"
},
"attributes": {
"type": "object",
"additionalProperties": true
},
"security_profile": {
"type": "string",
"enum": [
"basic",
"secure"
]
},
"persist": {
"type": "boolean"
},
"vault_id": {
"type": "string"
},
"folder_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"file_to_vault": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"MintSealedBbsPlusResponse": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"envelope": {
"type": "object"
},
"bbs_plus_secrets": {
"type": "object"
},
"verify": {
"$ref": "#/components/schemas/VerifyResult"
},
"vault": {
"type": "object",
"properties": {
"vault_claim_id": {
"type": "string"
},
"uon": {
"type": "string"
},
"envelope_id": {
"type": "string"
}
}
}
}
},
"PresentBbsPlusRequest": {
"type": "object",
"required": [
"envelope",
"disclosed_keys",
"bbs_plus_secrets"
],
"properties": {
"envelope": {
"type": "object"
},
"disclosed_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"bbs_plus_secrets": {
"type": "object"
},
"audience": {
"type": "string"
},
"nonce": {
"type": "string"
}
}
},
"PresentBbsPlusResponse": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"presentation_compact": {
"type": "string"
},
"disclosed_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"presentation": {
"type": "object"
}
}
},
"VerifyPresentationBbsPlusRequest": {
"type": "object",
"properties": {
"presentation": {
"type": "object"
},
"presentation_compact": {
"type": "string"
},
"issuer_public_key_pem": {
"type": "string"
},
"subject_public_key_pem": {
"type": "string"
},
"expected_audience": {
"type": "string"
},
"expected_nonce": {
"type": "string"
},
"check_revocation": {
"type": "boolean"
}
}
},
"VerifyResult": {
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"reason": {
"type": "string"
},
"disclosed_keys": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"VaultFileRequest": {
"type": "object",
"required": [
"envelope",
"vault_id"
],
"properties": {
"envelope": {
"type": "object"
},
"vault_id": {
"type": "string"
},
"folder_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"actor": {
"type": "string"
},
"verify": {
"type": "boolean"
}
}
},
"VaultPresentRequest": {
"type": "object",
"required": [
"bbs_plus_secrets"
],
"properties": {
"bbs_plus_secrets": {
"type": "object"
},
"disclosure_policy": {
"type": "string",
"enum": [
"full",
"read",
"summary",
"verdict_only",
"custom"
]
},
"disclosed_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"audience": {
"type": "string"
},
"nonce": {
"type": "string"
},
"attach_holder_signature": {
"type": "boolean"
}
}
},
"CreateShareRequest": {
"type": "object",
"required": [
"vault_id",
"vault_claim_id",
"grantee_email"
],
"properties": {
"vault_id": {
"type": "string"
},
"vault_claim_id": {
"type": "string"
},
"grantee_email": {
"type": "string"
},
"disclosure_policy": {
"type": "string"
},
"disclosed_keys": {
"type": "array",
"items": {
"type": "string"
}
},
"bbs_plus_secrets": {
"type": "object"
},
"presentation_compact": {
"type": "string"
},
"expires_at": {
"type": "string",
"format": "date-time"
}
}
},
"MintWithUicBbsPlusVaultRequest": {
"type": "object",
"required": [
"issuer_id",
"subject_id",
"attributes"
],
"properties": {
"issuer_id": {
"type": "string"
},
"subject_id": {
"type": "string"
},
"attributes": {
"type": "object",
"additionalProperties": true
},
"security_profile": {
"type": "string"
},
"capabilities": {
"type": "array",
"items": {
"type": "object"
}
},
"vault_id": {
"type": "string"
},
"folder_id": {
"type": "string"
},
"display_name": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"MintWithUicBbsPlusVaultResponse": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"token_id": {
"type": "string"
},
"envelope_id": {
"type": "string"
},
"envelope": {
"type": "object"
},
"bbs_plus_secrets": {
"type": "object"
},
"vault": {
"type": "object"
},
"verify": {
"$ref": "#/components/schemas/VerifyResult"
}
}
},
"capability": {
"type": "string",
"example": "token_mint_with_uic_bbs_plus_vault"
}
}
}
}
}
}