Skip to main content
Version: v4 (next)

Find Participants with DID

Resolve the participant entry (or entries) that match a given DID, role, and Credential Schema (MOD-PP-QRY-3). This is one of the two trust-resolution primitives of the pp module (the other is Trigger a Resolver): a trust resolver uses it to confirm that a DID it encountered off-chain is a registered, currently-valid participant of the expected schema and role.

Query Parameters

NameDescriptionMandatory
didDID to look up.yes
roleNumeric role: 1=ISSUER, 2=VERIFIER, 3=ISSUER_GRANTOR, 4=VERIFIER_GRANTOR, 5=ECOSYSTEM, 6=HOLDER.yes
schema-idCredential Schema ID.yes
--when <RFC3339>Optional: only return participants valid at the given timestamp.no
Role is numeric here

Unlike list-participants (which accepts role names like ecosystem), find-participants-with-did takes the numeric role as its positional argument. Passing a name (e.g. ecosystem) fails with strconv.ParseUint: parsing "ecosystem": invalid syntax.

Execute the Query

Usage

veranad query pp find-participants-with-did [did] [role] [schema-id] \
[--when <RFC3339>] --node $NODE_RPC --output json

Example — find the ECOSYSTEM (role 5) participant for schema 3

veranad query pp find-participants-with-did \
did:example:18c0df1833f9f2002c4395780e84af3b 5 3 \
--node $NODE_RPC --output json

Example Output

Real testnet output:

{
"participants": [
{
"id": "3",
"schema_id": "3",
"role": "ECOSYSTEM",
"did": "did:example:18c0df1833f9f2002c4395780e84af3b",
"created": "2026-07-10T08:06:09.158617Z",
"adjusted": "2026-07-10T08:06:49.399925Z",
"effective_from": "2026-07-10T08:06:20.510395Z",
"effective_until": "2027-01-06T08:06:52.550388Z",
"modified": "2026-07-10T08:06:49.399925Z",
"validation_fees": "100",
"issuance_fees": "50",
"verification_fees": "25",
"op_state": "VALIDATED",
"op_last_state_change": "2026-07-10T08:06:09.158617Z",
"corporation_id": "6"
}
]
}