Skip to main content
Version: v4 (next)

List Participants

List on-chain participants (Issuer, Verifier, Grantors, Ecosystem, Holder) across all credential schemas. Unlike the legacy perm module, pp list-participants supports server-side filters (MOD-PP-QRY-1).

Query Parameters

The CLI accepts these optional filter flags:

FlagDescription
--schema-id <uint>Only participants of this Credential Schema
--participant-id <uint>A specific participant ID
--role <role>issuer, verifier, issuer-grantor, verifier-grantor, ecosystem, holder
--did <string>Filter by registered DID
--grantee <string>Filter by grantee account
--op-state <state>unspecified, pending, validated, terminated
--only-validOnly currently-valid participants
--only-slashedOnly participants with a slashed deposit
--only-repaidOnly participants whose slashed deposit was repaid
--modified-after <RFC3339>Modified after the given timestamp
--when <RFC3339>Validity at a specific timestamp
--response-max-size <1-1024>Cap the number of results

Useful fields in the response

FieldDescription
idParticipant ID
schema_idCredential Schema this participant belongs to
roleRole enum string (see mapping below)
didDID registered in the participant (Verifiable Service)
op_statePENDING, VALIDATED, or TERMINATED
validator_participant_idParticipant the entry was onboarded under (absent for root)
effective_from / effective_untilValidity window
validation_fees / issuance_fees / verification_feesTrust-unit fees
slashed / revokedTimestamps set when the deposit is slashed / the participant revoked
corporation_idNumeric ID of the owning Corporation

Role mapping

The CLI/REST output returns enum strings (e.g. ISSUER), not numbers. The numeric IDs used by find-participants-with-did are listed for reference.

Enum stringMeaningNumeric ID
ISSUERIssuer1
VERIFIERVerifier2
ISSUER_GRANTORIssuer-Grantor3
VERIFIER_GRANTORVerifier-Grantor4
ECOSYSTEMEcosystem (root)5
HOLDERHolder6

Execute the Query

Set up your environment (if not already):

NODE_RPC=https://rpc.testnet.verana.network

List all participants

veranad query pp list-participants --node $NODE_RPC --output json

Filter by schema

veranad query pp list-participants --schema-id 3 --node $NODE_RPC --output json

Filter by role

veranad query pp list-participants --role ecosystem --node $NODE_RPC --output json

Only slashed participants

veranad query pp list-participants --only-slashed --node $NODE_RPC --output json

Example Output

Real output from the testnet (trimmed to two entries):

{
"participants": [
{
"id": "1",
"schema_id": "2",
"role": "ECOSYSTEM",
"did": "did:example:18c0deee1817a9586c97135dd80fcc28",
"created": "2026-07-10T08:02:42.88908Z",
"effective_from": "2026-07-10T08:02:56.626515Z",
"effective_until": "2027-07-05T08:02:56.626515Z",
"modified": "2026-07-10T08:02:42.88908Z",
"op_state": "VALIDATED",
"op_last_state_change": "2026-07-10T08:02:42.88908Z",
"corporation_id": "6"
},
{
"id": "2",
"schema_id": "2",
"role": "ISSUER_GRANTOR",
"did": "did:example:18c0deef42d88ad05c25093ca7f60d46",
"created": "2026-07-10T08:03:13.07172Z",
"effective_from": "2026-07-10T08:03:18.104198Z",
"modified": "2026-07-10T08:04:48.663674Z",
"validator_participant_id": "1",
"op_state": "TERMINATED",
"op_last_state_change": "2026-07-10T08:04:48.663674Z",
"corporation_id": "6"
}
]
}