Skip to main content
A schema defines the structure of a verifiable credential — the set of attribute names, their data types, and display metadata. Before you can issue a credential, you need a schema registered on a ledger and a credential definition derived from it. CREDEBL supports two schema formats:
  • AnonCreds (Indy) — Attributes are a flat list of name/type pairs. Suitable for use with Hyperledger Indy-compatible ledgers.
  • W3C JSON-LD — Attributes are structured JSON Schema objects supporting rich types (string, number, boolean, array, object) and validation constraints. Used with Polygon and other W3C-compatible ledgers.

Base path

All endpoints are rooted at /orgs/:orgId/schemas.

Authentication

Every endpoint requires a JWT bearer token.

Role-based access

Endpoints

Create schema

POST /orgs/:orgId/schemas — Register a new schema on the ledger.

List schemas

GET /orgs/:orgId/schemas — Retrieve all schemas for an organization.

Get schema

GET /orgs/:orgId/schemas/:schemaId — Fetch a schema from the ledger by its ID.

Credential definitions by schema

GET /orgs/:orgId/schemas/:schemaId/cred-defs — List credential definitions linked to a schema.

Create schema

POST /orgs/:orgId/schemas Register a new schema for an organization. The schema is written to the ledger associated with the organization’s DID. Supports Indy (AnonCreds) and W3C JSON-LD formats. Required roles: owner, admin

Path parameters

string
required
UUID of the organization creating the schema.

Request body

string
required
Schema format. Enum: INDY or JSON (W3C JSON-LD).
string
Optional human-readable alias for the schema record in the platform database.
object
required
The schema definition. The structure depends on type.

Response

object

Examples

201 response

List schemas

GET /orgs/:orgId/schemas Retrieve all schemas belonging to an organization. Supports pagination, full-text search, and sorting. Required roles: owner, admin, issuer, verifier, member

Path parameters

string
required
UUID of the organization.

Query parameters

number
Page to retrieve. Min 1. Defaults to 1.
number
Records per page. Min 1. Defaults to 10.
string
Free-text search across schema names.
string
Field to sort by. Enum: createDateTime (default) and other available sort fields.
string
Sort direction. ASC or DESC (default).

Examples

200 response

Get schema by ID

GET /orgs/:orgId/schemas/:schemaId Fetch the full schema details from the ledger using its ledger schema ID. Required roles: owner, admin, issuer, verifier, member

Path parameters

string
required
UUID of the organization.
string
required
The ledger schema ID, for example "WgWxqztrNooG92RXvxSTWv:2:EmployeeCredential:1.0".

Examples

200 response

Credential definitions by schema

GET /orgs/:orgId/schemas/:schemaId/cred-defs List all credential definitions on the platform that are derived from a given schema. Required roles: owner, admin, issuer, verifier, member

Path parameters

string
required
UUID of the organization.
string
required
The ledger schema ID.

Query parameters

number
Page to retrieve. Min 1. Defaults to 1.
number
Records per page. Min 1. Defaults to 10.
string
Free-text search.
string
Field to sort by. Enum: createDateTime (default).
string
Sort direction. ASC or DESC (default).

Examples

200 response