Skip to main content

What is a Registry?

A Registry is the schema template that defines how Primary VDTs are structured, validated, and managed within your organization. Before you create any Primary VDT through the SDK, you must select a Registry — it determines which attributes are required, which can be searched, whether instances are transferable or burnable, and whether on-chain minting applies.

Registries are configured in the ChainIT admin panel and exposed to integrators through the List Registries and Get Registry APIs.

Registry as a Schema Contract​

Think of a Registry as a contract between your organization and the ChainIT platform:

  • Attributes — the fields each Primary VDT must or may contain (name, slug, data type, section, required/searchable flags)
  • Schema version — the active version of that attribute set; VDTs are created against the current version
  • Lifecycle rules — whether VDTs minted from this registry can be transferred or burned
  • VDT type — Primary VDT registries produce organization-scoped ledger records (distinct from Data VDT registries)

When you call Create Primary VDT, you pass a registryId and an attributesData object keyed by attribute slugs. ChainIT validates every value against the registry schema before persisting the ledger.

Registry Response Fields​

FieldDescription
idUnique registry identifier — required for all VDT create, list, and search calls
slugHuman-readable unique slug (e.g. employee-credential)
nameDisplay name configured in admin
typeVDT type produced by this registry (Primary)
statusRegistry availability (ACTIVE, etc.)
transferableWhether VDTs from this registry support org-to-org transfer (ERC-721 only)
burnableWhether minted VDTs can be permanently burned (ERC-721 custom registries only)
isDataVdtRegistry implementation type — see Registry types below
versionCurrent schema version with full attribute definitions

Registry Types: ERC-721 vs DataVDT​

Every Primary VDT registry is one of two implementation types, determined by isDataVdt on Get Registry:

ERC-721 (isDataVdt: false)DataVDT (isDataVdt: true)
On-chain tokenERC-721 NFT per ledgerBatch-minted Data VDT evidence token
Createoptions.mint: true requiredoptions.mint optional — false saves a draft, true mints
UpdateAllowed with options.mint: true (re-mints)Allowed only while draft (not yet minted)
After mintCan update and re-mint; burn/transfer when registry allowsImmutable — no update, no re-mint
TransferWhen transferable: true on registry and instanceNot supported
BurnWhen burnable: true on custom ERC-721 registryNot supported

Check isDataVdt after Get Registry before wiring create, update, transfer, or burn in your UI — the available lifecycle actions depend entirely on this flag.

Registry Attributes​

Each attribute in a schema version defines how data is collected, validated, and queried:

Attribute propertyPurpose
slugKey used in attributesData when creating or updating a VDT
nameDisplay label
dataType / fieldTypeValidation and input type (string, email, dropdown, etc.)
section4W grouping (Who, What, When, Where) for ledger context
isRequiredMust be supplied on create
isSearchableCan be used as a filter in the Search VDTs API
isPublic / isShareableVisibility and sharing rules for ledger reads

Only attributes marked isSearchable: true can be used in the Search Primary VDTs (filter) API.

Working with Registries in an Integration​

Step 1 — Discover available registries​

Call List Registries to retrieve paginated registries scoped to your organization. Use filters to narrow by name or status if needed.

Step 2 — Inspect schema details​

Call Get Registry with the registry id to load the full schema version, attribute list, and lifecycle flags (transferable, burnable). Review required slugs before building your create payload.

Step 3 — Use registryId in VDT APIs​

Pass the registryId from the registry response into:

  • Create Primary VDT — required in the request body
  • Update Primary VDT — required in the request body
  • List Primary VDTs — required as a path parameter (/vdt/list/{registryId})
  • Search Primary VDTs — requires the schema version ID (vdtSchemaId) from the registry version

Registry vs. Primary VDT Instance​

ConceptRegistryPrimary VDT
RoleSchema templateA single tokenized record
Created byAdmin panelSDK API (POST /vdt)
CountFew per use caseMany instances per registry
MutabilityVersioned schema updatesUpdate API changes attribute values
IdentifierregistryId (UUID)entityId (business entity ID)

A Registry defines what can be recorded. A Primary VDT is one recorded instance of that schema.

When to Create a New Registry​

Create a separate Registry when:

  • A new business object type needs its own attribute schema (e.g. employee vs. equipment)
  • Lifecycle rules differ (one credential type is transferable, another is not)
  • Compliance requires isolated audit domains with distinct attribute sets

Reuse an existing Registry when the same schema applies to multiple records of the same type.