GuidesCreate a participant

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 unique id 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.
  • 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.
  • 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.
  • 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.
  • status: Indicates whether the participant is Active or Inactive. Only active participants are included in the ecosystem policy. Defaults to Inactive.
  • country: The country in which the participant is based, in ISO 3166-1 country code format. When provided, must match the country value in the PEM certificate associated with the mobile 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 the stateOrProvince value in the PEM certificate associated with the mobile 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.