⚡️ Quickstart Guide
Takes 5 minutes!
Prerequisites
You will need an API Key and any library or app capable of making http requests (Postman, Fetch, Axios, Httpie, etc)
Get started with Disco in only three steps:
Get an API key
Select a credential schema
Build and issue credential(s)
Introduction
The Disco API enables developers to issue Verifiable Credentials to addresses and to fetch and validate credentials about those addresses. These credentials use standard data models (schemas), contain event metadata or attestations, and can be later fetched and relied upon to bootstrap onboarding, manage access control, and understand community insights.
Prerequisites
You will need to create an API key, steps to create one:
Create a
test
account in our dashboard https://dashboard.disco.xyz/loginGo to the Admin section and click on
API Keys
Create an API Key

Video and more details are found in Generate an API Key section.
Select a Credential Schema
Schemas define the structure and contents of a credential – enabling them to be consistent, verifiable, and interoperable. More details in Schemas 101. View Disco's public Github repository of schemas.
The directions below use the Membership Credential schema.
How to use the API to Build and Issue or Fetch credentials
This method constructs a Membership Credential Schema, signed by Disco-controlled keys.
Issue Credentials
Generate and issue credentials to an ETH address or Decentralized Identifier (DID).
Generate and return a signed Credential. This will also write the Credential the recipient's data backpack in Disco's Verifiable Data Registry. The JSON body should contain required Credential values for the schema type used. Available schemas and their specifications can be found at https://github.com/discoxyz/disco-schemas.
The URL of the verifiable crednetial schema. Available schemas can be found at https://github.com/discoxyz/disco-schemas
https://raw.githubusercontent.com/discoxyz/disco-schemas/main/json/MembershipCredential/1-0-0.json
The DID address of the credential's claimant
did:3:Example987xyz
The fields and values for the credential (based on its schema)
{ "memberId": "Goldstar Member", "membershipDescription": "Demo membership to showcase Disco API", "membershipLevel": "Permanent", "membershipType": "Developer", "organization": "Disco.xyz" }
The date for the credential to expire for the claimant. Leave empty if there's no expiration.
Optional - supported values are "JWT" and "712".
The DID address of the credential's issuer.
did:web:api.disco.xyz/v1/disco
To sign or not to sign - hint you should sign! Either leave out or assign false.
false
POST /v1/credential HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 499
{
"schemaUrl": "https://raw.githubusercontent.com/discoxyz/disco-schemas/main/json/MembershipCredential/1-0-0.json",
"recipientDID": "did:3:Example987xyz",
"subjectData": "{\n \"memberId\": \"Goldstar Member\",\n \"membershipDescription\": \"Demo membership to showcase Disco API\",\n \"membershipLevel\": \"Permanent\",\n \"membershipType\": \"Developer\",\n \"organization\": \"Disco.xyz\"\n }",
"expirationDate": "",
"suite": "",
"issuer": "did:web:api.disco.xyz/v1/disco",
"skipSign": "false"
}
{
"_id": "text",
"vc": "See https://www.w3.org/TR/vc-data-model/#example-a-simple-example-of-a-verifiable-credential",
"jwt": "eyJhbGciOiJIUzI1N........",
"isPublic": "true",
"issuer": "",
"recipient": "text",
"subject": "text",
"schema": "https://raw.githubusercontent.com/discoxyz/disco-schemas/main/json/MembershipCredential/1-0-0.json",
"genId": "text",
"updatedAt": "text",
"isDeleted": true,
"history": []
}
Usage example
curl --location 'https://api.disco.xyz/v1/credential' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Authorization: Bearer <your Disco API key>' \
--data '{
"issuer": "did:3:123abcexample",
"schemaUrl": "https://raw.githubusercontent.com/discoxyz/disco-schemas/main/json/MembershipCredential/1-0-0.json",
"recipientDID": "did:3:456defexample",
"subjectData": {
"memberId": "123XYZ",
"membershipDescription": "Demo membership to showcase Disco API",
"membershipLevel": "Permanent",
"membershipType": "Developer",
"organization": "Disco.xyz"
},
"expirationDate": ""
}'
Successful Response
Fetch Credentials
Fetch a public credential based on its ID
Returns a single credential using its verifiable credential ID (vc.id
) -
assuming the Api Key holder is either the holder, issuer or the Credential is public.
Unique ID of Credential
"did:3:123abcexample#someuuid"
GET /v1/credential/{id} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{
"_id": "text",
"vc": "See https://www.w3.org/TR/vc-data-model/#example-a-simple-example-of-a-verifiable-credential",
"jwt": "eyJhbGciOiJIUzI1N........",
"isPublic": "true",
"issuer": "",
"recipient": "text",
"subject": "text",
"schema": "https://raw.githubusercontent.com/discoxyz/disco-schemas/main/json/MembershipCredential/1-0-0.json",
"genId": "text",
"updatedAt": "text",
"isDeleted": true,
"history": []
}
Usage example
# Looking up id=https://api.disco.xyz/credential/22d9187b-8a33-4e17-b05f-c8192107ab28
curl --location 'https://api.disco.xyz/v1/credential/https%3A%2F%2Fapi.disco.xyz%2Fcredential%2F22d9187b-8a33-4e17-b05f-c8192107ab28' \
--header 'Authorization: Bearer <your Disco API key>'
Successful response
Community and Support
Join our Discord! You can also contact us at [email protected].
Last updated