Skip to main content
This page covers the authoring concerns: naming, common pitfalls, and decisions only the author can make.

Create a presentation preset

Guidance for authors

Below is the part that’s specific to authoring: decisions only the author makes, and the common pitfalls.

Choose the code carefully

Your tenant alias is automatically prepended as the author, so code: "basic-identity-request" becomes the canonical id YOUR_ALIAS:basic-identity-request. That id is what verifiers will pass as presetId for the lifetime of the preset. Presets are immutable once published, so fixing a typo later means publishing -v2 and migrating consumers. Keep the code short, lowercase, hyphen-separated, and meaningful on its own (identity-kyc, not req1).

Decide whether it belongs in the shared catalogue (namespace)

Presentation presets carry the same namespace field as credential presets. It defaults to public, listing the preset for every tenant. Set it to private to keep a request shape to yourself. The id gains a ~ prefix (~acme:internal-check), it appears only in your own listings, and other tenants get a 404 fetching it by id. You reference a private preset exactly as a public one: reference: "presetId:~acme:internal-check". See public and private presets for the full visibility rules.

Write the description for someone scanning a list

templateName and templateDescription are what verifiers see when browsing the preset catalogue. Be specific in the description. “Identity proof for KYC onboarding, with first name, last name, and verified flag” is far more useful than “Identity request”.

Make sure type matches what issuers issue

The templateCredentials[].type URI must exactly match the credential type that issuers put on the credentials they produce. If issuers issue https://test.didxtech.com/vct/didx/basic-identity and your preset asks for https://test.didxtech.com/vct/didx/basic-id, the request will not match, even if the contents are otherwise compatible. Coordinate with the issuers in your ecosystem.

Almost always specify trustedIssuers explicitly

Leaving trustedIssuers empty (or omitting it) accepts any issuer of this credential type, which is rarely what a real verifier wants. List the specific issuers whose credentials you trust. Choose a name for each issuer that the end user will recognise. The wallet shows it during the consent step, so “South African Reserve Bank” is better than “sarb-prod-1”.

Updates and removals

The current API supports creating presets and reading them; it does not expose update or delete endpoints. Treat each published preset as immutable. If you need to change a shape, publish a new preset, for example bumping code to basic-identity-request-v2, and migrate consumers.

What consumers do with your preset

Once published, verifiers reference your preset by its canonical id (YOUR_ALIAS:basic-identity-request). They pass that id when creating a presentation request; that’s all they need to do on their side.