How to create a participant
Participants are entities within an Ecosystem that can be issuers and/or verifiers (a single participant can assume both roles). Participants might be government agencies, insurance companies, banks, universities and so on.
Request
Make a request of the following structure to create a new Participant:
HTTP
POST /v1/ecosystems/{ecosystemId}/participants
ecosystemId
: Participants must be created within a specific ecosystem. Use the ecosystem uniqueid
obtained when you created the ecosystem.
Request body
JSON
{
"name": "My Participant",
"identifiers": {
"web-semantic": "did:web:example.com",
"compact-semantic": "did:web:example.com",
"compact": "did:web:example.com",
"mobile": [
{
"certificatePem": "-----BEGIN CERTIFICATE-----\r\nMIICkDCCAjegAwIBAgIUdM9bo/2NkhKn1VLEFab0uuU3om8wCgYIKoZIzj0EAwIw\r\nNzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVVTLUFMMRgwFgYDVQQDDA93d3cuZXhh\r\nbXBsZS5jb20wHhcNMjUwMjIwMjIwODA1WhcNMzgxMDMwMjIwODA1WjA3MQswCQYD\r\nVQQGEwJVUzEOMAwGA1UECAwFVVMtQUwxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNv\r\nbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABFLFj5ecjrSxuh0KSBtf5Y++sGa7\r\niMvK/CuA1C4ZW/9jDD5Hcb8lmc81xdHbXuq+IsG9LqIxYjm8MKnztRK89UyjggEf\r\nMIIBGzAPBgNVHRMECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUS8Vz\r\nVdnlAUFlFMSTbhaDvIulxSQwcgYDVR0jBGswaYAUS8VzVdnlAUFlFMSTbhaDvIul\r\nxSShO6Q5MDcxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVVUy1BTDEYMBYGA1UEAwwP\r\nd3d3LmV4YW1wbGUuY29tghR0z1uj/Y2SEqfVUsQVpvS65TeibzAuBgNVHR8EJzAl\r\nMCOgIaAfhh1odHRwOi8vZXhhbXBsZS5jb20vY3JsL2NhLmNybDA4BgNVHRIEMTAv\r\nhhlodHRwOi8vZXhhbXBsZS5jb20vaXNzdWVygRJpc3N1ZXJAZXhhbXBsZS5jb20w\r\nCgYIKoZIzj0EAwIDRwAwRAIgW2BzYOeW5LWc0Q+FwKbVZQiAZ+21Joid6u4Vu77s\r\npegCIDbeWjekYhZNxKX+8FrIV4dIJDBLu+Lc0iIXghS/FGQE\r\n-----END CERTIFICATE-----",
"status": "Active"
}
]
},
"isIssuer": false,
"isVerifier": false,
"isIssuerConstrained": true,
"isVerifierConstrained": true,
"status": "Active",
"country": "US",
"stateOrProvince": "US-AL",
"contacts": [
{
"phoneNumber": "012-3456789",
"address": "Participant address"
}
]
}
name
: Enter a unique and meaningful name for your participant.identifiers
: Define the unique identifier that will be used by this participant to issue and/or verify credentials.- Participants can have different identifiers for different credential formats.
- Each participant must have at least one defined credential format, and for each credential format a participant can define exactly one unique identifier.
- Credentials are only valid in the ecosystem if they include an identifier of an issuer that is a participant in the ecosystem and is allowed to issue that type of credential (as defined by the Ecosystem policy).
- Verification requests are only valid in the ecosystem if they include an identifier of a verifier that is a participant in the ecosystem and is allowed to verify that type of credential (as defined by the Ecosystem policy).
- For CWT and JSON credentials this must be a valid DID.
- For mDocs this must be the PEM of a valid
IACA that will be used by
this participant to sign mDocs. IACAs with a
notBefore
date in the future are considered valid in this context.
isIssuer
: Indicates whether the participant is an issuer in the ecosystem (true
) or not (false
).- When set to
false
, credentials issued by this participant will not be considered valid in the ecosystem, even if they are added to an issuer policy. - Defaults to
false
, as this assigns the least privileges to the new participant.
- When set to
isVerifier
: Indicates whether the created participant is a verifier in the ecosystem (true
) or not (false
).- When set to
false
, verification requests from this participant will not be considered valid in the ecosystem, even if they are added to a verifier policy. - Defaults to
false
, as this assigns the least privileges to the new participant.
- When set to
isIssuerConstrained
: Indicates whether the created participant is constrained to only issue specific types of valid credentials (true
) or not (false
).- When set to
false
, all credentials issued by this participant are considered valid in the ecosystem, even if they are added to a more limited issuer policy. - Defaults to
true
, as this assigns the least privileges to the new participant.
- When set to
isVerifierConstrained
: Indicates whether the created participant is constrained to only verify specific types of valid credentials (true
) or not (false
).- When set to
false
, verification requests of any credential type from this participant are considered valid in the ecosystem, even if they are added to a more limited verifier policy. - Defaults to
true
, as this assigns the least privileges to the new participant.
- When set to
status
: Indicates whether the participant isActive
orInactive
. Only active participants are included in the ecosystem policy. Defaults toInactive
.country
: The country in which the participant is based, in ISO 3166-1 country code format. When provided, must match thecountry
value in the PEM certificate associated with themobile
identifier of this participant.stateOrProvince
: The state or province in which the participant is based, in ISO 3166-2 subdivision code format. When provided, must match thestateOrProvince
value in the PEM certificate associated with themobile
identifier of this participant.contacts
: Contact details associated with the participant.phoneNumber
: Contact phone number.address
: Contact address.
Response
JSON
{
"id": "a24e391a-c27f-4b6e-9805-1ee7e03f3c58",
"ecosystemId": "87880d7e-a4d0-462e-8383-3f1e5e16865d"
//... rest of particpant information
}
id
: Unique identifier for the new participant. This identifier is used when creating policies and to validate this participant during issuance and verification workflows.