Personas
This page contains all relevant APIs interacting with Disco Personas.
Introduction
User
A User
on the Disco platform is the holder and owner of its own identity. A User
can be an individual or an organization. User
have an Ethereum Address that is used with their wallet for access to their credentials. Users
may, or may not, have a www
domain and/or Ethereum Name Service (ENS) linked to their identity.
Persona
A Persona
is a set of attributes that describes a User
in a particular context. Currently, Disco supports one Persona
per User
(extendable to N Personas
per User
in future releases). A Persona
may have multiple DIDs, and account Linkages
assigned.


Use Cases
Get Persona for a DID
This response is less verbose as it only includes current snapshot of a DID's persona.
Returns Persona metadata for a DID holder. Persona metadata is composed of avatar links, username, color schemes, and verified account handles (such as Twitter, Discord, etc.).
The holder's DID to retrieve Persona metadata for
did:web:api.disco.xyz/v1/disco
GET /v1/persona/did/metadata/{did} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{}
Usage example
curl --location 'https://api.disco.xyz/v1/persona/did/metadata/did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb' \
--header 'Authorization: Bearer <your Disco API key>'
Successful Response
{
"orgBrand": {
"textColor": null,
"brandColor": null,
"backgroundImage": null
},
"avatar": "https://uploads-ssl.webflow.com/634f227dc666d2739c1c3959/634f227dc666d26bd21c3a55_14-%20Evin%20McMullen%20original%20BW.png",
"accountLinks": [
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Discord",
"handle": "heyevin"
},
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Twitter",
"handle": "provenauthority"
}
],
"username": "provenauthority"
}
Get Persona for a DID
This response may be very verbose as it includes all accounts (re)link attempts and their proofs.
Returns Persona metadata for a DID holder. Persona metadata is composed of avatar links, username, color schemes, and verified account handles (such as Twitter, Discord, etc.).
GET /v1/persona/did/{did} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{}
Usage example
curl --location 'https://api.disco.xyz/v1/credential/verify' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Authorization: Bearer <your Disco API key>' \
curl --location 'https://api.disco.xyz/v1/persona/did/did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb' \
--header 'Authorization: Bearer <your Disco API key>'
Successful Response
{
"id": "3045c158-af4a-417f-a67f-bc8f916b5408",
"user": {
"id": "12a9e548-a2fb-42c6-ba4b-e931127baa4a"
},
"dids": [
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"ethAddr": "0x9c7b16e49c2f579453c45ca0bf7771a43dc61449"
}
],
"handle": "provenauthority",
"avatarUri": "https://uploads-ssl.webflow.com/634f227dc666d2739c1c3959/634f227dc666d26bd21c3a55_14-%20Evin%20McMullen%20original%20BW.png",
"bio": "GM and welcome to the Disco! ",
"ethAddress": "0x9c7b16e49c2f579453c45ca0bf7771a43dc61449",
"links": [ // This object holds all the account links for the ID
{
"accountType": "Discord",
"handle": "heyevin",
"verified": true,
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"proof": "https://discord.com/channels/947857036257935390/975763597529600041/1128736725682892930"
},
{
"accountType": "Twitter",
"handle": "provenauthority",
"verified": true,
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"proof": "https://twitter.com/provenauthority/status/1674454543420260352"
}
],
"metadata": {
"orgBrand": {
"textColor": null,
"brandColor": null,
"backgroundImage": null
},
"avatar": "https://uploads-ssl.webflow.com/634f227dc666d2739c1c3959/634f227dc666d26bd21c3a55_14-%20Evin%20McMullen%20original%20BW.png",
"accountLinks": [ // This object holds all link activity for linked accounts. A user can unlink/relink their accounts and this section will show an item for each linking attempt.
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Discord",
"handle": "heyevin"
},
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Discord",
"handle": "heyevin"
},
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Twitter",
"handle": "provenauthority"
}
],
"username": "provenauthority"
},
"isOrg": true // If true it indicates that this identity is classified as an orginization.
}
Get Persona for an Ethereum address
This response may be very verbose as it includes all accounts (re)link attempts and their proofs.
Returns a profile via its linked Ethereum Address. Usually in the format: 0xABC1234567890
Ethereum Address
0xABC1234567890
GET /v1/persona/find/eth/{eoa} HTTP/1.1
Host:
Authorization: YOUR_API_KEY
Accept: */*
{}
Usage example
curl --location 'https://api.disco.xyz/v1/persona/find/eth/0x9c7b16e49c2f579453c45ca0bf7771a43dc61449' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <your Disco API key>'
Successful Response
{
"id": "3045c158-af4a-417f-a67f-bc8f916b5408",
"user": {
"id": "12a9e548-a2fb-42c6-ba4b-e931127baa4a"
},
"dids": [
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"ethAddr": "0x9c7b16e49c2f579453c45ca0bf7771a43dc61449"
}
],
"handle": "provenauthority",
"avatarUri": "https://uploads-ssl.webflow.com/634f227dc666d2739c1c3959/634f227dc666d26bd21c3a55_14-%20Evin%20McMullen%20original%20BW.png",
"bio": "GM and welcome to the Disco! ",
"ethAddress": "0x9c7b16e49c2f579453c45ca0bf7771a43dc61449",
"links": [
{
"accountType": "Discord",
"handle": "heyevin",
"verified": true,
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"proof": "https://discord.com/channels/947857036257935390/975763597529600041/1128736725682892930"
},
{
"accountType": "Discord",
"handle": "heyevin",
"verified": true,
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"proof": "https://twitter.com/provenauthority/status/1674454543420260352"
},
{
"accountType": "Twitter",
"handle": "provenauthority",
"verified": true,
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"proof": "https://twitter.com/provenauthority/status/1674454543420260352"
}
],
"metadata": {
"orgBrand": {
"textColor": null,
"brandColor": null,
"backgroundImage": null
},
"avatar": "https://uploads-ssl.webflow.com/634f227dc666d2739c1c3959/634f227dc666d26bd21c3a55_14-%20Evin%20McMullen%20original%20BW.png",
"accountLinks": [
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Discord",
"handle": "heyevin"
},
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Discord",
"handle": "heyevin"
},
{
"did": "did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb",
"type": "Twitter",
"handle": "provenauthority"
}
],
"username": "provenauthority"
},
"isOrg": true
}
Search for Profile by account linkages
Returns DIDs of matching handles given search input. Can search for Twitter, Discord, or Domain handle in one endpoint.
Search by any handle
GET
https://api.disco.xyz/v1/search/?handle=provenauthority
Query Parameters
handle
String
handle of Account Linked to search for. This can be a twitter, discord, or domain.
Example Response
[
"did:3:kjzl6cwe1jw14b7xqq94oiy0lcnndgyt0p3vtlnsscpljosx6gom46qkxcv8sjb"
]
Last updated