Skip to main content

Primary VDT API Integration Flow

Integrators wire only the APIs their product needs — the diagram shows every supported path. Solid arrows are primary steps; dashed edges are optional lookups or return paths. Click any node to open its API reference in a new tab.

How to read the diagram

ElementMeaning
Choice nodes (dashed border)Branch points — your UI decides which path to take
Solid main pathTypical browse flow: registry → list → ledger detail
Dashed blue edgesOptional lookups (filter, refresh list, view created, re-read)
Dashed orange / green / redLifecycle actions from ledger detail

Integration paths

1. Registry discovery (always start here)

GET /public-api/v1/registries/listGET /public-api/v1/registries/{id}

List available registries, then load the selected registry schema before any ledger operation. Read isDataVdt — it controls which lifecycle APIs are valid for that registry.

Registry type decision (API routing)

After Get Registry, every create and update request is routed by isDataVdt:

RuleERC-721DataVDT
Create without options.mint: trueRejectedDraft saved
Update after mintRe-mint allowedRejected — immutable
Re-mint after mintAllowedNever
BurnWhen burnable: trueNot supported
TransferWhen transferable: trueNot supported

Wire your UI from Get VDT mint status and registry isDataVdt — hide update on minted DataVDT ledgers and never expose burn or transfer for DataVDT registries.

2. Browse ledgers

After selecting a registry, call List VDTs to show all ledgers under that registry.

APIMethodPurpose
List VDTsGET /public-api/v1/vdt/list/{registryId}Paginated ledger list
Search VDTsPOST /public-api/v1/vdt/searchOptional filter by searchable attributes
Get VDTGET /public-api/v1/vdt/{entityId}Ledger detail — full 4W snapshot

Use Search VDTs when the user searches by a business key (employee number, asset tag, etc.) instead of browsing the full list.

3. Create & mint

RegistryCreate behavior
ERC-721options.mint: true required
DataVDToptions.mint: false → draft; options.mint: true → create and mint

Call Create Primary VDT with registryId, attributesData, and deviceId.

After create, optionally refresh list or view created ledger via Get VDT using the returned entityId.

4. Ledger actions (from detail view)

Gate actions on isDataVdt, mint status, and registry flags:

ActionAPIMethodWhen available
UpdateUpdate VDTPATCH /public-api/v1/vdt/{entityId}DataVDT: draft only. ERC-721: always (requires options.mint: true)
TransferTransfer VDTPOST /public-api/v1/vdt/transferERC-721 only, when transferable: true and ledger is minted
BurnBurn VDTDELETE /public-api/v1/vdt/burnERC-721 custom only, when burnable: true and ledger is minted

DataVDT: once minted, the ledger is immutable — no update, no re-mint, no burn, no transfer.

5. Transfer — KYB org lookup

Before Transfer VDT, load the destination organization list:

GET /public-api/v1/kyb/groups/members

This returns business-group member organizations (Business Customers, Business Contacts, and custom groups). The user selects a destination org; pass its ID as toOrgId in the transfer request.

Transfer and burn are asynchronous — a successful response means the request was accepted, not that the blockchain transaction is finalized.

Required scopes

OperationToken scope
Registry list / getvdt.read
List / search / get VDTvdt.read
Create / updatevdt.write
List org members (KYB)kyb.organization.read
Transfervdt.transfer
Burnvdt.burn